@beclab/olaresid 0.1.5 ā 0.1.7
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 +10 -0
- package/dist/business/index.d.ts +3 -3
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business/index.js +31 -37
- package/dist/business/index.js.map +1 -1
- package/dist/cli.js +3 -4
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/utils/crypto-utils.d.ts +4 -32
- package/dist/utils/crypto-utils.d.ts.map +1 -1
- package/dist/utils/crypto-utils.js +32 -95
- package/dist/utils/crypto-utils.js.map +1 -1
- package/examples/crypto-utilities.ts +3 -3
- package/examples/ed25519-jwk.ts +1 -1
- package/examples/frontend-demo/index.html +13 -0
- package/examples/frontend-demo/package-lock.json +5370 -0
- package/examples/frontend-demo/package.json +33 -0
- package/examples/frontend-demo/src/App.vue +1211 -0
- package/examples/frontend-demo/src/main.ts +8 -0
- package/examples/frontend-demo/src/style.css +341 -0
- package/examples/frontend-demo/tsconfig.json +24 -0
- package/examples/frontend-demo/webpack.config.js +87 -0
- package/examples/generate-mnemonic.ts +3 -3
- package/examples/register-subdomain.ts +1 -1
- package/examples/transfer-domain.ts +1 -1
- package/package.json +2 -1
- package/src/business/index.ts +23 -34
- package/src/cli.ts +3 -4
- package/src/index.ts +1 -6
- package/src/utils/crypto-utils.ts +34 -112
- package/examples/encoding-utils.ts +0 -96
- package/examples/quasar-demo/.eslintrc.js +0 -23
- package/examples/quasar-demo/.quasar/app.js +0 -43
- package/examples/quasar-demo/.quasar/client-entry.js +0 -38
- package/examples/quasar-demo/.quasar/client-prefetch.js +0 -130
- package/examples/quasar-demo/.quasar/quasar-user-options.js +0 -16
- package/examples/quasar-demo/README.md +0 -49
- package/examples/quasar-demo/index.html +0 -11
- package/examples/quasar-demo/package-lock.json +0 -6407
- package/examples/quasar-demo/package.json +0 -36
- package/examples/quasar-demo/quasar.config.js +0 -73
- package/examples/quasar-demo/src/App.vue +0 -13
- package/examples/quasar-demo/src/css/app.scss +0 -1
- package/examples/quasar-demo/src/layouts/MainLayout.vue +0 -21
- package/examples/quasar-demo/src/pages/IndexPage.vue +0 -905
- package/examples/quasar-demo/src/router/index.ts +0 -25
- package/examples/quasar-demo/src/router/routes.ts +0 -11
- package/examples/quasar-demo/tsconfig.json +0 -28
|
@@ -40,10 +40,6 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
};
|
|
41
41
|
})();
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.base64ToUint8Array = base64ToUint8Array;
|
|
44
|
-
exports.uint8ArrayToHex = uint8ArrayToHex;
|
|
45
|
-
exports.hexToUint8Array = hexToUint8Array;
|
|
46
|
-
exports.uint8ArrayToBase64 = uint8ArrayToBase64;
|
|
47
43
|
exports.generateMnemonic = generateMnemonic;
|
|
48
44
|
exports.getEthereumAddressFromMnemonic = getEthereumAddressFromMnemonic;
|
|
49
45
|
exports.getEVMPrivateKeyFromMnemonic = getEVMPrivateKeyFromMnemonic;
|
|
@@ -52,60 +48,11 @@ exports.getEd25519JwkFromMnemonic = getEd25519JwkFromMnemonic;
|
|
|
52
48
|
exports.deriveDIDFromMnemonic = deriveDIDFromMnemonic;
|
|
53
49
|
exports.generateDIDKeyData = generateDIDKeyData;
|
|
54
50
|
exports.createRsaKeyPair = createRsaKeyPair;
|
|
51
|
+
const bip39 = __importStar(require("bip39"));
|
|
55
52
|
const varint = __importStar(require("varint"));
|
|
56
53
|
const base58_1 = require("multiformats/bases/base58");
|
|
57
54
|
const base64_1 = require("multiformats/bases/base64");
|
|
58
55
|
// ============================================================================
|
|
59
|
-
// Cross-platform encoding utilities (Browser + Node.js compatible)
|
|
60
|
-
// ============================================================================
|
|
61
|
-
/**
|
|
62
|
-
* Convert base64 string to Uint8Array (cross-platform)
|
|
63
|
-
* Works in both browser and Node.js environments
|
|
64
|
-
* @param base64 base64 encoded string
|
|
65
|
-
* @returns Uint8Array
|
|
66
|
-
*/
|
|
67
|
-
function base64ToUint8Array(base64) {
|
|
68
|
-
const binaryString = atob(base64);
|
|
69
|
-
const bytes = new Uint8Array(binaryString.length);
|
|
70
|
-
for (let i = 0; i < binaryString.length; i++) {
|
|
71
|
-
bytes[i] = binaryString.charCodeAt(i);
|
|
72
|
-
}
|
|
73
|
-
return bytes;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Convert Uint8Array to hex string (cross-platform)
|
|
77
|
-
* @param bytes Uint8Array to convert
|
|
78
|
-
* @returns hex string without '0x' prefix
|
|
79
|
-
*/
|
|
80
|
-
function uint8ArrayToHex(bytes) {
|
|
81
|
-
return Array.from(bytes)
|
|
82
|
-
.map((b) => b.toString(16).padStart(2, '0'))
|
|
83
|
-
.join('');
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Convert hex string to Uint8Array (cross-platform)
|
|
87
|
-
* @param hex hex string (with or without '0x' prefix)
|
|
88
|
-
* @returns Uint8Array
|
|
89
|
-
*/
|
|
90
|
-
function hexToUint8Array(hex) {
|
|
91
|
-
const cleanHex = hex.startsWith('0x') ? hex.slice(2) : hex;
|
|
92
|
-
const bytes = new Uint8Array(cleanHex.length / 2);
|
|
93
|
-
for (let i = 0; i < cleanHex.length; i += 2) {
|
|
94
|
-
bytes[i / 2] = parseInt(cleanHex.slice(i, i + 2), 16);
|
|
95
|
-
}
|
|
96
|
-
return bytes;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Convert Uint8Array to base64 string (cross-platform)
|
|
100
|
-
* Works in both browser and Node.js environments
|
|
101
|
-
* @param bytes Uint8Array to convert
|
|
102
|
-
* @returns base64 encoded string
|
|
103
|
-
*/
|
|
104
|
-
function uint8ArrayToBase64(bytes) {
|
|
105
|
-
const binaryString = String.fromCharCode(...bytes);
|
|
106
|
-
return btoa(binaryString);
|
|
107
|
-
}
|
|
108
|
-
// ============================================================================
|
|
109
56
|
// Trust Wallet Core Management
|
|
110
57
|
// ============================================================================
|
|
111
58
|
let walletCore = null;
|
|
@@ -127,9 +74,18 @@ async function loadWalletCore() {
|
|
|
127
74
|
// Start loading
|
|
128
75
|
loadingPromise = (async () => {
|
|
129
76
|
try {
|
|
130
|
-
//
|
|
131
|
-
|
|
132
|
-
|
|
77
|
+
// Check if running in browser or Node.js
|
|
78
|
+
if (typeof window !== 'undefined' &&
|
|
79
|
+
typeof require === 'undefined') {
|
|
80
|
+
// Browser environment with ES modules
|
|
81
|
+
const { initWasm } = await Promise.resolve().then(() => __importStar(require('@trustwallet/wallet-core')));
|
|
82
|
+
walletCore = await initWasm();
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
// Node.js environment
|
|
86
|
+
const { initWasm } = require('@trustwallet/wallet-core');
|
|
87
|
+
walletCore = await initWasm();
|
|
88
|
+
}
|
|
133
89
|
walletCoreLoaded = true;
|
|
134
90
|
return walletCore;
|
|
135
91
|
}
|
|
@@ -142,34 +98,22 @@ async function loadWalletCore() {
|
|
|
142
98
|
}
|
|
143
99
|
// multicodec code for Ed25519 keys (0xed)
|
|
144
100
|
const ED25519_CODEC_ID = varint.encode(parseInt('0xed', 16));
|
|
145
|
-
/**
|
|
146
|
-
* Simple mnemonic validation (checks word count)
|
|
147
|
-
* @param mnemonic BIP39 mnemonic phrase
|
|
148
|
-
* @returns true if mnemonic has valid word count (12, 15, 18, 21, or 24 words)
|
|
149
|
-
*/
|
|
150
|
-
function validateMnemonic(mnemonic) {
|
|
151
|
-
const words = mnemonic.trim().split(/\s+/);
|
|
152
|
-
const validWordCounts = [12, 15, 18, 21, 24];
|
|
153
|
-
return validWordCounts.includes(words.length);
|
|
154
|
-
}
|
|
155
101
|
// ============================================================================
|
|
156
102
|
// Mnemonic and Key Derivation Functions
|
|
157
103
|
// ============================================================================
|
|
158
104
|
/**
|
|
159
|
-
* Generate a random BIP39 mnemonic phrase
|
|
160
|
-
* Works in both Node.js and browser environments
|
|
161
|
-
*
|
|
105
|
+
* Generate a random BIP39 mnemonic phrase
|
|
162
106
|
* @param wordCount Number of words (12, 15, 18, 21, or 24), default is 12
|
|
163
|
-
* @returns A
|
|
107
|
+
* @returns A mnemonic phrase string
|
|
164
108
|
*
|
|
165
109
|
* @example
|
|
166
110
|
* ```typescript
|
|
167
|
-
* const mnemonic =
|
|
111
|
+
* const mnemonic = generateMnemonic(12);
|
|
168
112
|
* console.log(mnemonic);
|
|
169
113
|
* // Output: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
|
|
170
114
|
* ```
|
|
171
115
|
*/
|
|
172
|
-
|
|
116
|
+
function generateMnemonic(wordCount = 12) {
|
|
173
117
|
// Convert word count to entropy bits
|
|
174
118
|
// 12 words = 128 bits, 15 words = 160 bits, etc.
|
|
175
119
|
const strengthMap = {
|
|
@@ -183,12 +127,7 @@ async function generateMnemonic(wordCount = 12) {
|
|
|
183
127
|
if (!strength) {
|
|
184
128
|
throw new Error('Invalid word count. Must be one of: 12, 15, 18, 21, 24');
|
|
185
129
|
}
|
|
186
|
-
|
|
187
|
-
const core = await loadWalletCore();
|
|
188
|
-
const { HDWallet } = core;
|
|
189
|
-
const wallet = HDWallet.create(strength, '');
|
|
190
|
-
const mnemonic = wallet.mnemonic();
|
|
191
|
-
return mnemonic;
|
|
130
|
+
return bip39.generateMnemonic(strength);
|
|
192
131
|
}
|
|
193
132
|
/**
|
|
194
133
|
* Derive Ethereum address from mnemonic using Trust Wallet Core
|
|
@@ -205,8 +144,8 @@ async function generateMnemonic(wordCount = 12) {
|
|
|
205
144
|
*/
|
|
206
145
|
async function getEthereumAddressFromMnemonic(mnemonic) {
|
|
207
146
|
// Validate mnemonic
|
|
208
|
-
if (!validateMnemonic(mnemonic)) {
|
|
209
|
-
throw new Error('Invalid mnemonic phrase
|
|
147
|
+
if (!bip39.validateMnemonic(mnemonic)) {
|
|
148
|
+
throw new Error('Invalid mnemonic phrase');
|
|
210
149
|
}
|
|
211
150
|
const core = await loadWalletCore();
|
|
212
151
|
const { HDWallet, CoinType } = core;
|
|
@@ -229,17 +168,16 @@ async function getEthereumAddressFromMnemonic(mnemonic) {
|
|
|
229
168
|
*/
|
|
230
169
|
async function getEVMPrivateKeyFromMnemonic(mnemonic) {
|
|
231
170
|
// Validate mnemonic
|
|
232
|
-
if (!validateMnemonic(mnemonic)) {
|
|
233
|
-
throw new Error('Invalid mnemonic phrase
|
|
171
|
+
if (!bip39.validateMnemonic(mnemonic)) {
|
|
172
|
+
throw new Error('Invalid mnemonic phrase');
|
|
234
173
|
}
|
|
235
174
|
const core = await loadWalletCore();
|
|
236
175
|
const { HDWallet, CoinType } = core;
|
|
237
176
|
const wallet = HDWallet.createWithMnemonic(mnemonic, '');
|
|
238
177
|
// Get private key for Ethereum
|
|
239
178
|
const privateKeyData = wallet.getKeyForCoin(CoinType.ethereum);
|
|
240
|
-
// Convert to hex string with 0x prefix
|
|
241
|
-
const
|
|
242
|
-
const privateKeyHex = '0x' + uint8ArrayToHex(privateKeyBytes);
|
|
179
|
+
// Convert to hex string with 0x prefix
|
|
180
|
+
const privateKeyHex = '0x' + Buffer.from(privateKeyData.data()).toString('hex');
|
|
243
181
|
return privateKeyHex;
|
|
244
182
|
}
|
|
245
183
|
/**
|
|
@@ -280,8 +218,8 @@ async function getID(mnemonic) {
|
|
|
280
218
|
*/
|
|
281
219
|
async function getDIDFromMnemonic(mnemonic) {
|
|
282
220
|
// Validate mnemonic
|
|
283
|
-
if (!validateMnemonic(mnemonic)) {
|
|
284
|
-
throw new Error('Invalid mnemonic phrase
|
|
221
|
+
if (!bip39.validateMnemonic(mnemonic)) {
|
|
222
|
+
throw new Error('Invalid mnemonic phrase');
|
|
285
223
|
}
|
|
286
224
|
const id = await getID(mnemonic);
|
|
287
225
|
return `did:key:${id}`;
|
|
@@ -323,8 +261,8 @@ async function getDIDFromMnemonic(mnemonic) {
|
|
|
323
261
|
*/
|
|
324
262
|
async function getEd25519JwkFromMnemonic(mnemonic) {
|
|
325
263
|
// Validate mnemonic
|
|
326
|
-
if (!validateMnemonic(mnemonic)) {
|
|
327
|
-
throw new Error('Invalid mnemonic phrase
|
|
264
|
+
if (!bip39.validateMnemonic(mnemonic)) {
|
|
265
|
+
throw new Error('Invalid mnemonic phrase');
|
|
328
266
|
}
|
|
329
267
|
const core = await loadWalletCore();
|
|
330
268
|
const { HDWallet, Curve } = core;
|
|
@@ -339,7 +277,6 @@ async function getEd25519JwkFromMnemonic(mnemonic) {
|
|
|
339
277
|
idBytes.set(publicKeyBytes, ED25519_CODEC_ID.length);
|
|
340
278
|
const id = base58_1.base58btc.encode(idBytes);
|
|
341
279
|
const did = `did:key:${id}`;
|
|
342
|
-
const keyId = `${did}#${id}`;
|
|
343
280
|
// Base64url encode the keys
|
|
344
281
|
const x = base64_1.base64url.baseEncode(publicKeyBytes);
|
|
345
282
|
const d = base64_1.base64url.baseEncode(privateKeyBytes);
|
|
@@ -349,7 +286,7 @@ async function getEd25519JwkFromMnemonic(mnemonic) {
|
|
|
349
286
|
crv: 'Ed25519', // Curve: Ed25519
|
|
350
287
|
alg: 'EdDSA', // Algorithm: EdDSA
|
|
351
288
|
use: 'sig', // Use: signature
|
|
352
|
-
kid:
|
|
289
|
+
kid: did, // DID
|
|
353
290
|
x: x // Public key parameter
|
|
354
291
|
};
|
|
355
292
|
// Private JWK (contains both public and private key material)
|
|
@@ -374,8 +311,8 @@ async function getEd25519JwkFromMnemonic(mnemonic) {
|
|
|
374
311
|
*/
|
|
375
312
|
async function deriveDIDFromMnemonic(mnemonic) {
|
|
376
313
|
// Validate mnemonic once upfront
|
|
377
|
-
if (!validateMnemonic(mnemonic)) {
|
|
378
|
-
throw new Error('Invalid mnemonic phrase
|
|
314
|
+
if (!bip39.validateMnemonic(mnemonic)) {
|
|
315
|
+
throw new Error('Invalid mnemonic phrase');
|
|
379
316
|
}
|
|
380
317
|
// Derive both in parallel for better performance
|
|
381
318
|
const [owner, did] = await Promise.all([
|
|
@@ -399,7 +336,7 @@ async function deriveDIDFromMnemonic(mnemonic) {
|
|
|
399
336
|
* ```
|
|
400
337
|
*/
|
|
401
338
|
async function generateDIDKeyData(wordCount = 12) {
|
|
402
|
-
const mnemonic =
|
|
339
|
+
const mnemonic = generateMnemonic(wordCount);
|
|
403
340
|
const { owner, did } = await deriveDIDFromMnemonic(mnemonic);
|
|
404
341
|
return {
|
|
405
342
|
mnemonic,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../../src/utils/crypto-utils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../../src/utils/crypto-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,10 +29,10 @@ async function main() {
|
|
|
29
29
|
console.log('\nš Example 1: Generate Mnemonic Phrases');
|
|
30
30
|
console.log('-'.repeat(60));
|
|
31
31
|
|
|
32
|
-
const mnemonic12 =
|
|
32
|
+
const mnemonic12 = generateMnemonic(12);
|
|
33
33
|
console.log('12-word mnemonic:', mnemonic12);
|
|
34
34
|
|
|
35
|
-
const mnemonic24 =
|
|
35
|
+
const mnemonic24 = generateMnemonic(24);
|
|
36
36
|
console.log('24-word mnemonic:', mnemonic24);
|
|
37
37
|
|
|
38
38
|
// =========================================================================
|
|
@@ -105,7 +105,7 @@ async function main() {
|
|
|
105
105
|
console.log('\nā
Example 7: Verify Consistency');
|
|
106
106
|
console.log('-'.repeat(60));
|
|
107
107
|
|
|
108
|
-
const verifyMnemonic =
|
|
108
|
+
const verifyMnemonic = generateMnemonic(12);
|
|
109
109
|
console.log('Testing mnemonic:', verifyMnemonic);
|
|
110
110
|
|
|
111
111
|
const addr1 = await getEthereumAddressFromMnemonic(verifyMnemonic);
|
package/examples/ed25519-jwk.ts
CHANGED
|
@@ -20,7 +20,7 @@ async function example_generateEd25519JWK() {
|
|
|
20
20
|
try {
|
|
21
21
|
// Step 1: Generate a new mnemonic phrase
|
|
22
22
|
console.log('\nš Step 1: Generating BIP39 mnemonic...');
|
|
23
|
-
const mnemonic =
|
|
23
|
+
const mnemonic = generateMnemonic(12);
|
|
24
24
|
console.log(`Mnemonic: ${mnemonic}`);
|
|
25
25
|
|
|
26
26
|
// Step 2: Derive Ed25519 key pair and DID from mnemonic
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta name="description" content="DID Gate - Decentralized Identity Service" />
|
|
7
|
+
<title>DID Gate</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="app"></div>
|
|
11
|
+
<script type="module" src="/src/main.ts"></script>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|