@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.
@@ -2409,59 +2409,6 @@ var require_bs58 = __commonJS({
2409
2409
  }
2410
2410
  });
2411
2411
 
2412
- // ../../node_modules/bs58check/base.js
2413
- var require_base = __commonJS({
2414
- "../../node_modules/bs58check/base.js"(exports$1, module) {
2415
- var base58 = require_bs58();
2416
- module.exports = function(checksumFn) {
2417
- function encode(payload) {
2418
- var payloadU8 = Uint8Array.from(payload);
2419
- var checksum = checksumFn(payloadU8);
2420
- var length = payloadU8.length + 4;
2421
- var both = new Uint8Array(length);
2422
- both.set(payloadU8, 0);
2423
- both.set(checksum.subarray(0, 4), payloadU8.length);
2424
- return base58.encode(both, length);
2425
- }
2426
- function decodeRaw(buffer) {
2427
- var payload = buffer.slice(0, -4);
2428
- var checksum = buffer.slice(-4);
2429
- var newChecksum = checksumFn(payload);
2430
- if (checksum[0] ^ newChecksum[0] | checksum[1] ^ newChecksum[1] | checksum[2] ^ newChecksum[2] | checksum[3] ^ newChecksum[3]) return;
2431
- return payload;
2432
- }
2433
- function decodeUnsafe(string) {
2434
- var buffer = base58.decodeUnsafe(string);
2435
- if (!buffer) return;
2436
- return decodeRaw(buffer);
2437
- }
2438
- function decode(string) {
2439
- var buffer = base58.decode(string);
2440
- var payload = decodeRaw(buffer);
2441
- if (!payload) throw new Error("Invalid checksum");
2442
- return payload;
2443
- }
2444
- return {
2445
- encode,
2446
- decode,
2447
- decodeUnsafe
2448
- };
2449
- };
2450
- }
2451
- });
2452
-
2453
- // ../../node_modules/bs58check/index.js
2454
- var require_bs58check = __commonJS({
2455
- "../../node_modules/bs58check/index.js"(exports$1, module) {
2456
- var { sha256: sha2562 } = __require("@noble/hashes/sha256");
2457
- var bs58checkBase = require_base();
2458
- function sha256x2(buffer) {
2459
- return sha2562(sha2562(buffer));
2460
- }
2461
- module.exports = bs58checkBase(sha256x2);
2462
- }
2463
- });
2464
-
2465
2412
  // src/config/networks.ts
