@deserialize/multi-vm-wallet 1.0.372 → 1.1.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/dist/bip32.d.ts +1 -3
- package/dist/bip32.js +103 -33
- package/dist/bip32.js.map +1 -1
- package/dist/bip32Old.d.ts +51 -0
- package/dist/bip32Old.js +856 -0
- package/dist/bip32Old.js.map +1 -0
- package/dist/{utils/bip32.d.ts → bip32Small.d.ts} +1 -3
- package/dist/bip32Small.js +115 -0
- package/dist/bip32Small.js.map +1 -0
- package/dist/bipTest.d.ts +0 -0
- package/dist/bipTest.js +363 -0
- package/dist/bipTest.js.map +1 -0
- package/dist/constant.d.ts +2 -0
- package/dist/constant.js +55 -0
- package/dist/constant.js.map +1 -0
- package/dist/evm/evm.d.ts +1 -0
- package/dist/evm/evm.js +1 -0
- package/dist/evm/evm.js.map +1 -1
- package/dist/evm/utils.d.ts +2 -1
- package/dist/evm/utils.js +24 -1
- package/dist/evm/utils.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/svm/svm.d.ts +1 -0
- package/dist/svm/svm.js +12 -8
- package/dist/svm/svm.js.map +1 -1
- package/dist/svm/transactionSender.js +6 -2
- package/dist/svm/transactionSender.js.map +1 -1
- package/dist/svm/utils.d.ts +1 -0
- package/dist/svm/utils.js +25 -33
- package/dist/svm/utils.js.map +1 -1
- package/dist/test.d.ts +2 -0
- package/dist/test.js +42 -0
- package/dist/test.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js.map +1 -1
- package/dist/vm.d.ts +2 -1
- package/dist/vm.js +2 -2
- package/dist/vm.js.map +1 -1
- package/package.json +2 -5
- package/utils/bip32.ts +124 -35
- package/utils/bip32Old.ts +1004 -0
- package/utils/bip32Small.ts +91 -0
- package/utils/bipTest.ts +442 -0
- package/utils/constant.ts +55 -0
- package/utils/evm/evm.ts +4 -3
- package/utils/evm/utils.ts +29 -1
- package/utils/index.ts +2 -1
- package/utils/svm/svm.ts +14 -12
- package/utils/svm/transactionSender.ts +7 -2
- package/utils/svm/utils.ts +33 -33
- package/utils/test.ts +49 -0
- package/utils/types.ts +2 -0
- package/utils/vm.ts +4 -3
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/utils/IChainWallet.d.ts +0 -17
- package/dist/utils/IChainWallet.js +0 -22
- package/dist/utils/bip32.js +0 -99
- package/dist/utils/evm/evm.d.ts +0 -39
- package/dist/utils/evm/evm.js +0 -233
- package/dist/utils/evm/index.d.ts +0 -2
- package/dist/utils/evm/index.js +0 -18
- package/dist/utils/evm/utils.d.ts +0 -207
- package/dist/utils/evm/utils.js +0 -537
- package/dist/utils/index.d.ts +0 -7
- package/dist/utils/index.js +0 -23
- package/dist/utils/svm/index.d.ts +0 -1
- package/dist/utils/svm/index.js +0 -17
- package/dist/utils/svm/svm.d.ts +0 -36
- package/dist/utils/svm/svm.js +0 -166
- package/dist/utils/svm/transactionSender.d.ts +0 -8
- package/dist/utils/svm/transactionSender.js +0 -83
- package/dist/utils/svm/utils.d.ts +0 -85
- package/dist/utils/svm/utils.js +0 -304
- package/dist/utils/types.d.ts +0 -44
- package/dist/utils/types.js +0 -9
- package/dist/utils/vm.d.ts +0 -12
- package/dist/utils/vm.js +0 -48
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bip32Old.js","sourceRoot":"","sources":["../utils/bip32Old.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { BIP32Interface } from "bip32";
|
|
2
1
|
import { Keypair } from "@solana/web3.js";
|
|
3
2
|
export declare function GenerateNewMnemonic(): string;
|
|
4
3
|
export declare function ValidateMnemonic(mnemonic: string): true;
|
|
5
|
-
export declare function GenerateSeed(_mnemonic?: string):
|
|
6
|
-
export declare function getSeedNode(seed: string): BIP32Interface;
|
|
4
|
+
export declare function GenerateSeed(_mnemonic?: string): Uint8Array<ArrayBufferLike>;
|
|
7
5
|
export declare function EVMDeriveChildPrivateKey(seed: string, index: number, derivationPath: string): {
|
|
8
6
|
privateKey: string;
|
|
9
7
|
publicKey: string;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.GenerateNewMnemonic = GenerateNewMnemonic;
|
|
37
|
+
exports.ValidateMnemonic = ValidateMnemonic;
|
|
38
|
+
exports.GenerateSeed = GenerateSeed;
|
|
39
|
+
exports.EVMDeriveChildPrivateKey = EVMDeriveChildPrivateKey;
|
|
40
|
+
exports.SVMDeriveChildPrivateKey = SVMDeriveChildPrivateKey;
|
|
41
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
42
|
+
const bip39 = __importStar(require("@scure/bip39"));
|
|
43
|
+
const bip32_1 = require("@scure/bip32");
|
|
44
|
+
const buffer_1 = require("buffer"); // Import the polyfill
|
|
45
|
+
window.Buffer = buffer_1.Buffer; // Inject Buffer into the global scope
|
|
46
|
+
const english_1 = require("@scure/bip39/wordlists/english");
|
|
47
|
+
const hmac_1 = require("../node_modules/@noble/hashes/hmac");
|
|
48
|
+
const sha512_1 = require("../node_modules/@noble/hashes/sha512");
|
|
49
|
+
function GenerateNewMnemonic() {
|
|
50
|
+
const mnemonic = bip39.generateMnemonic(english_1.wordlist);
|
|
51
|
+
return mnemonic;
|
|
52
|
+
}
|
|
53
|
+
function ValidateMnemonic(mnemonic) {
|
|
54
|
+
const isValid = bip39.validateMnemonic(mnemonic, english_1.wordlist);
|
|
55
|
+
if (!isValid) {
|
|
56
|
+
throw new Error("Invalid mnemonic");
|
|
57
|
+
}
|
|
58
|
+
return isValid;
|
|
59
|
+
}
|
|
60
|
+
function GenerateSeed(_mnemonic) {
|
|
61
|
+
const mnemonic = _mnemonic || bip39.generateMnemonic(english_1.wordlist);
|
|
62
|
+
const seedString = bip39.mnemonicToSeedSync(mnemonic);
|
|
63
|
+
return seedString;
|
|
64
|
+
}
|
|
65
|
+
//EVM
|
|
66
|
+
function EVMDeriveChildPrivateKey(seed, index, derivationPath) {
|
|
67
|
+
const path = `${derivationPath}${index}'`;
|
|
68
|
+
const scureNode = bip32_1.HDKey.fromMasterSeed(buffer_1.Buffer.from(seed, "hex"));
|
|
69
|
+
const child = scureNode.derive(path);
|
|
70
|
+
const privateKey = buffer_1.Buffer.from(child.privateKey).toString("hex");
|
|
71
|
+
const publicKey = buffer_1.Buffer.from(child.publicKey).toString("hex");
|
|
72
|
+
return { privateKey, publicKey };
|
|
73
|
+
}
|
|
74
|
+
//SVM
|
|
75
|
+
function SVMDeriveChildPrivateKey(seed, index, derivationPath) {
|
|
76
|
+
const path = `${derivationPath}${index}'`;
|
|
77
|
+
// Derive a seed from the given path
|
|
78
|
+
const derivedSeed = derivePathEclipticCurve(path, buffer_1.Buffer.from(seed, "hex")).key;
|
|
79
|
+
const derivedKeyPair = web3_js_1.Keypair.fromSeed(derivedSeed);
|
|
80
|
+
return derivedKeyPair;
|
|
81
|
+
}
|
|
82
|
+
function derivePathEclipticCurve(path, seed) {
|
|
83
|
+
const segments = path
|
|
84
|
+
.split("/")
|
|
85
|
+
.slice(1)
|
|
86
|
+
.map((seg) => {
|
|
87
|
+
if (!seg.endsWith("'")) {
|
|
88
|
+
throw new Error("Only hardened derivation is supported");
|
|
89
|
+
}
|
|
90
|
+
return parseInt(seg.slice(0, -1), 10) + 0x80000000;
|
|
91
|
+
});
|
|
92
|
+
// Initialize with master key derivation
|
|
93
|
+
let hmacResult = (0, hmac_1.hmac)(sha512_1.sha512, "ed25519 seed", seed);
|
|
94
|
+
let key = hmacResult.slice(0, 32);
|
|
95
|
+
let chainCode = hmacResult.slice(32, 64);
|
|
96
|
+
// Derive each path segment
|
|
97
|
+
for (const segment of segments) {
|
|
98
|
+
const result = hardenedDerivation(key, chainCode, segment);
|
|
99
|
+
key = buffer_1.Buffer.from(result.key);
|
|
100
|
+
chainCode = buffer_1.Buffer.from(result.chainCode);
|
|
101
|
+
}
|
|
102
|
+
return { key, chainCode };
|
|
103
|
+
}
|
|
104
|
+
function hardenedDerivation(parentKey, parentChainCode, index) {
|
|
105
|
+
const indexBuffer = new Uint8Array(4);
|
|
106
|
+
new DataView(indexBuffer.buffer).setUint32(0, index, false);
|
|
107
|
+
// Proper SLIP-0010 format: 0x00 + parent_key + index
|
|
108
|
+
const data = new Uint8Array([0x00, ...parentKey, ...indexBuffer]);
|
|
109
|
+
const hmacResult = (0, hmac_1.hmac)(sha512_1.sha512, parentChainCode, data);
|
|
110
|
+
return {
|
|
111
|
+
key: hmacResult.slice(0, 32), // Left 32 bytes
|
|
112
|
+
chainCode: hmacResult.slice(32, 64) // Right 32 bytes
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=bip32Small.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bip32Small.js","sourceRoot":"","sources":["../utils/bip32Small.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
package/dist/bipTest.js
ADDED
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import { mnemonicToSeedSync, generateMnemonic } from "@scure/bip39";
|
|
3
|
+
// import { wordlist } from "@scure/bip39/wordlists/english";
|
|
4
|
+
// import nacl from "tweetnacl";
|
|
5
|
+
// import { hmac } from "../node_modules/@noble/hashes/hmac";
|
|
6
|
+
// import { sha512 } from "../node_modules/@noble/hashes/sha512";
|
|
7
|
+
// import BIP32Factory from "bip32";
|
|
8
|
+
// import * as ecc from "tiny-secp256k1";
|
|
9
|
+
// import { BIP32Interface } from "bip32";
|
|
10
|
+
// import { derivePath as derivePathLib } from "ed25519-hd-key";
|
|
11
|
+
// import { HDKey } from "@scure/bip32";
|
|
12
|
+
// import * as bip39_impl1 from "bip39";
|
|
13
|
+
// import * as ed25519 from "ed25519-hd-key";
|
|
14
|
+
// import { Keypair } from "@solana/web3.js";
|
|
15
|
+
// // Implementation 2 - Using @scure libraries with custom Ed25519
|
|
16
|
+
// import * as bip39_impl2 from "@scure/bip39";
|
|
17
|
+
// // === your SLIP-0010 implementation here ===
|
|
18
|
+
// // (using your derivePath + hardenedDerivation methods)
|
|
19
|
+
// function derivePath(path: string, seed: Uint8Array): { key: Uint8Array, chainCode: Uint8Array } {
|
|
20
|
+
// const segments = path
|
|
21
|
+
// .split("/")
|
|
22
|
+
// .slice(1)
|
|
23
|
+
// .map((seg) => {
|
|
24
|
+
// if (!seg.endsWith("'")) {
|
|
25
|
+
// throw new Error("Only hardened derivation is supported");
|
|
26
|
+
// }
|
|
27
|
+
// return parseInt(seg.slice(0, -1), 10) + 0x80000000;
|
|
28
|
+
// });
|
|
29
|
+
// // Initialize with master key derivation
|
|
30
|
+
// let hmacResult = hmac(sha512, "ed25519 seed", seed);
|
|
31
|
+
// let key = hmacResult.slice(0, 32);
|
|
32
|
+
// let chainCode = hmacResult.slice(32, 64);
|
|
33
|
+
// // Derive each path segment
|
|
34
|
+
// for (const segment of segments) {
|
|
35
|
+
// const result = hardenedDerivation(key, chainCode, segment);
|
|
36
|
+
// key = Buffer.from(result.key);
|
|
37
|
+
// chainCode = Buffer.from(result.chainCode);
|
|
38
|
+
// }
|
|
39
|
+
// return { key, chainCode };
|
|
40
|
+
// }
|
|
41
|
+
// function hardenedDerivation(
|
|
42
|
+
// parentKey: Uint8Array,
|
|
43
|
+
// parentChainCode: Uint8Array,
|
|
44
|
+
// index: number
|
|
45
|
+
// ): { key: Uint8Array, chainCode: Uint8Array } {
|
|
46
|
+
// const indexBuffer = new Uint8Array(4);
|
|
47
|
+
// new DataView(indexBuffer.buffer).setUint32(0, index, false);
|
|
48
|
+
// // Proper SLIP-0010 format: 0x00 + parent_key + index
|
|
49
|
+
// const data = new Uint8Array([0x00, ...parentKey, ...indexBuffer]);
|
|
50
|
+
// const hmacResult = hmac(sha512, parentChainCode, data);
|
|
51
|
+
// return {
|
|
52
|
+
// key: hmacResult.slice(0, 32), // Left 32 bytes
|
|
53
|
+
// chainCode: hmacResult.slice(32, 64) // Right 32 bytes
|
|
54
|
+
// };
|
|
55
|
+
// }
|
|
56
|
+
// function hex(buf: Uint8Array) {
|
|
57
|
+
// return Buffer.from(buf).toString("hex");
|
|
58
|
+
// }
|
|
59
|
+
// // --- Test Vector Check ---
|
|
60
|
+
// const vectorTest = () => {
|
|
61
|
+
// const seedHex = "000102030405060708090a0b0c0d0e0f";
|
|
62
|
+
// const seed = Buffer.from(seedHex, "hex");
|
|
63
|
+
// const { key, chainCode } = derivePath("m/0'", seed);
|
|
64
|
+
// console.log("SLIP-0010 Test Vector:");
|
|
65
|
+
// console.log("Derived key:", hex(key));
|
|
66
|
+
// console.log("Expected key: 68e0fe46dfb67e368c75379acec591dad19df3cde26e63b93a8e704f1dade7a3");
|
|
67
|
+
// console.log("Derived chainCode:", hex(chainCode));
|
|
68
|
+
// console.log("Expected chainCode: 8b59aa11380b624e81507a27fedda59fea6d0b779a778918a2fd3590e16e9c69");
|
|
69
|
+
// }
|
|
70
|
+
// // --- Solana Path Check ---
|
|
71
|
+
// const solanaPathCheck = () => {
|
|
72
|
+
// const mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
|
|
73
|
+
// const seed = mnemonicToSeedSync(mnemonic);
|
|
74
|
+
// const { key } = derivePath("m/44'/501'/0'/0'", seed);
|
|
75
|
+
// const keypair = nacl.sign.keyPair.fromSeed(key);
|
|
76
|
+
// console.log("\nSolana Path m/44'/501'/0'/0':");
|
|
77
|
+
// console.log("Private key seed:", hex(key));
|
|
78
|
+
// console.log("Public key:", hex(keypair.publicKey));
|
|
79
|
+
// }
|
|
80
|
+
// // === Test Harness ===
|
|
81
|
+
// const compareDerivation = () => {
|
|
82
|
+
// const mnemonic = generateMnemonic(wordlist);
|
|
83
|
+
// const seed = mnemonicToSeedSync(mnemonic);
|
|
84
|
+
// const path = "m/44'/501'/0'/0'";
|
|
85
|
+
// // Custom
|
|
86
|
+
// const custom = derivePath(path, seed);
|
|
87
|
+
// const customKeypair = nacl.sign.keyPair.fromSeed(custom.key);
|
|
88
|
+
// // Library
|
|
89
|
+
// const lib = derivePathLib(path, Buffer.from(seed).toString("hex"));
|
|
90
|
+
// const libKeypair = nacl.sign.keyPair.fromSeed(lib.key);
|
|
91
|
+
// console.log("=== Solana Derivation Test ===");
|
|
92
|
+
// console.log("Path:", path);
|
|
93
|
+
// console.log("\n-- Custom Implementation --");
|
|
94
|
+
// console.log("Private key seed:", hex(custom.key));
|
|
95
|
+
// console.log("Chain code:", hex(custom.chainCode));
|
|
96
|
+
// console.log("Public key:", hex(customKeypair.publicKey));
|
|
97
|
+
// console.log("\n-- ed25519-hd-key Library --");
|
|
98
|
+
// console.log("Private key seed:", hex(lib.key));
|
|
99
|
+
// console.log("Chain code:", hex(lib.chainCode));
|
|
100
|
+
// console.log("Public key:", hex(libKeypair.publicKey));
|
|
101
|
+
// console.log("\nMatch (private):", hex(custom.key) === hex(lib.key));
|
|
102
|
+
// console.log("Match (chainCode):", hex(custom.chainCode) === hex(lib.chainCode));
|
|
103
|
+
// console.log("Match (public):", hex(customKeypair.publicKey) === hex(libKeypair.publicKey));
|
|
104
|
+
// }
|
|
105
|
+
// const testBip32 = async () => {
|
|
106
|
+
// const mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
|
|
107
|
+
// const seed = mnemonicToSeedSync(mnemonic);
|
|
108
|
+
// const derivationPath = "m/44'/0'/0'/0"; // Bitcoin account
|
|
109
|
+
// const index = 0;
|
|
110
|
+
// const path = `${derivationPath}/${index}`;
|
|
111
|
+
// // --- @scure/bip32 ---
|
|
112
|
+
// const scureNode = HDKey.fromMasterSeed(seed);
|
|
113
|
+
// const scureChild = scureNode.derive(path);
|
|
114
|
+
// console.log("=== @scure/bip32 ===");
|
|
115
|
+
// console.log("Path:", path);
|
|
116
|
+
// console.log("Private key:", hex(scureChild.privateKey!));
|
|
117
|
+
// console.log("Public key:", hex(scureChild.publicKey!));
|
|
118
|
+
// console.log("Chain code:", hex(scureChild.chainCode!));
|
|
119
|
+
// // --- bip32 + tiny-secp256k1 ---
|
|
120
|
+
// const bip32 = BIP32Factory(ecc);
|
|
121
|
+
// const node: BIP32Interface = bip32.fromSeed(Buffer.from(seed));
|
|
122
|
+
// const child = node.derivePath(path);
|
|
123
|
+
// console.log("\n=== bip32 (tiny-secp256k1) ===");
|
|
124
|
+
// console.log("Path:", path);
|
|
125
|
+
// console.log("Private key:", hex(child.privateKey!));
|
|
126
|
+
// console.log("Public key:", hex(child.publicKey));
|
|
127
|
+
// console.log("Chain code:", hex(child.chainCode));
|
|
128
|
+
// // Compare
|
|
129
|
+
// console.log("\n=== Comparison ===");
|
|
130
|
+
// console.log("Private keys match:", hex(scureChild.privateKey!) === hex(child.privateKey!));
|
|
131
|
+
// console.log("Public keys match:", hex(scureChild.publicKey!) === hex(child.publicKey));
|
|
132
|
+
// console.log("Chain codes match:", hex(scureChild.chainCode!) === hex(child.chainCode));
|
|
133
|
+
// }
|
|
134
|
+
// // ===== IMPLEMENTATION 1 =====
|
|
135
|
+
// class WalletImpl1 {
|
|
136
|
+
// static GenerateNewMnemonic(): string {
|
|
137
|
+
// const mnemonic = bip39_impl1.generateMnemonic();
|
|
138
|
+
// return mnemonic;
|
|
139
|
+
// }
|
|
140
|
+
// static ValidateMnemonic(mnemonic: string): boolean {
|
|
141
|
+
// const isValid = bip39_impl1.validateMnemonic(mnemonic);
|
|
142
|
+
// if (!isValid) {
|
|
143
|
+
// throw new Error("Invalid mnemonic");
|
|
144
|
+
// }
|
|
145
|
+
// return isValid;
|
|
146
|
+
// }
|
|
147
|
+
// static GenerateSeed(_mnemonic: string): string {
|
|
148
|
+
// const mnemonic = _mnemonic || bip39_impl1.generateMnemonic();
|
|
149
|
+
// const seed = bip39_impl1.mnemonicToSeedSync(mnemonic);
|
|
150
|
+
// const seedString = seed.toString("hex");
|
|
151
|
+
// return seedString;
|
|
152
|
+
// }
|
|
153
|
+
// static getSeedNode(seed: string): BIP32Interface {
|
|
154
|
+
// const bip32 = BIP32Factory(ecc);
|
|
155
|
+
// const restoredSeedBuffer = Buffer.from(seed, "hex");
|
|
156
|
+
// const node = bip32.fromSeed(restoredSeedBuffer);
|
|
157
|
+
// return node;
|
|
158
|
+
// }
|
|
159
|
+
// static EVMDeriveChildPrivateKey(seed: string, index: number, derivationPath: string): { privateKey: string, publicKey: string } {
|
|
160
|
+
// const node = this.getSeedNode(seed);
|
|
161
|
+
// const child = node.derivePath(`${derivationPath}${index}'`);
|
|
162
|
+
// const privateKey = child.privateKey!.toString("hex");
|
|
163
|
+
// const publicKey = child.publicKey.toString("hex");
|
|
164
|
+
// return { privateKey, publicKey };
|
|
165
|
+
// }
|
|
166
|
+
// static SVMDeriveChildPrivateKey(seed: string, index: number, derivationPath: string): { privateKey: string, publicKey: string, keypair: Keypair } {
|
|
167
|
+
// const path = `${derivationPath}${index}'`;
|
|
168
|
+
// const derivedSeed = ed25519.derivePath(path, seed).key;
|
|
169
|
+
// const derivedKeyPair = Keypair.fromSeed(derivedSeed);
|
|
170
|
+
// return {
|
|
171
|
+
// privateKey: Buffer.from(derivedKeyPair.secretKey).toString("hex"),
|
|
172
|
+
// publicKey: derivedKeyPair.publicKey.toString(),
|
|
173
|
+
// keypair: derivedKeyPair
|
|
174
|
+
// };
|
|
175
|
+
// }
|
|
176
|
+
// }
|
|
177
|
+
// // ===== IMPLEMENTATION 2 =====
|
|
178
|
+
// class WalletImpl2 {
|
|
179
|
+
// static GenerateNewMnemonic(): string {
|
|
180
|
+
// const mnemonic = bip39_impl2.generateMnemonic(wordlist);
|
|
181
|
+
// return mnemonic;
|
|
182
|
+
// }
|
|
183
|
+
// static ValidateMnemonic(mnemonic: string): boolean {
|
|
184
|
+
// const isValid = bip39_impl2.validateMnemonic(mnemonic, wordlist);
|
|
185
|
+
// if (!isValid) {
|
|
186
|
+
// throw new Error("Invalid mnemonic");
|
|
187
|
+
// }
|
|
188
|
+
// return isValid;
|
|
189
|
+
// }
|
|
190
|
+
// static GenerateSeed(_mnemonic: string): Uint8Array {
|
|
191
|
+
// const mnemonic = _mnemonic || bip39_impl2.generateMnemonic(wordlist);
|
|
192
|
+
// const seedString = bip39_impl2.mnemonicToSeedSync(mnemonic);
|
|
193
|
+
// return seedString;
|
|
194
|
+
// }
|
|
195
|
+
// static EVMDeriveChildPrivateKey(seed: string, index: number, derivationPath: string): { privateKey: string, publicKey: string } {
|
|
196
|
+
// const path = `${derivationPath}${index}'`;
|
|
197
|
+
// const scureNode = HDKey.fromMasterSeed(Buffer.from(seed, "hex"));
|
|
198
|
+
// const child = scureNode.derive(path);
|
|
199
|
+
// const privateKey = Buffer.from(child.privateKey!).toString("hex");
|
|
200
|
+
// const publicKey = Buffer.from(child.publicKey!).toString("hex");
|
|
201
|
+
// return { privateKey, publicKey };
|
|
202
|
+
// }
|
|
203
|
+
// static SVMDeriveChildPrivateKey(seed: string, index: number, derivationPath: string): { privateKey: string, publicKey: string, keypair: Keypair } {
|
|
204
|
+
// const path = `${derivationPath}${index}'`;
|
|
205
|
+
// const derivedSeed = this.derivePathEclipticCurve(path, Buffer.from(seed, "hex")).key;
|
|
206
|
+
// const derivedKeyPair = Keypair.fromSeed(derivedSeed);
|
|
207
|
+
// return {
|
|
208
|
+
// privateKey: Buffer.from(derivedKeyPair.secretKey).toString("hex"),
|
|
209
|
+
// publicKey: derivedKeyPair.publicKey.toString(),
|
|
210
|
+
// keypair: derivedKeyPair
|
|
211
|
+
// };
|
|
212
|
+
// }
|
|
213
|
+
// static derivePathEclipticCurve(path: string, seed: Uint8Array): { key: Uint8Array, chainCode: Uint8Array } {
|
|
214
|
+
// const segments = path
|
|
215
|
+
// .split("/")
|
|
216
|
+
// .slice(1)
|
|
217
|
+
// .map((seg) => {
|
|
218
|
+
// if (!seg.endsWith("'")) {
|
|
219
|
+
// throw new Error("Only hardened derivation is supported");
|
|
220
|
+
// }
|
|
221
|
+
// return parseInt(seg.slice(0, -1), 10) + 0x80000000;
|
|
222
|
+
// });
|
|
223
|
+
// let hmacResult = hmac(sha512, "ed25519 seed", seed);
|
|
224
|
+
// let key = hmacResult.slice(0, 32);
|
|
225
|
+
// let chainCode = hmacResult.slice(32, 64);
|
|
226
|
+
// for (const segment of segments) {
|
|
227
|
+
// const result = this.hardenedDerivation(key, chainCode, segment);
|
|
228
|
+
// key = Buffer.from(result.key);
|
|
229
|
+
// chainCode = Buffer.from(result.chainCode);
|
|
230
|
+
// }
|
|
231
|
+
// return { key, chainCode };
|
|
232
|
+
// }
|
|
233
|
+
// static hardenedDerivation(
|
|
234
|
+
// parentKey: Uint8Array,
|
|
235
|
+
// parentChainCode: Uint8Array,
|
|
236
|
+
// index: number
|
|
237
|
+
// ): { key: Uint8Array, chainCode: Uint8Array } {
|
|
238
|
+
// const indexBuffer = new Uint8Array(4);
|
|
239
|
+
// new DataView(indexBuffer.buffer).setUint32(0, index, false);
|
|
240
|
+
// const data = new Uint8Array([0x00, ...parentKey, ...indexBuffer]);
|
|
241
|
+
// const hmacResult = hmac(sha512, parentChainCode, data);
|
|
242
|
+
// return {
|
|
243
|
+
// key: hmacResult.slice(0, 32),
|
|
244
|
+
// chainCode: hmacResult.slice(32, 64)
|
|
245
|
+
// };
|
|
246
|
+
// }
|
|
247
|
+
// }
|
|
248
|
+
// // ===== COMPARISON SCRIPT =====
|
|
249
|
+
// function compareImplementations() {
|
|
250
|
+
// console.log("🔍 Comparing Wallet Implementations\n");
|
|
251
|
+
// console.log("=".repeat(80));
|
|
252
|
+
// // Test data
|
|
253
|
+
// const testMnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
|
|
254
|
+
// const evmDerivationPath = "m/44'/60'/0'/0/";
|
|
255
|
+
// const svmDerivationPath = "m/44'/501'/";
|
|
256
|
+
// const testIndices = [0, 1, 2, 5, 10];
|
|
257
|
+
// let allTestsPassed = true;
|
|
258
|
+
// try {
|
|
259
|
+
// // Test 1: Mnemonic validation
|
|
260
|
+
// console.log("📝 Test 1: Mnemonic Validation");
|
|
261
|
+
// const valid1 = WalletImpl1.ValidateMnemonic(testMnemonic);
|
|
262
|
+
// const valid2 = WalletImpl2.ValidateMnemonic(testMnemonic);
|
|
263
|
+
// console.log(` Implementation 1: ${valid1}`);
|
|
264
|
+
// console.log(` Implementation 2: ${valid2}`);
|
|
265
|
+
// console.log(` ✅ Match: ${valid1 === valid2}\n`);
|
|
266
|
+
// if (valid1 !== valid2) allTestsPassed = false;
|
|
267
|
+
// // Test 2: Seed generation
|
|
268
|
+
// console.log("🌱 Test 2: Seed Generation");
|
|
269
|
+
// const seed1 = WalletImpl1.GenerateSeed(testMnemonic);
|
|
270
|
+
// const seed2 = Buffer.from(WalletImpl2.GenerateSeed(testMnemonic)).toString("hex");
|
|
271
|
+
// console.log(` Implementation 1: ${seed1.substring(0, 32)}...`);
|
|
272
|
+
// console.log(` Implementation 2: ${seed2.substring(0, 32)}...`);
|
|
273
|
+
// console.log(` ✅ Match: ${seed1 === seed2}\n`);
|
|
274
|
+
// if (seed1 !== seed2) allTestsPassed = false;
|
|
275
|
+
// // Test 3: EVM Key Derivation
|
|
276
|
+
// console.log("⚡ Test 3: EVM Key Derivation");
|
|
277
|
+
// console.log(" Index | Implementation 1 Private Key | Implementation 2 Private Key | Match");
|
|
278
|
+
// console.log(" ------|--------------------------------------------------|--------------------------------------------------|------");
|
|
279
|
+
// let evmMatches = true;
|
|
280
|
+
// for (const index of testIndices) {
|
|
281
|
+
// const evm1 = WalletImpl1.EVMDeriveChildPrivateKey(seed1, index, evmDerivationPath);
|
|
282
|
+
// const evm2 = WalletImpl2.EVMDeriveChildPrivateKey(seed1, index, evmDerivationPath);
|
|
283
|
+
// const privateKeyMatch = evm1.privateKey === evm2.privateKey;
|
|
284
|
+
// const publicKeyMatch = evm1.publicKey === evm2.publicKey;
|
|
285
|
+
// const match = privateKeyMatch && publicKeyMatch;
|
|
286
|
+
// console.log(` ${index.toString().padStart(5)} | ${evm1.privateKey.substring(0, 48)} | ${evm2.privateKey.substring(0, 48)} | ${match ? '✅' : '❌'}`);
|
|
287
|
+
// if (!match) {
|
|
288
|
+
// evmMatches = false;
|
|
289
|
+
// allTestsPassed = false;
|
|
290
|
+
// }
|
|
291
|
+
// }
|
|
292
|
+
// console.log(` Overall EVM Match: ${evmMatches ? '✅' : '❌'}\n`);
|
|
293
|
+
// // Test 4: SVM Key Derivation
|
|
294
|
+
// console.log("🌞 Test 4: SVM (Solana) Key Derivation");
|
|
295
|
+
// console.log(" Index | Implementation 1 Private Key | Implementation 2 Private Key | Match");
|
|
296
|
+
// console.log(" ------|--------------------------------------------------|--------------------------------------------------|------");
|
|
297
|
+
// let svmMatches = true;
|
|
298
|
+
// for (const index of testIndices) {
|
|
299
|
+
// const svm1 = WalletImpl1.SVMDeriveChildPrivateKey(seed1, index, svmDerivationPath);
|
|
300
|
+
// const svm2 = WalletImpl2.SVMDeriveChildPrivateKey(seed1, index, svmDerivationPath);
|
|
301
|
+
// const privateKeyMatch = svm1.privateKey === svm2.privateKey;
|
|
302
|
+
// const publicKeyMatch = svm1.publicKey === svm2.publicKey;
|
|
303
|
+
// const match = privateKeyMatch && publicKeyMatch;
|
|
304
|
+
// console.log(` ${index.toString().padStart(5)} | ${svm1.privateKey.substring(0, 48)} | ${svm2.privateKey.substring(0, 48)} | ${match ? '✅' : '❌'}`);
|
|
305
|
+
// if (!match) {
|
|
306
|
+
// svmMatches = false;
|
|
307
|
+
// allTestsPassed = false;
|
|
308
|
+
// // Show detailed comparison for mismatches
|
|
309
|
+
// console.log(` 🔍 Detailed comparison for index ${index}:`);
|
|
310
|
+
// console.log(` Impl1 Private: ${svm1.privateKey}`);
|
|
311
|
+
// console.log(` Impl2 Private: ${svm2.privateKey}`);
|
|
312
|
+
// console.log(` Impl1 Public: ${svm1.publicKey}`);
|
|
313
|
+
// console.log(` Impl2 Public: ${svm2.publicKey}`);
|
|
314
|
+
// }
|
|
315
|
+
// }
|
|
316
|
+
// console.log(` Overall SVM Match: ${svmMatches ? '✅' : '❌'}\n`);
|
|
317
|
+
// // Test 5: Performance comparison
|
|
318
|
+
// console.log("⏱️ Test 5: Performance Comparison");
|
|
319
|
+
// const iterations = 100;
|
|
320
|
+
// // EVM Performance
|
|
321
|
+
// console.time(" Implementation 1 EVM");
|
|
322
|
+
// for (let i = 0; i < iterations; i++) {
|
|
323
|
+
// WalletImpl1.EVMDeriveChildPrivateKey(seed1, i % 10, evmDerivationPath);
|
|
324
|
+
// }
|
|
325
|
+
// console.timeEnd(" Implementation 1 EVM");
|
|
326
|
+
// console.time(" Implementation 2 EVM");
|
|
327
|
+
// for (let i = 0; i < iterations; i++) {
|
|
328
|
+
// WalletImpl2.EVMDeriveChildPrivateKey(seed1, i % 10, evmDerivationPath);
|
|
329
|
+
// }
|
|
330
|
+
// console.timeEnd(" Implementation 2 EVM");
|
|
331
|
+
// // SVM Performance
|
|
332
|
+
// console.time(" Implementation 1 SVM");
|
|
333
|
+
// for (let i = 0; i < iterations; i++) {
|
|
334
|
+
// WalletImpl1.SVMDeriveChildPrivateKey(seed1, i % 10, svmDerivationPath);
|
|
335
|
+
// }
|
|
336
|
+
// console.timeEnd(" Implementation 1 SVM");
|
|
337
|
+
// console.time(" Implementation 2 SVM");
|
|
338
|
+
// for (let i = 0; i < iterations; i++) {
|
|
339
|
+
// WalletImpl2.SVMDeriveChildPrivateKey(seed1, i % 10, svmDerivationPath);
|
|
340
|
+
// }
|
|
341
|
+
// console.timeEnd(" Implementation 2 SVM");
|
|
342
|
+
// console.log("\n" + "=".repeat(80));
|
|
343
|
+
// console.log(`🎯 Overall Result: ${allTestsPassed ? '✅ ALL TESTS PASSED' : '❌ SOME TESTS FAILED'}`);
|
|
344
|
+
// console.log("=".repeat(80));
|
|
345
|
+
// return {
|
|
346
|
+
// success: allTestsPassed,
|
|
347
|
+
// details: {
|
|
348
|
+
// mnemonicValidation: valid1 === valid2,
|
|
349
|
+
// seedGeneration: seed1 === seed2,
|
|
350
|
+
// evmDerivation: evmMatches,
|
|
351
|
+
// svmDerivation: svmMatches
|
|
352
|
+
// }
|
|
353
|
+
// };
|
|
354
|
+
// } catch (error: any) {
|
|
355
|
+
// console.error("❌ Error during comparison:", error);
|
|
356
|
+
// return {
|
|
357
|
+
// success: false,
|
|
358
|
+
// error: error.message
|
|
359
|
+
// };
|
|
360
|
+
// }
|
|
361
|
+
// }
|
|
362
|
+
// compareImplementations()
|
|
363
|
+
//# sourceMappingURL=bipTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bipTest.js","sourceRoot":"","sources":["../utils/bipTest.ts"],"names":[],"mappings":"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"}
|
package/dist/constant.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultChains = void 0;
|
|
4
|
+
exports.DefaultChains = [{
|
|
5
|
+
chainId: 501,
|
|
6
|
+
name: "Solana Mainnet",
|
|
7
|
+
rpcUrl: "https://api.mainnet-beta.solana.com",
|
|
8
|
+
explorerUrl: "https://explorer.solana.com", // e.g. Solana Explorer
|
|
9
|
+
nativeToken: {
|
|
10
|
+
name: "Solana",
|
|
11
|
+
symbol: "SOL",
|
|
12
|
+
decimals: 9,
|
|
13
|
+
},
|
|
14
|
+
testnet: false,
|
|
15
|
+
logoUrl: "https://cryptologos.cc/logos/solana-sol-logo.png?v=040"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
chainId: 1,
|
|
19
|
+
name: "Ethereum Mainnet",
|
|
20
|
+
rpcUrl: "https://cloudflare-eth.com",
|
|
21
|
+
explorerUrl: "https://etherscan.io",
|
|
22
|
+
nativeToken: {
|
|
23
|
+
name: "Ether",
|
|
24
|
+
symbol: "ETH",
|
|
25
|
+
decimals: 18,
|
|
26
|
+
},
|
|
27
|
+
testnet: false,
|
|
28
|
+
logoUrl: "https://cryptologos.cc/logos/ethereum-eth-logo.png?v=040"
|
|
29
|
+
}, {
|
|
30
|
+
chainId: 56,
|
|
31
|
+
name: "BNB Smart Chain Mainnet",
|
|
32
|
+
rpcUrl: "https://bsc-dataseed.binance.org/",
|
|
33
|
+
explorerUrl: "https://bscscan.com",
|
|
34
|
+
nativeToken: {
|
|
35
|
+
name: "Binance Coin",
|
|
36
|
+
symbol: "BNB",
|
|
37
|
+
decimals: 18,
|
|
38
|
+
},
|
|
39
|
+
testnet: false,
|
|
40
|
+
logoUrl: "https://cryptologos.cc/logos/bnb-bnb-logo.png?v=040"
|
|
41
|
+
}, {
|
|
42
|
+
chainId: 501,
|
|
43
|
+
name: "Eclipse Mainnet",
|
|
44
|
+
rpcUrl: "https://mainnetbeta-rpc.eclipse.xyz",
|
|
45
|
+
explorerUrl: "https://explorer.eclipse.xyz/", // e.g. Solana Explorer
|
|
46
|
+
nativeToken: {
|
|
47
|
+
name: "Eclipse",
|
|
48
|
+
symbol: "ETH",
|
|
49
|
+
decimals: 9,
|
|
50
|
+
},
|
|
51
|
+
testnet: false,
|
|
52
|
+
logoUrl: "https://raw.githubusercontent.com/hyperlane-xyz/hyperlane-registry/a86c3b432b6f9ad7272ae09859f20eb3ade3bd6e/deployments/warp_routes/ES/logo.svg"
|
|
53
|
+
}
|
|
54
|
+
];
|
|
55
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../utils/constant.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAwB,CAAC;QAC/C,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,qCAAqC;QAC7C,WAAW,EAAE,6BAA6B,EAAE,uBAAuB;QACnE,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,CAAC;SACd;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,wDAAwD;KACpE;IACK;QACF,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,4BAA4B;QACpC,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACT,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,0DAA0D;KACtE,EAAE;QACC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,mCAAmC;QAC3C,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACT,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,qDAAqD;KACjE,EAAE;QACC,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,qCAAqC;QAC7C,WAAW,EAAE,+BAA+B,EAAE,uBAAuB;QACrE,WAAW,EAAE;YACT,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,CAAC;SACd;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,iJAAiJ;KAC7J;CAGA,CAAA"}
|
package/dist/evm/evm.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const createEvmVmPrivateKey: (phrase: string) => void;
|
|
|
11
11
|
export declare class EVMVM extends VM<string, string, JsonRpcProvider> {
|
|
12
12
|
derivationPath: string;
|
|
13
13
|
constructor(seed: string);
|
|
14
|
+
getTokenInfo: (tokenAddress: string, provider: JsonRpcProvider) => Promise<TokenInfo>;
|
|
14
15
|
generatePrivateKey(index: number, seed?: string, mnemonic?: string, derivationPath?: string): {
|
|
15
16
|
privateKey: string;
|
|
16
17
|
index: number;
|
package/dist/evm/evm.js
CHANGED
|
@@ -21,6 +21,7 @@ class EVMVM extends vm_1.VM {
|
|
|
21
21
|
constructor(seed) {
|
|
22
22
|
super(seed, "EVM");
|
|
23
23
|
this.derivationPath = "m/44'/60'/0'/0/"; // Default EVM derivation path
|
|
24
|
+
this.getTokenInfo = utils_1.getTokenInfo;
|
|
24
25
|
}
|
|
25
26
|
generatePrivateKey(index, seed, mnemonic, derivationPath = this.derivationPath) {
|
|
26
27
|
let _seed;
|