@txnlab/use-wallet 3.1.4 → 3.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.
package/dist/index.cjs CHANGED
@@ -3481,6 +3481,9 @@ var StorageAdapter = class {
3481
3481
  }
3482
3482
  };
3483
3483
 
3484
+ // src/store.ts
3485
+ var import_algosdk11 = require("algosdk");
3486
+
3484
3487
  // src/wallets/base.ts
3485
3488
  var BaseWallet = class {
3486
3489
  id;
@@ -5875,7 +5878,6 @@ var CustomWallet = class extends BaseWallet {
5875
5878
  };
5876
5879
 
5877
5880
  // src/store.ts
5878
- var import_algosdk11 = require("algosdk");
5879
5881
  var defaultState = {
5880
5882
  wallets: {},
5881
5883
  activeWallet: null,
@@ -5885,56 +5887,61 @@ var defaultState = {
5885
5887
  var LOCAL_STORAGE_KEY = "@txnlab/use-wallet:v3";
5886
5888
  function addWallet(store, { walletId, wallet }) {
5887
5889
  store.setState((state) => {
5888
- const newWallets = {
5890
+ const updatedWallets = {
5889
5891
  ...state.wallets,
5890
- [walletId]: wallet
5892
+ [walletId]: {
5893
+ accounts: wallet.accounts.map((account) => ({ ...account })),
5894
+ activeAccount: wallet.activeAccount ? { ...wallet.activeAccount } : null
5895
+ }
5891
5896
  };
5892
5897
  return {
5893
5898
  ...state,
5894
- wallets: newWallets,
5899
+ wallets: updatedWallets,
5895
5900
  activeWallet: walletId
5896
5901
  };
5897
5902
  });
5898
5903
  }
5899
5904
  function removeWallet(store, { walletId }) {
5900
5905
  store.setState((state) => {
5901
- const newWallets = { ...state.wallets };
5902
- delete newWallets[walletId];
5906
+ const updatedWallets = { ...state.wallets };
5907
+ delete updatedWallets[walletId];
5903
5908
  return {
5904
5909
  ...state,
5905
- wallets: newWallets,
5910
+ wallets: updatedWallets,
5906
5911
  activeWallet: state.activeWallet === walletId ? null : state.activeWallet
5907
5912
  };
5908
5913
  });
5909
5914
  }
5910
5915
  function setActiveWallet(store, { walletId }) {
5911
- store.setState((state) => {
5912
- return {
5913
- ...state,
5914
- activeWallet: walletId
5915
- };
5916
- });
5916
+ store.setState((state) => ({
5917
+ ...state,
5918
+ activeWallet: walletId
5919
+ }));
5917
5920
  }
5918
5921
  function setActiveAccount(store, { walletId, address }) {
5919
5922
  store.setState((state) => {
5920
5923
  const wallet = state.wallets[walletId];
5921
5924
  if (!wallet) {
5925
+ console.warn(`Wallet with id "${walletId}" not found`);
5922
5926
  return state;
5923
5927
  }
5924
- const activeAccount = wallet.accounts.find((a2) => a2.address === address);
5925
- if (!activeAccount) {
5928
+ const newActiveAccount = wallet.accounts.find((a2) => a2.address === address);
5929
+ if (!newActiveAccount) {
5930
+ console.warn(`Account with address ${address} not found in wallet "${walletId}"`);
5926
5931
  return state;
5927
5932
  }
5928
- const newWallets = {
5933
+ const updatedWallet = {
5934
+ ...wallet,
5935
+ accounts: wallet.accounts.map((account) => ({ ...account })),
5936
+ activeAccount: { ...newActiveAccount }
5937
+ };
5938
+ const updatedWallets = {
5929
5939
  ...state.wallets,
5930
- [walletId]: {
5931
- ...wallet,
5932
- activeAccount
5933
- }
5940
+ [walletId]: updatedWallet
5934
5941
  };
5935
5942
  return {
5936
5943
  ...state,
5937
- wallets: newWallets
5944
+ wallets: updatedWallets
5938
5945
  };
5939
5946
  });
5940
5947
  }
@@ -5942,34 +5949,34 @@ function setAccounts(store, { walletId, accounts }) {
5942
5949
  store.setState((state) => {
5943
5950
  const wallet = state.wallets[walletId];
5944
5951
  if (!wallet) {
5952
+ console.warn(`Wallet with id "${walletId}" not found`);
5945
5953
  return state;
5946
5954
  }
5947
- const isActiveAccountConnected = accounts.some(
5955
+ const newAccounts = accounts.map((account) => ({ ...account }));
5956
+ const isActiveAccountConnected = newAccounts.some(
5948
5957
  (account) => account.address === wallet.activeAccount?.address
5949
5958
  );
5950
- const activeAccount = isActiveAccountConnected ? wallet.activeAccount : accounts[0] || null;
5951
- const newWallet = {
5959
+ const newActiveAccount = isActiveAccountConnected ? { ...wallet.activeAccount } : newAccounts[0] || null;
5960
+ const updatedWallet = {
5952
5961
  ...wallet,
5953
- accounts,
5954
- activeAccount
5962
+ accounts: newAccounts,
5963
+ activeAccount: newActiveAccount
5955
5964
  };
5956
- const newWallets = {
5965
+ const updatedWallets = {
5957
5966
  ...state.wallets,
5958
- [walletId]: newWallet
5967
+ [walletId]: updatedWallet
5959
5968
  };
5960
5969
  return {
5961
5970
  ...state,
5962
- wallets: newWallets
5971
+ wallets: updatedWallets
5963
5972
  };
5964
5973
  });
5965
5974
  }
5966
5975
  function setActiveNetwork(store, { networkId }) {
5967
- store.setState((state) => {
5968
- return {
5969
- ...state,
5970
- activeNetwork: networkId
5971
- };
5972
- });
5976
+ store.setState((state) => ({
5977
+ ...state,
5978
+ activeNetwork: networkId
5979
+ }));
5973
5980
  }
5974
5981
  function isValidWalletId(walletId) {
5975
5982
  return Object.values(WalletId).includes(walletId);