@txnlab/use-wallet 3.1.3 → 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;
@@ -5630,7 +5633,17 @@ var WalletConnect = class extends BaseWallet {
5630
5633
  });
5631
5634
  const signedTxns = signTxnsResult.reduce((acc, value) => {
5632
5635
  if (value) {
5633
- const signedTxn = typeof value === "string" ? base64ToByteArray(value) : value;
5636
+ let signedTxn;
5637
+ if (typeof value === "string") {
5638
+ signedTxn = base64ToByteArray(value);
5639
+ } else if (value instanceof Uint8Array) {
5640
+ signedTxn = value;
5641
+ } else if (Array.isArray(value)) {
5642
+ signedTxn = new Uint8Array(value);
5643
+ } else {
5644
+ console.warn(`[${this.metadata.name}] Unexpected type in signTxnsResult`, value);
5645
+ signedTxn = new Uint8Array();
5646
+ }
5634
5647
  acc.push(signedTxn);
5635
5648
  }
5636
5649
  return acc;
@@ -5865,7 +5878,6 @@ var CustomWallet = class extends BaseWallet {
5865
5878
  };
5866
5879
 
5867
5880
  // src/store.ts
5868
- var import_algosdk11 = require("algosdk");
5869
5881
  var defaultState = {
5870
5882
  wallets: {},
5871
5883
  activeWallet: null,
@@ -5875,56 +5887,61 @@ var defaultState = {
5875
5887
  var LOCAL_STORAGE_KEY = "@txnlab/use-wallet:v3";
5876
5888
  function addWallet(store, { walletId, wallet }) {
5877
5889
  store.setState((state) => {
5878
- const newWallets = {
5890
+ const updatedWallets = {
5879
5891
  ...state.wallets,
5880
- [walletId]: wallet
5892
+ [walletId]: {
5893
+ accounts: wallet.accounts.map((account) => ({ ...account })),
5894
+ activeAccount: wallet.activeAccount ? { ...wallet.activeAccount } : null
5895
+ }
5881
5896
  };
5882
5897
  return {
5883
5898
  ...state,
5884
- wallets: newWallets,
5899
+ wallets: updatedWallets,
5885
5900
  activeWallet: walletId
5886
5901
  };
5887
5902
  });
5888
5903
  }
5889
5904
  function removeWallet(store, { walletId }) {
5890
5905
  store.setState((state) => {
5891
- const newWallets = { ...state.wallets };
5892
- delete newWallets[walletId];
5906
+ const updatedWallets = { ...state.wallets };
5907
+ delete updatedWallets[walletId];
5893
5908
  return {
5894
5909
  ...state,
5895
- wallets: newWallets,
5910
+ wallets: updatedWallets,
5896
5911
  activeWallet: state.activeWallet === walletId ? null : state.activeWallet
5897
5912
  };
5898
5913
  });
5899
5914
  }
5900
5915
  function setActiveWallet(store, { walletId }) {
5901
- store.setState((state) => {
5902
- return {
5903
- ...state,
5904
- activeWallet: walletId
5905
- };
5906
- });
5916
+ store.setState((state) => ({
5917
+ ...state,
5918
+ activeWallet: walletId
5919
+ }));
5907
5920
  }
5908
5921
  function setActiveAccount(store, { walletId, address }) {
5909
5922
  store.setState((state) => {
5910
5923
  const wallet = state.wallets[walletId];
5911
5924
  if (!wallet) {
5925
+ console.warn(`Wallet with id "${walletId}" not found`);
5912
5926
  return state;
5913
5927
  }
5914
- const activeAccount = wallet.accounts.find((a2) => a2.address === address);
5915
- 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}"`);
5916
5931
  return state;
5917
5932
  }
5918
- const newWallets = {
5933
+ const updatedWallet = {
5934
+ ...wallet,
5935
+ accounts: wallet.accounts.map((account) => ({ ...account })),
5936
+ activeAccount: { ...newActiveAccount }
5937
+ };
5938
+ const updatedWallets = {
5919
5939
  ...state.wallets,
5920
- [walletId]: {
5921
- ...wallet,
5922
- activeAccount
5923
- }
5940
+ [walletId]: updatedWallet
5924
5941
  };
5925
5942
  return {
5926
5943
  ...state,
5927
- wallets: newWallets
5944
+ wallets: updatedWallets
5928
5945
  };
5929
5946
  });
5930
5947
  }
@@ -5932,34 +5949,34 @@ function setAccounts(store, { walletId, accounts }) {
5932
5949
  store.setState((state) => {
5933
5950
  const wallet = state.wallets[walletId];
5934
5951
  if (!wallet) {
5952
+ console.warn(`Wallet with id "${walletId}" not found`);
5935
5953
  return state;
5936
5954
  }
5937
- const isActiveAccountConnected = accounts.some(
5955
+ const newAccounts = accounts.map((account) => ({ ...account }));
5956
+ const isActiveAccountConnected = newAccounts.some(
5938
5957
  (account) => account.address === wallet.activeAccount?.address
5939
5958
  );
5940
- const activeAccount = isActiveAccountConnected ? wallet.activeAccount : accounts[0] || null;
5941
- const newWallet = {
5959
+ const newActiveAccount = isActiveAccountConnected ? { ...wallet.activeAccount } : newAccounts[0] || null;
5960
+ const updatedWallet = {
5942
5961
  ...wallet,
5943
- accounts,
5944
- activeAccount
5962
+ accounts: newAccounts,
5963
+ activeAccount: newActiveAccount
5945
5964
  };
5946
- const newWallets = {
5965
+ const updatedWallets = {
5947
5966
  ...state.wallets,
5948
- [walletId]: newWallet
5967
+ [walletId]: updatedWallet
5949
5968
  };
5950
5969
  return {
5951
5970
  ...state,
5952
- wallets: newWallets
5971
+ wallets: updatedWallets
5953
5972
  };
5954
5973
  });
5955
5974
  }
5956
5975
  function setActiveNetwork(store, { networkId }) {
5957
- store.setState((state) => {
5958
- return {
5959
- ...state,
5960
- activeNetwork: networkId
5961
- };
5962
- });
5976
+ store.setState((state) => ({
5977
+ ...state,
5978
+ activeNetwork: networkId
5979
+ }));
5963
5980
  }
5964
5981
  function isValidWalletId(walletId) {
5965
5982
  return Object.values(WalletId).includes(walletId);