@zubari/sdk 0.5.4 → 0.5.5
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/{TransactionService-CF_C3Kqm.d.mts → TransactionService-Cmw33HXX.d.mts} +9 -5
- package/dist/{TransactionService-BEkgF1T6.d.ts → TransactionService-DbNDRzXh.d.ts} +9 -5
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +73 -59
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +60 -46
- package/dist/index.mjs.map +1 -1
- package/dist/react/index.js +73 -59
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +60 -46
- package/dist/react/index.mjs.map +1 -1
- package/dist/services/index.d.mts +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +73 -59
- package/dist/services/index.js.map +1 -1
- package/dist/services/index.mjs +60 -46
- package/dist/services/index.mjs.map +1 -1
- package/dist/wallet/index.js +73 -59
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/index.mjs +60 -46
- package/dist/wallet/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/services/index.mjs
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import { HDNodeWallet } from 'ethers';
|
|
2
|
-
import { mnemonicToSeedSync, validateMnemonic, generateMnemonic } from '@scure/bip39';
|
|
3
|
-
import { wordlist } from '@scure/bip39/wordlists/english';
|
|
4
|
-
import { HDKey } from '@scure/bip32';
|
|
5
|
-
import { bech32, base58check } from '@scure/base';
|
|
6
|
-
import { sha256 } from '@noble/hashes/sha256';
|
|
7
|
-
import { ripemd160 } from '@noble/hashes/ripemd160';
|
|
8
2
|
|
|
9
3
|
var __defProp = Object.defineProperty;
|
|
10
4
|
var __export = (target, all) => {
|
|
@@ -1101,12 +1095,37 @@ var DERIVATION_PATHS2 = {
|
|
|
1101
1095
|
solana: `${DERIVATION_PATHS.solana}/0'`,
|
|
1102
1096
|
spark: `${DERIVATION_PATHS.spark}/0`
|
|
1103
1097
|
};
|
|
1098
|
+
var _crypto = null;
|
|
1099
|
+
async function loadCrypto() {
|
|
1100
|
+
if (_crypto) return _crypto;
|
|
1101
|
+
const [bip39, bip39Words, bip32, scureBase, sha256Mod, ripemd160Mod] = await Promise.all([
|
|
1102
|
+
import('@scure/bip39'),
|
|
1103
|
+
import('@scure/bip39/wordlists/english.js'),
|
|
1104
|
+
import('@scure/bip32'),
|
|
1105
|
+
import('@scure/base'),
|
|
1106
|
+
import('@noble/hashes/sha256'),
|
|
1107
|
+
import('@noble/hashes/ripemd160')
|
|
1108
|
+
]);
|
|
1109
|
+
_crypto = {
|
|
1110
|
+
mnemonicToSeedSync: bip39.mnemonicToSeedSync,
|
|
1111
|
+
validateMnemonic: bip39.validateMnemonic,
|
|
1112
|
+
generateMnemonic: bip39.generateMnemonic,
|
|
1113
|
+
wordlist: bip39Words.wordlist,
|
|
1114
|
+
HDKey: bip32.HDKey,
|
|
1115
|
+
bech32: scureBase.bech32,
|
|
1116
|
+
base58check: scureBase.base58check,
|
|
1117
|
+
sha256: sha256Mod.sha256,
|
|
1118
|
+
ripemd160: ripemd160Mod.ripemd160
|
|
1119
|
+
};
|
|
1120
|
+
return _crypto;
|
|
1121
|
+
}
|
|
1104
1122
|
function deriveEthereumAddress(seed) {
|
|
1105
1123
|
const hdNode = HDNodeWallet.fromPhrase(seed, void 0, DERIVATION_PATHS2.ethereum);
|
|
1106
1124
|
return hdNode.address;
|
|
1107
1125
|
}
|
|
1108
|
-
function deriveBitcoinAddress(seed, network = "mainnet") {
|
|
1126
|
+
async function deriveBitcoinAddress(seed, network = "mainnet") {
|
|
1109
1127
|
try {
|
|
1128
|
+
const { mnemonicToSeedSync, HDKey, sha256, ripemd160, bech32 } = await loadCrypto();
|
|
1110
1129
|
const seedBytes = mnemonicToSeedSync(seed);
|
|
1111
1130
|
const hdKey = HDKey.fromMasterSeed(seedBytes);
|
|
1112
1131
|
const path = network === "testnet" ? DERIVATION_PATHS2.bitcoin_testnet : DERIVATION_PATHS2.bitcoin_mainnet;
|
|
@@ -1128,13 +1147,14 @@ function deriveBitcoinAddress(seed, network = "mainnet") {
|
|
|
1128
1147
|
}
|
|
1129
1148
|
async function deriveSolanaAddress(seed) {
|
|
1130
1149
|
try {
|
|
1131
|
-
const [ed25519, nacl, bs58Module] = await Promise.all([
|
|
1150
|
+
const [crypto, ed25519, nacl, bs58Module] = await Promise.all([
|
|
1151
|
+
loadCrypto(),
|
|
1132
1152
|
import('ed25519-hd-key'),
|
|
1133
1153
|
import('tweetnacl'),
|
|
1134
1154
|
import('bs58')
|
|
1135
1155
|
]);
|
|
1136
1156
|
const bs58 = bs58Module.default || bs58Module;
|
|
1137
|
-
const seedBytes = mnemonicToSeedSync(seed);
|
|
1157
|
+
const seedBytes = crypto.mnemonicToSeedSync(seed);
|
|
1138
1158
|
const derived = ed25519.derivePath(DERIVATION_PATHS2.solana, Buffer.from(seedBytes).toString("hex"));
|
|
1139
1159
|
const keypair = nacl.sign.keyPair.fromSeed(new Uint8Array(derived.key));
|
|
1140
1160
|
return bs58.encode(keypair.publicKey);
|
|
@@ -1145,17 +1165,18 @@ async function deriveSolanaAddress(seed) {
|
|
|
1145
1165
|
}
|
|
1146
1166
|
async function deriveTonAddress(seed) {
|
|
1147
1167
|
try {
|
|
1148
|
-
const [ed25519, nacl] = await Promise.all([
|
|
1168
|
+
const [crypto, ed25519, nacl] = await Promise.all([
|
|
1169
|
+
loadCrypto(),
|
|
1149
1170
|
import('ed25519-hd-key'),
|
|
1150
1171
|
import('tweetnacl')
|
|
1151
1172
|
]);
|
|
1152
|
-
const seedBytes = mnemonicToSeedSync(seed);
|
|
1173
|
+
const seedBytes = crypto.mnemonicToSeedSync(seed);
|
|
1153
1174
|
const derived = ed25519.derivePath(DERIVATION_PATHS2.ton, Buffer.from(seedBytes).toString("hex"));
|
|
1154
1175
|
const keypair = nacl.sign.keyPair.fromSeed(new Uint8Array(derived.key));
|
|
1155
1176
|
const publicKey = keypair.publicKey;
|
|
1156
1177
|
const workchain = 0;
|
|
1157
1178
|
const flags = 17;
|
|
1158
|
-
const hash = sha256(publicKey);
|
|
1179
|
+
const hash = crypto.sha256(publicKey);
|
|
1159
1180
|
const addressData = new Uint8Array(34);
|
|
1160
1181
|
addressData[0] = flags;
|
|
1161
1182
|
addressData[1] = workchain;
|
|
@@ -1183,8 +1204,9 @@ function crc16(data) {
|
|
|
1183
1204
|
}
|
|
1184
1205
|
return crc;
|
|
1185
1206
|
}
|
|
1186
|
-
function deriveTronAddress(seed) {
|
|
1207
|
+
async function deriveTronAddress(seed) {
|
|
1187
1208
|
try {
|
|
1209
|
+
const { sha256, base58check } = await loadCrypto();
|
|
1188
1210
|
const hdNode = HDNodeWallet.fromPhrase(seed, void 0, DERIVATION_PATHS2.tron);
|
|
1189
1211
|
const ethAddressHex = hdNode.address.slice(2).toLowerCase();
|
|
1190
1212
|
const addressBytes = new Uint8Array(21);
|
|
@@ -1199,8 +1221,9 @@ function deriveTronAddress(seed) {
|
|
|
1199
1221
|
throw error;
|
|
1200
1222
|
}
|
|
1201
1223
|
}
|
|
1202
|
-
function deriveSparkAddress(seed, network = "mainnet") {
|
|
1224
|
+
async function deriveSparkAddress(seed, network = "mainnet") {
|
|
1203
1225
|
try {
|
|
1226
|
+
const { mnemonicToSeedSync, HDKey, sha256, ripemd160, bech32 } = await loadCrypto();
|
|
1204
1227
|
const seedBytes = mnemonicToSeedSync(seed);
|
|
1205
1228
|
const hdKey = HDKey.fromMasterSeed(seedBytes);
|
|
1206
1229
|
const child = hdKey.derive(DERIVATION_PATHS2.spark);
|
|
@@ -1228,46 +1251,37 @@ async function deriveAllAddresses(seed, network = "mainnet") {
|
|
|
1228
1251
|
solana: null,
|
|
1229
1252
|
spark: null
|
|
1230
1253
|
};
|
|
1254
|
+
await loadCrypto();
|
|
1231
1255
|
try {
|
|
1232
1256
|
addresses.ethereum = deriveEthereumAddress(seed);
|
|
1233
1257
|
} catch (e) {
|
|
1234
1258
|
console.error("ETH derivation failed:", e);
|
|
1235
1259
|
}
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
}
|
|
1241
|
-
try {
|
|
1242
|
-
addresses.spark = deriveSparkAddress(seed, network);
|
|
1243
|
-
} catch (e) {
|
|
1244
|
-
console.error("Spark derivation failed:", e);
|
|
1245
|
-
}
|
|
1246
|
-
try {
|
|
1247
|
-
addresses.tron = deriveTronAddress(seed);
|
|
1248
|
-
} catch (e) {
|
|
1249
|
-
console.error("TRON derivation failed:", e);
|
|
1250
|
-
}
|
|
1251
|
-
const [solResult, tonResult] = await Promise.allSettled([
|
|
1260
|
+
const [btcResult, sparkResult, tronResult, solResult, tonResult] = await Promise.allSettled([
|
|
1261
|
+
deriveBitcoinAddress(seed, network),
|
|
1262
|
+
deriveSparkAddress(seed, network),
|
|
1263
|
+
deriveTronAddress(seed),
|
|
1252
1264
|
deriveSolanaAddress(seed),
|
|
1253
1265
|
deriveTonAddress(seed)
|
|
1254
1266
|
]);
|
|
1255
|
-
if (
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1267
|
+
if (btcResult.status === "fulfilled") addresses.bitcoin = btcResult.value;
|
|
1268
|
+
else console.error("BTC derivation failed:", btcResult.reason);
|
|
1269
|
+
if (sparkResult.status === "fulfilled") addresses.spark = sparkResult.value;
|
|
1270
|
+
else console.error("Spark derivation failed:", sparkResult.reason);
|
|
1271
|
+
if (tronResult.status === "fulfilled") addresses.tron = tronResult.value;
|
|
1272
|
+
else console.error("TRON derivation failed:", tronResult.reason);
|
|
1273
|
+
if (solResult.status === "fulfilled") addresses.solana = solResult.value;
|
|
1274
|
+
else console.error("SOL derivation failed:", solResult.reason);
|
|
1275
|
+
if (tonResult.status === "fulfilled") addresses.ton = tonResult.value;
|
|
1276
|
+
else console.error("TON derivation failed:", tonResult.reason);
|
|
1265
1277
|
return addresses;
|
|
1266
1278
|
}
|
|
1267
|
-
function isValidSeed(seed) {
|
|
1279
|
+
async function isValidSeed(seed) {
|
|
1280
|
+
const { validateMnemonic, wordlist } = await loadCrypto();
|
|
1268
1281
|
return validateMnemonic(seed, wordlist);
|
|
1269
1282
|
}
|
|
1270
|
-
function generateSeedPhrase() {
|
|
1283
|
+
async function generateSeedPhrase() {
|
|
1284
|
+
const { generateMnemonic, wordlist } = await loadCrypto();
|
|
1271
1285
|
return generateMnemonic(wordlist);
|
|
1272
1286
|
}
|
|
1273
1287
|
|
|
@@ -1511,7 +1525,7 @@ var ZubariWdkService = class {
|
|
|
1511
1525
|
};
|
|
1512
1526
|
if (!addresses.spark) {
|
|
1513
1527
|
try {
|
|
1514
|
-
addresses.spark = deriveSparkAddress(seed, this.config.network);
|
|
1528
|
+
addresses.spark = await deriveSparkAddress(seed, this.config.network);
|
|
1515
1529
|
} catch (e) {
|
|
1516
1530
|
console.warn("Browser Spark derivation fallback failed:", e);
|
|
1517
1531
|
}
|
|
@@ -1747,13 +1761,13 @@ var ZubariWdkService = class {
|
|
|
1747
1761
|
address = deriveEthereumAddress(seed);
|
|
1748
1762
|
break;
|
|
1749
1763
|
case "bitcoin":
|
|
1750
|
-
address = deriveBitcoinAddress(seed, this.config.network);
|
|
1764
|
+
address = await deriveBitcoinAddress(seed, this.config.network);
|
|
1751
1765
|
break;
|
|
1752
1766
|
case "tron":
|
|
1753
|
-
address = deriveTronAddress(seed);
|
|
1767
|
+
address = await deriveTronAddress(seed);
|
|
1754
1768
|
break;
|
|
1755
1769
|
case "spark":
|
|
1756
|
-
address = deriveSparkAddress(seed, this.config.network);
|
|
1770
|
+
address = await deriveSparkAddress(seed, this.config.network);
|
|
1757
1771
|
break;
|
|
1758
1772
|
case "solana":
|
|
1759
1773
|
address = await deriveSolanaAddress(seed);
|