2466
2413
  var NETWORKS = {
2467
2414
  bitcoin: {
@@ -3378,9 +3325,8 @@ function crc16(data) {
3378
3325
  }
3379
3326
  return crc;
3380
3327
  }
3381
- async function deriveTronAddress(seed) {
3328
+ function deriveTronAddress(seed) {
3382
3329
  try {
3383
- const bs58check = await Promise.resolve().then(() => __toESM(require_bs58check()));
3384
3330
  const hdNode = ethers.HDNodeWallet.fromPhrase(seed, void 0, DERIVATION_PATHS3.tron);
3385
3331
  const ethAddressHex = hdNode.address.slice(2).toLowerCase();
3386
3332
  const addressBytes = new Uint8Array(21);
@@ -3388,7 +3334,8 @@ async function deriveTronAddress(seed) {
3388
3334
  for (let i = 0; i < 20; i++) {
3389
3335
  addressBytes[i + 1] = parseInt(ethAddressHex.slice(i * 2, i * 2 + 2), 16);
3390
3336
  }
3391
- return bs58check.encode(Buffer.from(addressBytes));
3337
+ const tronBase58check = base.base58check(sha256.sha256);
3338
+ return tronBase58check.encode(addressBytes);
3392
3339
  } catch (error) {
3393
3340
  console.error("TRON address derivation failed:", error);
3394
3341
  throw error;
@@ -3438,10 +3385,14 @@ async function deriveAllAddresses(seed, network = "testnet") {
3438
3385
  } catch (e) {
3439
3386
  console.error("Spark derivation failed:", e);
3440
3387
  }
3441
- const [solResult, tonResult, tronResult] = await Promise.allSettled([
3388
+ try {
3389
+ addresses.tron = deriveTronAddress(seed);
3390
+ } catch (e) {
3391
+ console.error("TRON derivation failed:", e);
3392
+ }
3393
+ const [solResult, tonResult] = await Promise.allSettled([
3442
3394
  deriveSolanaAddress(seed),
3443
- deriveTonAddress(seed),
3444
- deriveTronAddress(seed)
3395
+ deriveTonAddress(seed)
3445
3396
  ]);
3446
3397
  if (solResult.status === "fulfilled") {
3447
3398
  addresses.solana = solResult.value;
@@ -3453,11 +3404,6 @@ async function deriveAllAddresses(seed, network = "testnet") {
3453
3404
  } else {
3454
3405
  console.error("TON derivation failed:", tonResult.reason);
3455
3406
  }
3456
- if (tronResult.status === "fulfilled") {
3457
- addresses.tron = tronResult.value;
3458
- } else {
3459
- console.error("TRON derivation failed:", tronResult.reason);
3460
- }
3461
3407
  return addresses;
3462
3408
  }
3463
3409
 
@@ -3969,6 +3915,61 @@ var WalletManager = class _WalletManager {
3969
3915
  } catch (error) {
3970
3916
  console.warn(`Failed to fetch ${chain} balance:`, error);
3971
3917
  }
3918
+ } else if (chain === "bitcoin") {
3919
+ const baseUrl = this.config.network === "mainnet" ? "https://blockstream.info/api" : "https://blockstream.info/testnet/api";
3920
+ try {
3921
+ const response = await fetch(`${baseUrl}/address/${address}`, {
3922
+ headers: { "Accept": "application/json" }
3923
+ });
3924
+ if (response.ok) {
3925
+ const data = await response.json();
3926
+ const chainFunded = data.chain_stats?.funded_txo_sum || 0;
3927
+ const chainSpent = data.chain_stats?.spent_txo_sum || 0;
3928
+ const mempoolFunded = data.mempool_stats?.funded_txo_sum || 0;
3929
+ const mempoolSpent = data.mempool_stats?.spent_txo_sum || 0;
3930
+ const satoshis = chainFunded - chainSpent + (mempoolFunded - mempoolSpent);
3931
+ balance = (satoshis / 1e8).toFixed(8);
3932
+ }
3933
+ } catch (error) {
3934
+ console.warn(`Failed to fetch ${chain} balance:`, error);
3935
+ }
3936
+ } else if (chain === "solana") {
3937
+ const rpcUrl = this.config.network === "mainnet" ? "https://api.mainnet-beta.solana.com" : "https://api.devnet.solana.com";
3938
+ try {
3939
+ const response = await fetch(rpcUrl, {
3940
+ method: "POST",
3941
+ headers: { "Content-Type": "application/json" },
3942
+ body: JSON.stringify({
3943
+ jsonrpc: "2.0",
3944
+ id: 1,
3945
+ method: "getBalance",
3946
+ params: [address]
3947
+ })
3948
+ });
3949
+ if (response.ok) {
3950
+ const data = await response.json();
3951
+ if (data.result?.value !== void 0) {
3952
+ balance = (data.result.value / 1e9).toFixed(9);
3953
+ }
3954
+ }
3955
+ } catch (error) {
3956
+ console.warn(`Failed to fetch ${chain} balance:`, error);
3957
+ }
3958
+ } else if (chain === "tron") {
3959
+ const baseUrl = this.config.network === "mainnet" ? "https://api.trongrid.io" : "https://api.shasta.trongrid.io";
3960
+ try {
3961
+ const response = await fetch(`${baseUrl}/v1/accounts/${address}`, {
3962
+ headers: { "Accept": "application/json" }
3963
+ });
3964
+ if (response.ok) {
3965
+ const data = await response.json();
3966
+ if (data.data?.[0]?.balance !== void 0) {
3967
+ balance = (data.data[0].balance / 1e6).toFixed(6);
3968
+ }
3969
+ }
3970
+ } catch (error) {
3971
+ console.warn(`Failed to fetch ${chain} balance:`, error);
3972
+ }
3972
3973
  }
3973
3974
  return {
3974
3975
  chain,