@zubari/sdk 0.1.3 → 0.1.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.
@@ -2408,59 +2408,6 @@ var require_bs58 = __commonJS({
2408
2408
  }
2409
2409
  });
2410
2410
 
2411
- // ../../node_modules/bs58check/base.js
2412
- var require_base = __commonJS({
2413
- "../../node_modules/bs58check/base.js"(exports$1, module) {
2414
- var base58 = require_bs58();
2415
- module.exports = function(checksumFn) {
2416
- function encode(payload) {
2417
- var payloadU8 = Uint8Array.from(payload);
2418
- var checksum = checksumFn(payloadU8);
2419
- var length = payloadU8.length + 4;
2420
- var both = new Uint8Array(length);
2421
- both.set(payloadU8, 0);
2422
- both.set(checksum.subarray(0, 4), payloadU8.length);
2423
- return base58.encode(both, length);
2424
- }
2425
- function decodeRaw(buffer) {
2426
- var payload = buffer.slice(0, -4);
2427
- var checksum = buffer.slice(-4);
2428
- var newChecksum = checksumFn(payload);
2429
- if (checksum[0] ^ newChecksum[0] | checksum[1] ^ newChecksum[1] | checksum[2] ^ newChecksum[2] | checksum[3] ^ newChecksum[3]) return;
2430
- return payload;
2431
- }
2432
- function decodeUnsafe(string) {
2433
- var buffer = base58.decodeUnsafe(string);
2434
- if (!buffer) return;
2435
- return decodeRaw(buffer);
2436
- }
2437
- function decode(string) {
2438
- var buffer = base58.decode(string);
2439
- var payload = decodeRaw(buffer);
2440
- if (!payload) throw new Error("Invalid checksum");
2441
- return payload;
2442
- }
2443
- return {
2444
- encode,
2445
- decode,
2446
- decodeUnsafe
2447
- };
2448
- };
2449
- }
2450
- });
2451
-
2452
- // ../../node_modules/bs58check/index.js
2453
- var require_bs58check = __commonJS({
2454
- "../../node_modules/bs58check/index.js"(exports$1, module) {
2455
- var { sha256: sha2562 } = __require("@noble/hashes/sha256");
2456
- var bs58checkBase = require_base();
2457
- function sha256x2(buffer) {
2458
- return sha2562(sha2562(buffer));
2459
- }
2460
- module.exports = bs58checkBase(sha256x2);
2461
- }
2462
- });
2463
-
2464
2411
  // src/config/networks.ts
