@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 +15 -1
- package/dist/bip39.js +2 -2
- package/dist/index.d.ts +22 -11
- package/dist/index.js +112 -94
- package/dist/javaStreamables.js +8 -8
- package/dist/legacy.d.ts +23 -0
- package/dist/legacy.js +163 -0
- package/dist/minima32.js +3 -3
- package/dist/mmr.js +2 -2
- package/dist/scripts/contract-helpers.js +12 -10
- package/dist/scripts/witness-serializer.js +2 -2
- package/dist/transaction.js +3 -3
- package/dist/verify.js +3 -3
- package/dist/wasm-bridge.d.ts +54 -0
- package/dist/wasm-bridge.js +303 -0
- package/dist/wasm-sync.d.ts +67 -0
- package/dist/wasm-sync.js +89 -0
- package/dist/wots.js +2 -2
- package/package.json +32 -22
- package/dist/hardened-flow.d.ts +0 -16
- package/dist/hardened-flow.js +0 -20
package/dist/legacy.js
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Legacy JS implementations — backward compatibility.
|
|
4
|
+
*
|
|
5
|
+
* These are the original TypeScript implementations preserved for
|
|
6
|
+
* environments where WASM is not available. The main entry point
|
|
7
|
+
* (`@totemsdk/core`) now delegates to WASM by default.
|
|
8
|
+
*
|
|
9
|
+
* Import legacy implementations directly:
|
|
10
|
+
* import { wotsSign } from '@totemsdk/core/legacy';
|
|
11
|
+
*/
|
|
12
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(o, k2, desc);
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
o[k2] = m[k];
|
|
22
|
+
}));
|
|
23
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
24
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.legacyGenerateWordList = exports.legacyPhraseToSeed = exports.convertWordListToSeed = exports.convertStringToSeed = exports.legacyValidatePhrase = exports.legacyCleanSeedPhrase = exports.WORD_LIST = exports.serializeRealMMRProof = exports.serializeMMRProof = exports.deserializeMMRProof = exports.parseMMRProofFromHex = exports.legacyVerifyMMRProof = exports.calculateProofRoot = exports.createMMRDataParentNode = exports.createMMRDataLeafNode = exports.mmrRootFromSingleLeaf = exports.mmrLeafExact = exports.MMRTree = exports.createPerAddressTreeKeyAsync = exports.createPerAddressTreeKey = exports.legacyDeriveUnifiedAddressPublicKey = exports.legacyCreateUnifiedRootTreeKey = exports.createUnifiedChildTreeKeyAsync = exports.legacyCreateUnifiedChildTreeKey = exports.DEFAULT_LEVELS = exports.DEFAULT_KEYS_PER_LEVEL = exports.getRootPublicKey = exports.deserializeTreeSignature = exports.serializeTreeSignature = exports.legacyVerifyTreeSignature = exports.TreeKeyNode = exports.TreeKey = exports.legacyWotsPublicKeyFromSeed = exports.legacyWotsVerifyDigest = exports.legacyWotsVerify = exports.legacyWotsPkFromSig = exports.wotsSignLegacy = exports.legacyWotsSign = exports.legacyWotsKeypairFromSeed = exports.legacyDerivePKdigest = exports.baseWWithChecksum = exports.toWinternitzDigits = exports.prfChainSeed = exports.h = exports.assert32 = exports.u32be = exports.u16be = exports.fromHex = exports.hex = exports.F = void 0;
|
|
28
|
+
exports.legacyPrecomputeTransactionCoinIDTx = exports.serializeMMREntry = exports.serializeMMRData = exports.serializeMMREntryNumber = exports.createMMREntryNumber = exports.deriveUnifiedChildSeed = exports.legacyDeriveRootPrivSeed = exports.legacyDerivePerAddressSeed = exports.indexToMiniDataBytes = exports.javaHashAllObjects = exports.serializeMiniNumberONE = exports.serializeMiniNumberZERO = exports.hashObject = exports.deriveChildTreeSeedJava = exports.legacyDeriveChainSeedJava = exports.hashAllObjects = exports.serializeMiniData = exports.serializeMiniNumber = exports.writeHashToStream = exports.legacyWriteMiniString = exports.bigIntToByteArray = exports.legacyBytesToHex = exports.legacyHexToBytes = exports.concat = exports.writeMMREntryNumber = exports.writeMiniByte = exports.legacyWriteMiniData = exports.legacyWriteMiniNumber = exports.convertMinimaAddress = exports.makeMinimaAddress = exports.decodeMx = exports.encodeMx = exports.mxToHex = exports.hexToMx = exports.legacyParseMxAddress = exports.legacyMakeMxAddress = exports.decodeMxRadix32Frame = exports.encodeMxRadix32Frame = exports.legacyWotsAddressFromKeypair = exports.scriptFromWotsPk = exports.addressToRoot = exports.scriptToAddress = exports.buildMinimaCoin = exports.createDefaultTransaction = exports.legacyPrecomputeTransactionCoinID = exports.legacyComputeTransactionDigest = exports.legacySerializeTransaction = exports.serializeCoin = exports.parseDecimalToMiniNumber = exports.generateSeedPhrase = void 0;
|
|
29
|
+
exports.legacyValidateChallenge = exports.legacyCreateChallenge = exports.normalizeHex = exports.deriveAddressFromPublicKey = exports.verifyTreeSignatureDetailed = exports.verifySignatureDetailed = exports.verifySignature = exports.legacyConcatBytes = void 0;
|
|
30
|
+
// WOTS — unique exports
|
|
31
|
+
var wots_js_1 = require("./wots.js");
|
|
32
|
+
Object.defineProperty(exports, "F", { enumerable: true, get: function () { return wots_js_1.F; } });
|
|
33
|
+
Object.defineProperty(exports, "hex", { enumerable: true, get: function () { return wots_js_1.hex; } });
|
|
34
|
+
Object.defineProperty(exports, "fromHex", { enumerable: true, get: function () { return wots_js_1.fromHex; } });
|
|
35
|
+
Object.defineProperty(exports, "u16be", { enumerable: true, get: function () { return wots_js_1.u16be; } });
|
|
36
|
+
Object.defineProperty(exports, "u32be", { enumerable: true, get: function () { return wots_js_1.u32be; } });
|
|
37
|
+
Object.defineProperty(exports, "assert32", { enumerable: true, get: function () { return wots_js_1.assert32; } });
|
|
38
|
+
Object.defineProperty(exports, "h", { enumerable: true, get: function () { return wots_js_1.h; } });
|
|
39
|
+
Object.defineProperty(exports, "prfChainSeed", { enumerable: true, get: function () { return wots_js_1.prfChainSeed; } });
|
|
40
|
+
Object.defineProperty(exports, "toWinternitzDigits", { enumerable: true, get: function () { return wots_js_1.toWinternitzDigits; } });
|
|
41
|
+
Object.defineProperty(exports, "baseWWithChecksum", { enumerable: true, get: function () { return wots_js_1.baseWWithChecksum; } });
|
|
42
|
+
Object.defineProperty(exports, "legacyDerivePKdigest", { enumerable: true, get: function () { return wots_js_1.derivePKdigest; } });
|
|
43
|
+
Object.defineProperty(exports, "legacyWotsKeypairFromSeed", { enumerable: true, get: function () { return wots_js_1.wotsKeypairFromSeed; } });
|
|
44
|
+
Object.defineProperty(exports, "legacyWotsSign", { enumerable: true, get: function () { return wots_js_1.wotsSign; } });
|
|
45
|
+
Object.defineProperty(exports, "wotsSignLegacy", { enumerable: true, get: function () { return wots_js_1.wotsSignLegacy; } });
|
|
46
|
+
Object.defineProperty(exports, "legacyWotsPkFromSig", { enumerable: true, get: function () { return wots_js_1.wotsPkFromSig; } });
|
|
47
|
+
Object.defineProperty(exports, "legacyWotsVerify", { enumerable: true, get: function () { return wots_js_1.wotsVerify; } });
|
|
48
|
+
Object.defineProperty(exports, "legacyWotsVerifyDigest", { enumerable: true, get: function () { return wots_js_1.wotsVerifyDigest; } });
|
|
49
|
+
Object.defineProperty(exports, "legacyWotsPublicKeyFromSeed", { enumerable: true, get: function () { return wots_js_1.wotsPublicKeyFromSeed; } });
|
|
50
|
+
// TreeKey — unique exports
|
|
51
|
+
var treekey_js_1 = require("./treekey.js");
|
|
52
|
+
Object.defineProperty(exports, "TreeKey", { enumerable: true, get: function () { return treekey_js_1.TreeKey; } });
|
|
53
|
+
Object.defineProperty(exports, "TreeKeyNode", { enumerable: true, get: function () { return treekey_js_1.TreeKeyNode; } });
|
|
54
|
+
Object.defineProperty(exports, "legacyVerifyTreeSignature", { enumerable: true, get: function () { return treekey_js_1.verifyTreeSignature; } });
|
|
55
|
+
Object.defineProperty(exports, "serializeTreeSignature", { enumerable: true, get: function () { return treekey_js_1.serializeTreeSignature; } });
|
|
56
|
+
Object.defineProperty(exports, "deserializeTreeSignature", { enumerable: true, get: function () { return treekey_js_1.deserializeTreeSignature; } });
|
|
57
|
+
Object.defineProperty(exports, "getRootPublicKey", { enumerable: true, get: function () { return treekey_js_1.getRootPublicKey; } });
|
|
58
|
+
Object.defineProperty(exports, "DEFAULT_KEYS_PER_LEVEL", { enumerable: true, get: function () { return treekey_js_1.DEFAULT_KEYS_PER_LEVEL; } });
|
|
59
|
+
Object.defineProperty(exports, "DEFAULT_LEVELS", { enumerable: true, get: function () { return treekey_js_1.DEFAULT_LEVELS; } });
|
|
60
|
+
Object.defineProperty(exports, "legacyCreateUnifiedChildTreeKey", { enumerable: true, get: function () { return treekey_js_1.createUnifiedChildTreeKey; } });
|
|
61
|
+
Object.defineProperty(exports, "createUnifiedChildTreeKeyAsync", { enumerable: true, get: function () { return treekey_js_1.createUnifiedChildTreeKeyAsync; } });
|
|
62
|
+
Object.defineProperty(exports, "legacyCreateUnifiedRootTreeKey", { enumerable: true, get: function () { return treekey_js_1.createUnifiedRootTreeKey; } });
|
|
63
|
+
Object.defineProperty(exports, "legacyDeriveUnifiedAddressPublicKey", { enumerable: true, get: function () { return treekey_js_1.deriveUnifiedAddressPublicKey; } });
|
|
64
|
+
Object.defineProperty(exports, "createPerAddressTreeKey", { enumerable: true, get: function () { return treekey_js_1.createPerAddressTreeKey; } });
|
|
65
|
+
Object.defineProperty(exports, "createPerAddressTreeKeyAsync", { enumerable: true, get: function () { return treekey_js_1.createPerAddressTreeKeyAsync; } });
|
|
66
|
+
// MMR — unique exports
|
|
67
|
+
var mmr_js_1 = require("./mmr.js");
|
|
68
|
+
Object.defineProperty(exports, "MMRTree", { enumerable: true, get: function () { return mmr_js_1.MMRTree; } });
|
|
69
|
+
Object.defineProperty(exports, "mmrLeafExact", { enumerable: true, get: function () { return mmr_js_1.mmrLeafExact; } });
|
|
70
|
+
Object.defineProperty(exports, "mmrRootFromSingleLeaf", { enumerable: true, get: function () { return mmr_js_1.mmrRootFromSingleLeaf; } });
|
|
71
|
+
Object.defineProperty(exports, "createMMRDataLeafNode", { enumerable: true, get: function () { return mmr_js_1.createMMRDataLeafNode; } });
|
|
72
|
+
Object.defineProperty(exports, "createMMRDataParentNode", { enumerable: true, get: function () { return mmr_js_1.createMMRDataParentNode; } });
|
|
73
|
+
Object.defineProperty(exports, "calculateProofRoot", { enumerable: true, get: function () { return mmr_js_1.calculateProofRoot; } });
|
|
74
|
+
Object.defineProperty(exports, "legacyVerifyMMRProof", { enumerable: true, get: function () { return mmr_js_1.verifyMMRProof; } });
|
|
75
|
+
Object.defineProperty(exports, "parseMMRProofFromHex", { enumerable: true, get: function () { return mmr_js_1.parseMMRProofFromHex; } });
|
|
76
|
+
Object.defineProperty(exports, "deserializeMMRProof", { enumerable: true, get: function () { return mmr_js_1.deserializeMMRProof; } });
|
|
77
|
+
Object.defineProperty(exports, "serializeMMRProof", { enumerable: true, get: function () { return mmr_js_1.serializeMMRProof; } });
|
|
78
|
+
Object.defineProperty(exports, "serializeRealMMRProof", { enumerable: true, get: function () { return mmr_js_1.serializeRealMMRProof; } });
|
|
79
|
+
// BIP39
|
|
80
|
+
var bip39_js_1 = require("./bip39.js");
|
|
81
|
+
Object.defineProperty(exports, "WORD_LIST", { enumerable: true, get: function () { return bip39_js_1.WORD_LIST; } });
|
|
82
|
+
Object.defineProperty(exports, "legacyCleanSeedPhrase", { enumerable: true, get: function () { return bip39_js_1.cleanSeedPhrase; } });
|
|
83
|
+
Object.defineProperty(exports, "legacyValidatePhrase", { enumerable: true, get: function () { return bip39_js_1.validatePhrase; } });
|
|
84
|
+
Object.defineProperty(exports, "convertStringToSeed", { enumerable: true, get: function () { return bip39_js_1.convertStringToSeed; } });
|
|
85
|
+
Object.defineProperty(exports, "convertWordListToSeed", { enumerable: true, get: function () { return bip39_js_1.convertWordListToSeed; } });
|
|
86
|
+
Object.defineProperty(exports, "legacyPhraseToSeed", { enumerable: true, get: function () { return bip39_js_1.phraseToSeed; } });
|
|
87
|
+
Object.defineProperty(exports, "legacyGenerateWordList", { enumerable: true, get: function () { return bip39_js_1.generateWordList; } });
|
|
88
|
+
Object.defineProperty(exports, "generateSeedPhrase", { enumerable: true, get: function () { return bip39_js_1.generateSeedPhrase; } });
|
|
89
|
+
// Transaction
|
|
90
|
+
var transaction_js_1 = require("./transaction.js");
|
|
91
|
+
Object.defineProperty(exports, "parseDecimalToMiniNumber", { enumerable: true, get: function () { return transaction_js_1.parseDecimalToMiniNumber; } });
|
|
92
|
+
Object.defineProperty(exports, "serializeCoin", { enumerable: true, get: function () { return transaction_js_1.serializeCoin; } });
|
|
93
|
+
Object.defineProperty(exports, "legacySerializeTransaction", { enumerable: true, get: function () { return transaction_js_1.serializeTransaction; } });
|
|
94
|
+
Object.defineProperty(exports, "legacyComputeTransactionDigest", { enumerable: true, get: function () { return transaction_js_1.computeTransactionDigest; } });
|
|
95
|
+
Object.defineProperty(exports, "legacyPrecomputeTransactionCoinID", { enumerable: true, get: function () { return transaction_js_1.precomputeTransactionCoinID; } });
|
|
96
|
+
Object.defineProperty(exports, "createDefaultTransaction", { enumerable: true, get: function () { return transaction_js_1.createDefaultTransaction; } });
|
|
97
|
+
Object.defineProperty(exports, "buildMinimaCoin", { enumerable: true, get: function () { return transaction_js_1.buildMinimaCoin; } });
|
|
98
|
+
// Derive
|
|
99
|
+
var derive_js_1 = require("./derive.js");
|
|
100
|
+
Object.defineProperty(exports, "scriptToAddress", { enumerable: true, get: function () { return derive_js_1.scriptToAddress; } });
|
|
101
|
+
Object.defineProperty(exports, "addressToRoot", { enumerable: true, get: function () { return derive_js_1.addressToRoot; } });
|
|
102
|
+
// Script
|
|
103
|
+
var script_js_1 = require("./script.js");
|
|
104
|
+
Object.defineProperty(exports, "scriptFromWotsPk", { enumerable: true, get: function () { return script_js_1.scriptFromWotsPk; } });
|
|
105
|
+
Object.defineProperty(exports, "legacyWotsAddressFromKeypair", { enumerable: true, get: function () { return script_js_1.wotsAddressFromKeypair; } });
|
|
106
|
+
// Minima32
|
|
107
|
+
var minima32_js_1 = require("./minima32.js");
|
|
108
|
+
Object.defineProperty(exports, "encodeMxRadix32Frame", { enumerable: true, get: function () { return minima32_js_1.encodeMxRadix32Frame; } });
|
|
109
|
+
Object.defineProperty(exports, "decodeMxRadix32Frame", { enumerable: true, get: function () { return minima32_js_1.decodeMxRadix32Frame; } });
|
|
110
|
+
Object.defineProperty(exports, "legacyMakeMxAddress", { enumerable: true, get: function () { return minima32_js_1.makeMxAddress; } });
|
|
111
|
+
Object.defineProperty(exports, "legacyParseMxAddress", { enumerable: true, get: function () { return minima32_js_1.parseMxAddress; } });
|
|
112
|
+
Object.defineProperty(exports, "hexToMx", { enumerable: true, get: function () { return minima32_js_1.hexToMx; } });
|
|
113
|
+
Object.defineProperty(exports, "mxToHex", { enumerable: true, get: function () { return minima32_js_1.mxToHex; } });
|
|
114
|
+
Object.defineProperty(exports, "encodeMx", { enumerable: true, get: function () { return minima32_js_1.encodeMx; } });
|
|
115
|
+
Object.defineProperty(exports, "decodeMx", { enumerable: true, get: function () { return minima32_js_1.decodeMx; } });
|
|
116
|
+
Object.defineProperty(exports, "makeMinimaAddress", { enumerable: true, get: function () { return minima32_js_1.makeMinimaAddress; } });
|
|
117
|
+
Object.defineProperty(exports, "convertMinimaAddress", { enumerable: true, get: function () { return minima32_js_1.convertMinimaAddress; } });
|
|
118
|
+
// Streamable
|
|
119
|
+
var Streamable_js_1 = require("./Streamable.js");
|
|
120
|
+
Object.defineProperty(exports, "legacyWriteMiniNumber", { enumerable: true, get: function () { return Streamable_js_1.writeMiniNumber; } });
|
|
121
|
+
Object.defineProperty(exports, "legacyWriteMiniData", { enumerable: true, get: function () { return Streamable_js_1.writeMiniData; } });
|
|
122
|
+
Object.defineProperty(exports, "writeMiniByte", { enumerable: true, get: function () { return Streamable_js_1.writeMiniByte; } });
|
|
123
|
+
Object.defineProperty(exports, "writeMMREntryNumber", { enumerable: true, get: function () { return Streamable_js_1.writeMMREntryNumber; } });
|
|
124
|
+
Object.defineProperty(exports, "concat", { enumerable: true, get: function () { return Streamable_js_1.concat; } });
|
|
125
|
+
Object.defineProperty(exports, "legacyHexToBytes", { enumerable: true, get: function () { return Streamable_js_1.hexToBytes; } });
|
|
126
|
+
Object.defineProperty(exports, "legacyBytesToHex", { enumerable: true, get: function () { return Streamable_js_1.bytesToHex; } });
|
|
127
|
+
Object.defineProperty(exports, "bigIntToByteArray", { enumerable: true, get: function () { return Streamable_js_1.bigIntToByteArray; } });
|
|
128
|
+
Object.defineProperty(exports, "legacyWriteMiniString", { enumerable: true, get: function () { return Streamable_js_1.writeMiniString; } });
|
|
129
|
+
Object.defineProperty(exports, "writeHashToStream", { enumerable: true, get: function () { return Streamable_js_1.writeHashToStream; } });
|
|
130
|
+
// JavaStreamables
|
|
131
|
+
var javaStreamables_js_1 = require("./javaStreamables.js");
|
|
132
|
+
Object.defineProperty(exports, "serializeMiniNumber", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumber; } });
|
|
133
|
+
Object.defineProperty(exports, "serializeMiniData", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniData; } });
|
|
134
|
+
Object.defineProperty(exports, "hashAllObjects", { enumerable: true, get: function () { return javaStreamables_js_1.hashAllObjects; } });
|
|
135
|
+
Object.defineProperty(exports, "legacyDeriveChainSeedJava", { enumerable: true, get: function () { return javaStreamables_js_1.deriveChainSeedJava; } });
|
|
136
|
+
Object.defineProperty(exports, "deriveChildTreeSeedJava", { enumerable: true, get: function () { return javaStreamables_js_1.deriveChildTreeSeedJava; } });
|
|
137
|
+
Object.defineProperty(exports, "hashObject", { enumerable: true, get: function () { return javaStreamables_js_1.hashObject; } });
|
|
138
|
+
Object.defineProperty(exports, "serializeMiniNumberZERO", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumberZERO; } });
|
|
139
|
+
Object.defineProperty(exports, "serializeMiniNumberONE", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumberONE; } });
|
|
140
|
+
Object.defineProperty(exports, "javaHashAllObjects", { enumerable: true, get: function () { return javaStreamables_js_1.javaHashAllObjects; } });
|
|
141
|
+
Object.defineProperty(exports, "indexToMiniDataBytes", { enumerable: true, get: function () { return javaStreamables_js_1.indexToMiniDataBytes; } });
|
|
142
|
+
Object.defineProperty(exports, "legacyDerivePerAddressSeed", { enumerable: true, get: function () { return javaStreamables_js_1.derivePerAddressSeed; } });
|
|
143
|
+
Object.defineProperty(exports, "legacyDeriveRootPrivSeed", { enumerable: true, get: function () { return javaStreamables_js_1.deriveRootPrivSeed; } });
|
|
144
|
+
Object.defineProperty(exports, "deriveUnifiedChildSeed", { enumerable: true, get: function () { return javaStreamables_js_1.deriveUnifiedChildSeed; } });
|
|
145
|
+
Object.defineProperty(exports, "createMMREntryNumber", { enumerable: true, get: function () { return javaStreamables_js_1.createMMREntryNumber; } });
|
|
146
|
+
Object.defineProperty(exports, "serializeMMREntryNumber", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMREntryNumber; } });
|
|
147
|
+
Object.defineProperty(exports, "serializeMMRData", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMRData; } });
|
|
148
|
+
Object.defineProperty(exports, "serializeMMREntry", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMREntry; } });
|
|
149
|
+
Object.defineProperty(exports, "legacyPrecomputeTransactionCoinIDTx", { enumerable: true, get: function () { return javaStreamables_js_1.precomputeTransactionCoinID; } });
|
|
150
|
+
// Utils
|
|
151
|
+
var utils_js_1 = require("./utils.js");
|
|
152
|
+
Object.defineProperty(exports, "legacyConcatBytes", { enumerable: true, get: function () { return utils_js_1.concatBytes; } });
|
|
153
|
+
// Params
|
|
154
|
+
__exportStar(require("./params.js"), exports);
|
|
155
|
+
// Verify
|
|
156
|
+
var verify_js_1 = require("./verify.js");
|
|
157
|
+
Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return verify_js_1.verifySignature; } });
|
|
158
|
+
Object.defineProperty(exports, "verifySignatureDetailed", { enumerable: true, get: function () { return verify_js_1.verifySignatureDetailed; } });
|
|
159
|
+
Object.defineProperty(exports, "verifyTreeSignatureDetailed", { enumerable: true, get: function () { return verify_js_1.verifyTreeSignatureDetailed; } });
|
|
160
|
+
Object.defineProperty(exports, "deriveAddressFromPublicKey", { enumerable: true, get: function () { return verify_js_1.deriveAddressFromPublicKey; } });
|
|
161
|
+
Object.defineProperty(exports, "normalizeHex", { enumerable: true, get: function () { return verify_js_1.normalizeHex; } });
|
|
162
|
+
Object.defineProperty(exports, "legacyCreateChallenge", { enumerable: true, get: function () { return verify_js_1.createChallenge; } });
|
|
163
|
+
Object.defineProperty(exports, "legacyValidateChallenge", { enumerable: true, get: function () { return verify_js_1.validateChallenge; } });
|
package/dist/minima32.js
CHANGED
|
@@ -48,7 +48,7 @@ function decodeMxRadix32Frame(mx) {
|
|
|
48
48
|
}
|
|
49
49
|
return bigIntToBytes(x);
|
|
50
50
|
}
|
|
51
|
-
const
|
|
51
|
+
const wasm_sync_js_1 = require("./wasm-sync.js");
|
|
52
52
|
/** Encode raw 32 bytes to Mx address with frame and checksum */
|
|
53
53
|
function makeMxAddress(root32) {
|
|
54
54
|
if (root32.length !== 32) {
|
|
@@ -61,7 +61,7 @@ function makeMxAddress(root32) {
|
|
|
61
61
|
frame[2] = 32; // Length low byte
|
|
62
62
|
frame.set(root32, 3);
|
|
63
63
|
// Calculate checksum of the raw 32 bytes
|
|
64
|
-
const chk = (0,
|
|
64
|
+
const chk = (0, wasm_sync_js_1.sha3_256)(root32);
|
|
65
65
|
frame.set(chk.slice(0, 4), 35);
|
|
66
66
|
return encodeMxRadix32Frame(frame);
|
|
67
67
|
}
|
|
@@ -79,7 +79,7 @@ function parseMxAddress(mx) {
|
|
|
79
79
|
const root32 = frame.slice(3, 35);
|
|
80
80
|
const checksum = frame.slice(35, 39);
|
|
81
81
|
// Validate checksum
|
|
82
|
-
const expectedChk = (0,
|
|
82
|
+
const expectedChk = (0, wasm_sync_js_1.sha3_256)(root32);
|
|
83
83
|
const expected = expectedChk.slice(0, 4);
|
|
84
84
|
for (let i = 0; i < 4; i++) {
|
|
85
85
|
if (checksum[i] !== expected[i]) {
|
package/dist/mmr.js
CHANGED
|
@@ -11,7 +11,7 @@ exports.verifyMMRProof = verifyMMRProof;
|
|
|
11
11
|
exports.parseMMRProofFromHex = parseMMRProofFromHex;
|
|
12
12
|
// packages/totem-sdk/packages/core/src/mmr.ts
|
|
13
13
|
// Full MMR implementation matching Minima's MMR.java, MMRData.java, and TreeKeyNode.java
|
|
14
|
-
const
|
|
14
|
+
const wasm_sync_js_1 = require("./wasm-sync.js");
|
|
15
15
|
const javaStreamables_js_1 = require("./javaStreamables.js");
|
|
16
16
|
// Import canonical wire serialization from Streamable.ts (single source of truth)
|
|
17
17
|
const Streamable_js_1 = require("./Streamable.js");
|
|
@@ -31,7 +31,7 @@ function serializeMMRProof(proof, blockTime = 0n) {
|
|
|
31
31
|
exports.serializeRealMMRProof = serializeMMRProof;
|
|
32
32
|
/** SHA3-256 helper returning 32 bytes */
|
|
33
33
|
function sha3(data) {
|
|
34
|
-
return (0,
|
|
34
|
+
return (0, wasm_sync_js_1.sha3_256)(data);
|
|
35
35
|
}
|
|
36
36
|
/** concat utility */
|
|
37
37
|
function concat(...parts) {
|
|
@@ -16,9 +16,11 @@
|
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.StatefulGameHelper = exports.SlowCashHelper = exports.FlashCashHelper = exports.VaultHelper = exports.ExchangeHelper = exports.MASTHelper = exports.HTLCHelper = exports.TimelockHelper = void 0;
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
19
|
+
const wasm_sync_js_1 = require("../wasm-sync.js");
|
|
20
|
+
const node_crypto_1 = require("node:crypto");
|
|
21
|
+
function sha256(data) {
|
|
22
|
+
return new Uint8Array((0, node_crypto_1.createHash)('sha256').update(data).digest());
|
|
23
|
+
}
|
|
22
24
|
const types_js_1 = require("./types.js");
|
|
23
25
|
function kissHex(hex) {
|
|
24
26
|
const raw = hex.startsWith('0x') || hex.startsWith('0X') ? hex.slice(2) : hex;
|
|
@@ -81,9 +83,9 @@ class HTLCHelper {
|
|
|
81
83
|
* Generate a random preimage and its hash.
|
|
82
84
|
*/
|
|
83
85
|
static generateSecret() {
|
|
84
|
-
const preimageBytes = (0,
|
|
86
|
+
const preimageBytes = (0, node_crypto_1.randomBytes)(32);
|
|
85
87
|
const preimage = bytesToHex(preimageBytes);
|
|
86
|
-
const hashBytes = (0,
|
|
88
|
+
const hashBytes = (0, wasm_sync_js_1.sha3_256)(preimageBytes);
|
|
87
89
|
const hash = bytesToHex(hashBytes);
|
|
88
90
|
return { preimage, hash };
|
|
89
91
|
}
|
|
@@ -93,11 +95,11 @@ class HTLCHelper {
|
|
|
93
95
|
static hashPreimage(preimage, algorithm = 'sha3') {
|
|
94
96
|
const preimageBytes = hexToBytes(preimage);
|
|
95
97
|
if (algorithm === 'sha2') {
|
|
96
|
-
const hashBytes =
|
|
98
|
+
const hashBytes = sha256(preimageBytes);
|
|
97
99
|
return bytesToHex(hashBytes);
|
|
98
100
|
}
|
|
99
101
|
else {
|
|
100
|
-
const hashBytes = (0,
|
|
102
|
+
const hashBytes = (0, wasm_sync_js_1.sha3_256)(preimageBytes);
|
|
101
103
|
return bytesToHex(hashBytes);
|
|
102
104
|
}
|
|
103
105
|
}
|
|
@@ -146,7 +148,7 @@ class MASTHelper {
|
|
|
146
148
|
*/
|
|
147
149
|
static hashScript(script) {
|
|
148
150
|
const scriptBytes = new TextEncoder().encode(script.trim().toUpperCase());
|
|
149
|
-
const hashBytes = (0,
|
|
151
|
+
const hashBytes = (0, wasm_sync_js_1.sha3_256)(scriptBytes);
|
|
150
152
|
return bytesToHex(hashBytes);
|
|
151
153
|
}
|
|
152
154
|
/**
|
|
@@ -177,7 +179,7 @@ class MASTHelper {
|
|
|
177
179
|
proofs.set(scripts[i], { proof: proofHex, index: i });
|
|
178
180
|
}
|
|
179
181
|
const combinedBytes = hexToBytes(hashes[0].slice(2) + hashes[1].slice(2));
|
|
180
|
-
const rootBytes = (0,
|
|
182
|
+
const rootBytes = (0, wasm_sync_js_1.sha3_256)(combinedBytes);
|
|
181
183
|
const root = bytesToHex(rootBytes);
|
|
182
184
|
return { root, proofs };
|
|
183
185
|
}
|
|
@@ -390,7 +392,7 @@ exports.StatefulGameHelper = StatefulGameHelper;
|
|
|
390
392
|
function computeScriptAddress(script) {
|
|
391
393
|
const cleanScript = script.trim().toUpperCase();
|
|
392
394
|
const scriptBytes = new TextEncoder().encode(cleanScript);
|
|
393
|
-
const hashBytes = (0,
|
|
395
|
+
const hashBytes = (0, wasm_sync_js_1.sha3_256)(scriptBytes);
|
|
394
396
|
return bytesToHex(hashBytes);
|
|
395
397
|
}
|
|
396
398
|
function encodeSimpleProof(siblingHash, isLeft) {
|
|
@@ -17,7 +17,7 @@ exports.aggregateSignatures = aggregateSignatures;
|
|
|
17
17
|
exports.validateExternalSignature = validateExternalSignature;
|
|
18
18
|
exports.computeScriptAddress = computeScriptAddress;
|
|
19
19
|
exports.concat = concat;
|
|
20
|
-
const
|
|
20
|
+
const wasm_sync_js_1 = require("../wasm-sync.js");
|
|
21
21
|
const mmr_js_1 = require("../mmr.js");
|
|
22
22
|
const minima32_js_1 = require("../minima32.js");
|
|
23
23
|
function hexToBytes(hex) {
|
|
@@ -301,6 +301,6 @@ function validateExternalSignature(signature, transactionDigest) {
|
|
|
301
301
|
function computeScriptAddress(script) {
|
|
302
302
|
const cleanScript = script.trim().toUpperCase();
|
|
303
303
|
const scriptBytes = new TextEncoder().encode(cleanScript);
|
|
304
|
-
const hashBytes = (0,
|
|
304
|
+
const hashBytes = (0, wasm_sync_js_1.sha3_256)(scriptBytes);
|
|
305
305
|
return bytesToHex(hashBytes);
|
|
306
306
|
}
|
package/dist/transaction.js
CHANGED
|
@@ -19,7 +19,7 @@ exports.computeTransactionDigest = computeTransactionDigest;
|
|
|
19
19
|
exports.precomputeTransactionCoinID = precomputeTransactionCoinID;
|
|
20
20
|
exports.createDefaultTransaction = createDefaultTransaction;
|
|
21
21
|
exports.buildMinimaCoin = buildMinimaCoin;
|
|
22
|
-
const
|
|
22
|
+
const wasm_sync_js_1 = require("./wasm-sync.js");
|
|
23
23
|
const Streamable_js_1 = require("./Streamable.js");
|
|
24
24
|
const ZERO_TXPOWID = new Uint8Array([0x00]);
|
|
25
25
|
const STATETYPE_HEX = 1;
|
|
@@ -231,7 +231,7 @@ function serializeTransaction(tx) {
|
|
|
231
231
|
}
|
|
232
232
|
function computeTransactionDigest(tx) {
|
|
233
233
|
const serialized = serializeTransaction(tx);
|
|
234
|
-
return (0,
|
|
234
|
+
return (0, wasm_sync_js_1.sha3_256)(serialized);
|
|
235
235
|
}
|
|
236
236
|
function precomputeTransactionCoinID(tx) {
|
|
237
237
|
if (tx.inputs.length === 0)
|
|
@@ -245,7 +245,7 @@ function precomputeTransactionCoinID(tx) {
|
|
|
245
245
|
const baseCoinIdStream = (0, Streamable_js_1.writeMiniData)(baseCoinId);
|
|
246
246
|
const outputIndexStream = (0, Streamable_js_1.writeMiniNumber)(BigInt(i));
|
|
247
247
|
const combined = (0, Streamable_js_1.concat)(baseCoinIdStream, outputIndexStream);
|
|
248
|
-
tx.outputs[i].coinId = (0,
|
|
248
|
+
tx.outputs[i].coinId = (0, wasm_sync_js_1.sha3_256)(combined);
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
function createDefaultTransaction() {
|
package/dist/verify.js
CHANGED
|
@@ -9,7 +9,7 @@ exports.verifySignature = verifySignature;
|
|
|
9
9
|
exports.verifySignatureDetailed = verifySignatureDetailed;
|
|
10
10
|
exports.createChallenge = createChallenge;
|
|
11
11
|
exports.validateChallenge = validateChallenge;
|
|
12
|
-
const
|
|
12
|
+
const wasm_sync_js_1 = require("./wasm-sync.js");
|
|
13
13
|
const treekey_js_1 = require("./treekey.js");
|
|
14
14
|
const derive_js_1 = require("./derive.js");
|
|
15
15
|
const script_js_1 = require("./script.js");
|
|
@@ -107,7 +107,7 @@ function verifySignatureDetailed(address, message, signatureHex, publicKeyHex) {
|
|
|
107
107
|
error: `Malformed signature: ${e.message}`,
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
|
-
const digest = (0,
|
|
110
|
+
const digest = (0, wasm_sync_js_1.sha3_256)(new TextEncoder().encode(message));
|
|
111
111
|
return verifyTreeSignatureDetailed(pkBytes, digest, treeSignature);
|
|
112
112
|
}
|
|
113
113
|
catch (e) {
|
|
@@ -145,7 +145,7 @@ function cryptoRandomBytes(length) {
|
|
|
145
145
|
}
|
|
146
146
|
function createChallenge(domain, nonce) {
|
|
147
147
|
const ts = Date.now();
|
|
148
|
-
const n = nonce || bytesToHex((0,
|
|
148
|
+
const n = nonce || bytesToHex((0, wasm_sync_js_1.sha3_256)(new Uint8Array([...new TextEncoder().encode(`${domain}:${ts}:`), ...cryptoRandomBytes(16)]))).slice(0, 16);
|
|
149
149
|
return JSON.stringify({ domain, nonce: n, issuedAt: ts });
|
|
150
150
|
}
|
|
151
151
|
function validateChallenge(challenge, options) {
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WASM Bridge — thin TypeScript wrappers around @totemsdk/core-wasm.
|
|
3
|
+
*
|
|
4
|
+
* This module provides the same public API as the legacy JS implementations
|
|
5
|
+
* but delegates to Rust/WASM for all cryptographic operations.
|
|
6
|
+
*
|
|
7
|
+
* The legacy JS implementations remain available via:
|
|
8
|
+
* import { ... } from '@totemsdk/core/legacy';
|
|
9
|
+
*/
|
|
10
|
+
import type { WotsKeypair } from '../types.js';
|
|
11
|
+
export declare function getParams(): Promise<{
|
|
12
|
+
w: number;
|
|
13
|
+
n: number;
|
|
14
|
+
L: number;
|
|
15
|
+
maxDigit: number;
|
|
16
|
+
maxSignatures: number;
|
|
17
|
+
signatureLevels: number;
|
|
18
|
+
addressPrefix: string;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function sha3_256(data: Uint8Array): Promise<Uint8Array>;
|
|
21
|
+
export declare function expandPrivateKey(seed: Uint8Array): Promise<Uint8Array[]>;
|
|
22
|
+
export declare function hashChain(x: Uint8Array, rounds: number): Promise<Uint8Array>;
|
|
23
|
+
export declare function derivePKdigest(seed: Uint8Array, keyIndex: number): Promise<Uint8Array>;
|
|
24
|
+
export declare function deriveFullPublicKey(seed: Uint8Array, keyIndex: number): Promise<Uint8Array>;
|
|
25
|
+
export declare function wotsSign(seed: Uint8Array, keyIndex: number, message: Uint8Array): Promise<Uint8Array>;
|
|
26
|
+
export declare function wotsVerify(sig: Uint8Array, message: Uint8Array, pkFull: Uint8Array): Promise<boolean>;
|
|
27
|
+
export declare function wotsVerifyDigest(sig: Uint8Array, message: Uint8Array, pkDigest: Uint8Array): Promise<boolean>;
|
|
28
|
+
export declare function wotsPkFromSig(message: Uint8Array, signature: Uint8Array): Promise<Uint8Array>;
|
|
29
|
+
export declare function wotsPublicKeyFromSeed(seed: Uint8Array, keyIndex?: number): Promise<Uint8Array>;
|
|
30
|
+
export declare function wotsKeypairFromSeed(seed: Uint8Array, index: number): Promise<WotsKeypair>;
|
|
31
|
+
export declare function deriveChainSeedJava(seed: Uint8Array, keyIndex: number): Promise<Uint8Array>;
|
|
32
|
+
export declare function derivePerAddressSeed(rootSeed: Uint8Array, addressIndex: number): Promise<Uint8Array>;
|
|
33
|
+
export declare function deriveRootPrivSeed(bip39Seed: Uint8Array): Promise<Uint8Array>;
|
|
34
|
+
export declare function phraseToSeed(phrase: string): Promise<Uint8Array>;
|
|
35
|
+
export declare function generateWordList(): Promise<string>;
|
|
36
|
+
export declare function validatePhrase(phrase: string): Promise<boolean>;
|
|
37
|
+
export declare function cleanSeedPhrase(phrase: string): Promise<string>;
|
|
38
|
+
export declare function makeMxAddress(root32: Uint8Array): Promise<string>;
|
|
39
|
+
export declare function parseMxAddress(address: string): Promise<Uint8Array>;
|
|
40
|
+
export declare function wotsAddressFromKeypair(seed: Uint8Array, keyIndex: number): Promise<string>;
|
|
41
|
+
export declare function serializeTransaction(tx: any): Promise<Uint8Array>;
|
|
42
|
+
export declare function computeTransactionDigest(serializedTx: Uint8Array): Promise<Uint8Array>;
|
|
43
|
+
export declare function precomputeTransactionCoinID(txid: Uint8Array, outputIndex: number): Promise<Uint8Array>;
|
|
44
|
+
export declare function verifyTreeSignature(rootPublicKey: Uint8Array, message: Uint8Array, signature: any): Promise<boolean>;
|
|
45
|
+
export declare function timingSafeEqual(a: Uint8Array, b: Uint8Array): Promise<boolean>;
|
|
46
|
+
export declare function createChallenge(domain: string, statement: string): Promise<string>;
|
|
47
|
+
export declare function validateChallenge(challengeJson: string, domain: string): Promise<boolean>;
|
|
48
|
+
export declare function writeMiniNumber(value: number, scale?: number): Promise<Uint8Array>;
|
|
49
|
+
export declare function writeMiniData(data: Uint8Array): Promise<Uint8Array>;
|
|
50
|
+
export declare function writeMiniString(s: string): Promise<Uint8Array>;
|
|
51
|
+
export declare function bytesToHex(bytes: Uint8Array): Promise<string>;
|
|
52
|
+
export declare function hexToBytes(hexStr: string): Promise<Uint8Array>;
|
|
53
|
+
export declare function concatBytes(...arrays: Uint8Array[]): Promise<Uint8Array>;
|
|
54
|
+
export { getParams as getParamSet } from './wasm-bridge.js';
|