@zubari/sdk 0.1.9 → 0.1.10

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/index.mjs CHANGED
@@ -1458,7 +1458,8 @@ async function getPriceForChain(chain) {
1458
1458
  }
1459
1459
  var STORAGE_KEYS = {
1460
1460
  ENCRYPTED_SEED: "encrypted_seed",
1461
- ACTIVE_WALLET: "active_wallet"
1461
+ ACTIVE_WALLET: "active_wallet",
1462
+ DERIVED_ADDRESSES: "derived_addresses"
1462
1463
  };
1463
1464
  var SUPPORTED_CHAINS = ["ethereum", "bitcoin", "ton", "tron", "solana", "spark"];
1464
1465
  var WalletManager = class _WalletManager {
@@ -1599,6 +1600,7 @@ var WalletManager = class _WalletManager {
1599
1600
  */
1600
1601
  async deleteWallet() {
1601
1602
  await this.storage.removeItem(STORAGE_KEYS.ENCRYPTED_SEED);
1603
+ await this.storage.removeItem(STORAGE_KEYS.DERIVED_ADDRESSES);
1602
1604
  this.currentSeed = null;
1603
1605
  this.derivedAddress = null;
1604
1606
  this.derivedAddresses = {};
@@ -1812,6 +1814,7 @@ var WalletManager = class _WalletManager {
1812
1814
  * In browser: Uses the backend API (which has Tether WDK)
1813
1815
  * In Node.js: Uses native WDK directly
1814
1816
  * Returns REAL cryptographically valid addresses for all chains.
1817
+ * Addresses are persisted to storage for future use.
1815
1818
  */
1816
1819
  async deriveAllAddressesWithWdk() {
1817
1820
  if (!this.currentSeed) {
@@ -1827,22 +1830,63 @@ var WalletManager = class _WalletManager {
1827
1830
  }
1828
1831
  }
1829
1832
  this.derivedAddresses = addresses;
1833
+ await this.saveAddressesToStorage(addresses);
1830
1834
  return addresses;
1831
1835
  } catch (error) {
1832
1836
  console.error("WDK derivation failed:", error);
1833
1837
  throw error;
1834
1838
  }
1835
1839
  }
1840
+ /**
1841
+ * Save derived addresses to storage
1842
+ */
1843
+ async saveAddressesToStorage(addresses) {
1844
+ try {
1845
+ await this.storage.setItem(STORAGE_KEYS.DERIVED_ADDRESSES, JSON.stringify(addresses));
1846
+ console.log("Saved derived addresses to storage:", Object.keys(addresses));
1847
+ } catch (error) {
1848
+ console.warn("Failed to save addresses to storage:", error);
1849
+ }
1850
+ }
1851
+ /**
1852
+ * Load derived addresses from storage
1853
+ */
1854
+ async loadAddressesFromStorage() {
1855
+ try {
1856
+ const stored = await this.storage.getItem(STORAGE_KEYS.DERIVED_ADDRESSES);
1857
+ if (stored) {
1858
+ const addresses = JSON.parse(stored);
1859
+ console.log("Loaded derived addresses from storage:", Object.keys(addresses));
1860
+ return addresses;
1861
+ }
1862
+ } catch (error) {
1863
+ console.warn("Failed to load addresses from storage:", error);
1864
+ }
1865
+ return null;
1866
+ }
1836
1867
  /**
1837
1868
  * Derive addresses for all enabled chains using Tether WDK
1838
1869
  * The unified WDK service handles all fallback strategies automatically:
1839
1870
  * - Browser: API backend -> Browser derivation
1840
1871
  * - Node.js: Native WDK -> API backend -> Browser derivation
1872
+ *
1873
+ * First tries to load from storage to avoid losing real WDK-derived addresses.
1841
1874
  */
1842
1875
  async deriveAllAddressesAsync() {
1843
1876
  if (!this.currentSeed) {
1844
1877
  throw new Error("Wallet is locked");
1845
1878
  }
1879
+ const storedAddresses = await this.loadAddressesFromStorage();
1880
+ if (storedAddresses && Object.keys(storedAddresses).length > 1) {
1881
+ const expectedEthAddress = _WalletManager.deriveAddress(this.currentSeed);
1882
+ if (storedAddresses.ethereum === expectedEthAddress) {
1883
+ console.log("Using addresses from storage (verified by Ethereum address)");
1884
+ this.derivedAddresses = storedAddresses;
1885
+ return storedAddresses;
1886
+ } else {
1887
+ console.log("Stored addresses do not match current seed, re-deriving...");
1888
+ }
1889
+ }
1846
1890
  try {
1847
1891
  return await this.deriveAllAddressesWithWdk();
1848
1892
  } catch (error) {