2465
2412
  var NETWORKS = {
2466
2413
  bitcoin: {
@@ -3678,9 +3625,8 @@ function crc16(data) {
3678
3625
  }
3679
3626
  return crc;
3680
3627
  }
3681
- async function deriveTronAddress(seed) {
3628
+ function deriveTronAddress(seed) {
3682
3629
  try {
3683
- const bs58check = await Promise.resolve().then(() => __toESM(require_bs58check()));
3684
3630
  const hdNode = ethers.HDNodeWallet.fromPhrase(seed, void 0, DERIVATION_PATHS3.tron);
3685
3631
  const ethAddressHex = hdNode.address.slice(2).toLowerCase();
3686
3632
  const addressBytes = new Uint8Array(21);
@@ -3688,7 +3634,8 @@ async function deriveTronAddress(seed) {
3688
3634
  for (let i = 0; i < 20; i++) {
3689
3635
  addressBytes[i + 1] = parseInt(ethAddressHex.slice(i * 2, i * 2 + 2), 16);
3690
3636
  }
3691
- return bs58check.encode(Buffer.from(addressBytes));
3637
+ const tronBase58check = base.base58check(sha256.sha256);
3638
+ return tronBase58check.encode(addressBytes);
3692
3639
  } catch (error) {
3693
3640
  console.error("TRON address derivation failed:", error);
3694
3641
  throw error;
@@ -3738,10 +3685,14 @@ async function deriveAllAddresses(seed, network = "testnet") {
3738
3685
  } catch (e) {
3739
3686
  console.error("Spark derivation failed:", e);
3740
3687
  }
3741
- const [solResult, tonResult, tronResult] = await Promise.allSettled([
3688
+ try {
3689
+ addresses.tron = deriveTronAddress(seed);
3690
+ } catch (e) {
3691
+ console.error("TRON derivation failed:", e);
3692
+ }
3693
+ const [solResult, tonResult] = await Promise.allSettled([
3742
3694
  deriveSolanaAddress(seed),
3743
- deriveTonAddress(seed),
3744
- deriveTronAddress(seed)
3695
+ deriveTonAddress(seed)
3745
3696
  ]);
3746
3697
  if (solResult.status === "fulfilled") {
3747
3698
  addresses.solana = solResult.value;
@@ -3753,11 +3704,6 @@ async function deriveAllAddresses(seed, network = "testnet") {
3753
3704
  } else {
3754
3705
  console.error("TON derivation failed:", tonResult.reason);
3755
3706
  }
3756
- if (tronResult.status === "fulfilled") {
3757
- addresses.tron = tronResult.value;
3758
- } else {
3759
- console.error("TRON derivation failed:", tronResult.reason);
3760
- }
3761
3707
  return addresses;
3762
3708
  }
3763
3709
 
@@ -4269,6 +4215,61 @@ var WalletManager = class _WalletManager {
4269
4215
  } catch (error) {
4270
4216
  console.warn(`Failed to fetch ${chain} balance:`, error);
4271
4217
  }
4218
+ } else if (chain === "bitcoin") {
4219
+ const baseUrl = this.config.network === "mainnet" ? "https://blockstream.info/api" : "https://blockstream.info/testnet/api";
4220
+ try {
4221
+ const response = await fetch(`${baseUrl}/address/${address}`, {
4222
+ headers: { "Accept": "application/json" }
4223
+ });
4224
+ if (response.ok) {
4225
+ const data = await response.json();
4226
+ const chainFunded = data.chain_stats?.funded_txo_sum || 0;
4227
+ const chainSpent = data.chain_stats?.spent_txo_sum || 0;
4228
+ const mempoolFunded = data.mempool_stats?.funded_txo_sum || 0;
4229
+ const mempoolSpent = data.mempool_stats?.spent_txo_sum || 0;
4230
+ const satoshis = chainFunded - chainSpent + (mempoolFunded - mempoolSpent);
4231
+ balance = (satoshis / 1e8).toFixed(8);
4232
+ }
4233
+ } catch (error) {
4234
+ console.warn(`Failed to fetch ${chain} balance:`, error);
4235
+ }
4236
+ } else if (chain === "solana") {
4237
+ const rpcUrl = this.config.network === "mainnet" ? "https://api.mainnet-beta.solana.com" : "https://api.devnet.solana.com";
4238
+ try {
4239
+ const response = await fetch(rpcUrl, {
4240
+ method: "POST",
4241
+ headers: { "Content-Type": "application/json" },
4242
+ body: JSON.stringify({
4243
+ jsonrpc: "2.0",
4244
+ id: 1,
4245
+ method: "getBalance",
4246
+ params: [address]
4247
+ })
4248
+ });
4249
+ if (response.ok) {
4250
+ const data = await response.json();
4251
+ if (data.result?.value !== void 0) {
4252
+ balance = (data.result.value / 1e9).toFixed(9);
4253
+ }
4254
+ }
4255
+ } catch (error) {
4256
+ console.warn(`Failed to fetch ${chain} balance:`, error);
4257
+ }
4258
+ } else if (chain === "tron") {
4259
+ const baseUrl = this.config.network === "mainnet" ? "https://api.trongrid.io" : "https://api.shasta.trongrid.io";
4260
+ try {
4261
+ const response = await fetch(`${baseUrl}/v1/accounts/${address}`, {
4262
+ headers: { "Accept": "application/json" }
4263
+ });
4264
+ if (response.ok) {
4265
+ const data = await response.json();
4266
+ if (data.data?.[0]?.balance !== void 0) {
4267
+ balance = (data.data[0].balance / 1e6).toFixed(6);
4268
+ }
4269
+ }
4270
+ } catch (error) {
4271
+ console.warn(`Failed to fetch ${chain} balance:`, error);
4272
+ }
4272
4273
  }
4273
4274
  return {
4274
4275
  chain,