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