@txnlab/use-wallet-react 5.0.0 → 5.1.0-next.1

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.d.ts CHANGED
@@ -1,42 +1,37 @@
1
1
  import algosdk from "algosdk";
2
2
  import * as React from "react";
3
- import * as _txnlab_use_wallet0 from "@txnlab/use-wallet";
4
3
  import { AlgodConfig, NetworkId, StdSignDataResponse, StdSignMetadata, Wallet, WalletManager } from "@txnlab/use-wallet";
5
4
  export * from "@txnlab/use-wallet";
6
-
7
5
  //#region src/index.d.ts
8
6
  interface WalletProviderProps {
9
7
  manager: WalletManager;
10
8
  children: React.ReactNode;
11
9
  }
12
- declare const WalletProvider: ({
13
- manager,
14
- children
15
- }: WalletProviderProps) => React.JSX.Element;
16
- declare const useNetwork: () => {
10
+ export declare const WalletProvider: ({ manager, children }: WalletProviderProps) => React.JSX.Element;
11
+ export declare const useNetwork: () => {
17
12
  activeNetwork: string;
18
- networkConfig: Record<string, _txnlab_use_wallet0.NetworkConfig>;
19
- activeNetworkConfig: _txnlab_use_wallet0.NetworkConfig;
13
+ networkConfig: Record<string, import("@txnlab/use-wallet").NetworkConfig>;
14
+ activeNetworkConfig: import("@txnlab/use-wallet").NetworkConfig;
20
15
  setActiveNetwork: (networkId: NetworkId | string) => Promise<void>;
21
16
  updateAlgodConfig: (networkId: string, config: Partial<AlgodConfig>) => void;
22
17
  resetNetworkConfig: (networkId: string) => void;
23
18
  };
24
- declare const useWallet: () => {
19
+ export declare const useWallet: () => {
25
20
  wallets: Wallet[];
26
21
  availableWallets: Wallet[];
27
22
  isReady: boolean;
28
23
  algodClient: algosdk.Algodv2;
29
24
  setAlgodClient: React.Dispatch<React.SetStateAction<algosdk.Algodv2>>;
30
25
  activeWallet: Wallet | null;
31
- activeWalletAccounts: _txnlab_use_wallet0.WalletAccount[] | null;
26
+ activeWalletAccounts: import("@txnlab/use-wallet").WalletAccount[] | null;
32
27
  activeWalletAddresses: string[] | null;
33
- activeAccount: _txnlab_use_wallet0.WalletAccount | null;
28
+ activeAccount: import("@txnlab/use-wallet").WalletAccount | null;
34
29
  activeAddress: string | null;
35
30
  signData: (data: string, metadata: StdSignMetadata) => Promise<StdSignDataResponse>;
36
31
  withPrivateKey: <T>(callback: (secretKey: Uint8Array) => Promise<T>) => Promise<T>;
37
32
  signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
38
33
  transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
34
+ emptyTransactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
39
35
  };
40
36
  //#endregion
41
- export { WalletProvider, useNetwork, useWallet };
42
37
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -37,7 +37,8 @@ const useNetwork = () => {
37
37
  console.info(`[React] Creating new Algodv2 client...`);
38
38
  const { algod } = manager.networkConfig[networkId];
39
39
  const { token = "", baseServer, port = "", headers = {} } = algod;
40
- setAlgodClient(new algosdk.Algodv2(token, baseServer, port, headers));
40
+ const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
41
+ setAlgodClient(newClient);
41
42
  manager.store.setState((state) => ({
42
43
  ...state,
43
44
  activeNetwork: networkId
@@ -50,7 +51,8 @@ const useNetwork = () => {
50
51
  console.info(`[React] Creating new Algodv2 client...`);
51
52
  const { algod } = manager.networkConfig[networkId];
52
53
  const { token = "", baseServer, port = "", headers = {} } = algod;
53
- setAlgodClient(new algosdk.Algodv2(token, baseServer, port, headers));
54
+ const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
55
+ setAlgodClient(newClient);
54
56
  }
55
57
  };
56
58
  const resetNetworkConfig = (networkId) => {
@@ -59,7 +61,8 @@ const useNetwork = () => {
59
61
  console.info(`[React] Creating new Algodv2 client...`);
60
62
  const { algod } = manager.networkConfig[networkId];
61
63
  const { token = "", baseServer, port = "", headers = {} } = algod;
62
- setAlgodClient(new algosdk.Algodv2(token, baseServer, port, headers));
64
+ const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
65
+ setAlgodClient(newClient);
63
66
  }
64
67
  };
65
68
  return {
@@ -123,6 +126,10 @@ const useWallet = () => {
123
126
  if (!activeBaseWallet) throw new Error("No active wallet");
124
127
  return activeBaseWallet.transactionSigner(txnGroup, indexesToSign);
125
128
  };
129
+ const emptyTransactionSigner = (txnGroup, indexesToSign) => {
130
+ if (!activeBaseWallet) throw new Error("No active wallet");
131
+ return activeBaseWallet.emptyTransactionSigner(txnGroup, indexesToSign);
132
+ };
126
133
  const signData = (data, metadata) => {
127
134
  if (!activeBaseWallet) throw new Error("No active wallet");
128
135
  return activeBaseWallet.signData(data, metadata);
@@ -145,7 +152,8 @@ const useWallet = () => {
145
152
  signData,
146
153
  withPrivateKey,
147
154
  signTransactions,
148
- transactionSigner
155
+ transactionSigner,
156
+ emptyTransactionSigner
149
157
  };
150
158
  };
151
159
  //#endregion
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.tsx"],"sourcesContent":["import { useStore } from '@tanstack/react-store'\nimport {\n type AlgodConfig,\n type BaseWallet,\n NetworkId,\n StdSignDataResponse,\n StdSignMetadata,\n type Wallet,\n WalletManager\n} from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport * as React from 'react'\n\nexport * from '@txnlab/use-wallet'\n\ninterface IWalletContext {\n manager: WalletManager\n algodClient: algosdk.Algodv2\n setAlgodClient: React.Dispatch<React.SetStateAction<algosdk.Algodv2>>\n}\n\nconst WalletContext = React.createContext<IWalletContext | undefined>(undefined)\n\ninterface WalletProviderProps {\n manager: WalletManager\n children: React.ReactNode\n}\n\nexport const WalletProvider = ({ manager, children }: WalletProviderProps): React.JSX.Element => {\n const [algodClient, setAlgodClient] = React.useState(manager.algodClient)\n\n React.useEffect(() => {\n manager.algodClient = algodClient\n }, [algodClient, manager])\n\n const resumedRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!resumedRef.current) {\n manager.resumeSessions()\n resumedRef.current = true\n }\n }, [manager])\n\n return (\n <WalletContext.Provider value={{ manager, algodClient, setAlgodClient }}>\n {children}\n </WalletContext.Provider>\n )\n}\n\nexport const useNetwork = () => {\n const context = React.useContext(WalletContext)\n\n if (!context) {\n throw new Error('useNetwork must be used within the WalletProvider')\n }\n\n const { manager, setAlgodClient } = context\n\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n const setActiveNetwork = async (networkId: NetworkId | string): Promise<void> => {\n if (networkId === activeNetwork) {\n return\n }\n\n if (!manager.networkConfig[networkId]) {\n throw new Error(`Network \"${networkId}\" not found in network configuration`)\n }\n\n console.info(`[React] Creating new Algodv2 client...`)\n\n const { algod } = manager.networkConfig[networkId]\n const { token = '', baseServer, port = '', headers = {} } = algod\n const newClient = new algosdk.Algodv2(token, baseServer, port, headers)\n setAlgodClient(newClient)\n\n manager.store.setState((state) => ({\n ...state,\n activeNetwork: networkId\n }))\n\n console.info(`[React] ✅ Active network set to ${networkId}.`)\n }\n\n const updateAlgodConfig = (networkId: string, config: Partial<AlgodConfig>): void => {\n manager.updateAlgodConfig(networkId, config)\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork) {\n console.info(`[React] Creating new Algodv2 client...`)\n const { algod } = manager.networkConfig[networkId]\n const { token = '', baseServer, port = '', headers = {} } = algod\n const newClient = new algosdk.Algodv2(token, baseServer, port, headers)\n setAlgodClient(newClient)\n }\n }\n\n const resetNetworkConfig = (networkId: string): void => {\n manager.resetNetworkConfig(networkId)\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork) {\n console.info(`[React] Creating new Algodv2 client...`)\n const { algod } = manager.networkConfig[networkId]\n const { token = '', baseServer, port = '', headers = {} } = algod\n const newClient = new algosdk.Algodv2(token, baseServer, port, headers)\n setAlgodClient(newClient)\n }\n }\n\n return {\n activeNetwork,\n networkConfig: manager.networkConfig,\n activeNetworkConfig: manager.activeNetworkConfig,\n setActiveNetwork,\n updateAlgodConfig,\n resetNetworkConfig\n }\n}\n\nexport const useWallet = () => {\n const context = React.useContext(WalletContext)\n\n if (!context) {\n throw new Error('useWallet must be used within the WalletProvider')\n }\n\n const { manager, algodClient, setAlgodClient } = context\n\n const managerStatus = useStore(manager.store, (state) => state.managerStatus)\n const isReady = managerStatus === 'ready'\n\n const walletStateMap = useStore(manager.store, (state) => state.wallets)\n const activeWalletId = useStore(manager.store, (state) => state.activeWallet)\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n const transformToWallet = React.useCallback(\n (wallet: BaseWallet): Wallet => {\n const walletState = walletStateMap[wallet.walletKey]\n return {\n id: wallet.id,\n walletKey: wallet.walletKey,\n metadata: wallet.metadata,\n accounts: walletState?.accounts ?? [],\n activeAccount: walletState?.activeAccount ?? null,\n isConnected: !!walletState,\n isActive: wallet.walletKey === activeWalletId,\n canSignData: wallet.canSignData ?? false,\n canUsePrivateKey: wallet.canUsePrivateKey ?? false,\n connect: (args) => wallet.connect(args),\n disconnect: () => wallet.disconnect(),\n setActive: () => wallet.setActive(),\n setActiveAccount: (addr) => wallet.setActiveAccount(addr)\n }\n },\n [walletStateMap, activeWalletId]\n )\n\n const wallets = React.useMemo(() => {\n return [...manager.wallets.values()].map(transformToWallet)\n }, [manager, transformToWallet])\n\n const availableWallets = React.useMemo(() => {\n return manager.availableWallets.map(transformToWallet)\n }, [manager, transformToWallet, activeNetwork])\n\n const activeBaseWallet = activeWalletId ? manager.getWallet(activeWalletId) || null : null\n const activeWallet = React.useMemo(() => {\n return activeBaseWallet ? transformToWallet(activeBaseWallet) : null\n }, [activeBaseWallet, transformToWallet])\n\n const activeWalletAccounts = activeWallet?.accounts ?? null\n const activeWalletAddresses = activeWalletAccounts?.map((account) => account.address) ?? null\n const activeAccount = activeWallet?.activeAccount ?? null\n const activeAddress = activeAccount?.address ?? null\n\n const signTransactions = <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.signTransactions(txnGroup, indexesToSign)\n }\n\n const transactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.transactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: StdSignMetadata): Promise<StdSignDataResponse> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.signData(data, metadata)\n }\n\n const withPrivateKey = <T,>(callback: (secretKey: Uint8Array) => Promise<T>): Promise<T> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.withPrivateKey(callback)\n }\n\n return {\n wallets,\n availableWallets,\n isReady,\n algodClient,\n setAlgodClient,\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n withPrivateKey,\n signTransactions,\n transactionSigner\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.tsx"],"sourcesContent":["import { useStore } from '@tanstack/react-store'\nimport {\n type AlgodConfig,\n type BaseWallet,\n NetworkId,\n StdSignDataResponse,\n StdSignMetadata,\n type Wallet,\n WalletManager\n} from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport * as React from 'react'\n\nexport * from '@txnlab/use-wallet'\n\ninterface IWalletContext {\n manager: WalletManager\n algodClient: algosdk.Algodv2\n setAlgodClient: React.Dispatch<React.SetStateAction<algosdk.Algodv2>>\n}\n\nconst WalletContext = React.createContext<IWalletContext | undefined>(undefined)\n\ninterface WalletProviderProps {\n manager: WalletManager\n children: React.ReactNode\n}\n\nexport const WalletProvider = ({ manager, children }: WalletProviderProps): React.JSX.Element => {\n const [algodClient, setAlgodClient] = React.useState(manager.algodClient)\n\n React.useEffect(() => {\n manager.algodClient = algodClient\n }, [algodClient, manager])\n\n const resumedRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!resumedRef.current) {\n manager.resumeSessions()\n resumedRef.current = true\n }\n }, [manager])\n\n return (\n <WalletContext.Provider value={{ manager, algodClient, setAlgodClient }}>\n {children}\n </WalletContext.Provider>\n )\n}\n\nexport const useNetwork = () => {\n const context = React.useContext(WalletContext)\n\n if (!context) {\n throw new Error('useNetwork must be used within the WalletProvider')\n }\n\n const { manager, setAlgodClient } = context\n\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n const setActiveNetwork = async (networkId: NetworkId | string): Promise<void> => {\n if (networkId === activeNetwork) {\n return\n }\n\n if (!manager.networkConfig[networkId]) {\n throw new Error(`Network \"${networkId}\" not found in network configuration`)\n }\n\n console.info(`[React] Creating new Algodv2 client...`)\n\n const { algod } = manager.networkConfig[networkId]\n const { token = '', baseServer, port = '', headers = {} } = algod\n const newClient = new algosdk.Algodv2(token, baseServer, port, headers)\n setAlgodClient(newClient)\n\n manager.store.setState((state) => ({\n ...state,\n activeNetwork: networkId\n }))\n\n console.info(`[React] ✅ Active network set to ${networkId}.`)\n }\n\n const updateAlgodConfig = (networkId: string, config: Partial<AlgodConfig>): void => {\n manager.updateAlgodConfig(networkId, config)\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork) {\n console.info(`[React] Creating new Algodv2 client...`)\n const { algod } = manager.networkConfig[networkId]\n const { token = '', baseServer, port = '', headers = {} } = algod\n const newClient = new algosdk.Algodv2(token, baseServer, port, headers)\n setAlgodClient(newClient)\n }\n }\n\n const resetNetworkConfig = (networkId: string): void => {\n manager.resetNetworkConfig(networkId)\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork) {\n console.info(`[React] Creating new Algodv2 client...`)\n const { algod } = manager.networkConfig[networkId]\n const { token = '', baseServer, port = '', headers = {} } = algod\n const newClient = new algosdk.Algodv2(token, baseServer, port, headers)\n setAlgodClient(newClient)\n }\n }\n\n return {\n activeNetwork,\n networkConfig: manager.networkConfig,\n activeNetworkConfig: manager.activeNetworkConfig,\n setActiveNetwork,\n updateAlgodConfig,\n resetNetworkConfig\n }\n}\n\nexport const useWallet = () => {\n const context = React.useContext(WalletContext)\n\n if (!context) {\n throw new Error('useWallet must be used within the WalletProvider')\n }\n\n const { manager, algodClient, setAlgodClient } = context\n\n const managerStatus = useStore(manager.store, (state) => state.managerStatus)\n const isReady = managerStatus === 'ready'\n\n const walletStateMap = useStore(manager.store, (state) => state.wallets)\n const activeWalletId = useStore(manager.store, (state) => state.activeWallet)\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n const transformToWallet = React.useCallback(\n (wallet: BaseWallet): Wallet => {\n const walletState = walletStateMap[wallet.walletKey]\n return {\n id: wallet.id,\n walletKey: wallet.walletKey,\n metadata: wallet.metadata,\n accounts: walletState?.accounts ?? [],\n activeAccount: walletState?.activeAccount ?? null,\n isConnected: !!walletState,\n isActive: wallet.walletKey === activeWalletId,\n canSignData: wallet.canSignData ?? false,\n canUsePrivateKey: wallet.canUsePrivateKey ?? false,\n connect: (args) => wallet.connect(args),\n disconnect: () => wallet.disconnect(),\n setActive: () => wallet.setActive(),\n setActiveAccount: (addr) => wallet.setActiveAccount(addr)\n }\n },\n [walletStateMap, activeWalletId]\n )\n\n const wallets = React.useMemo(() => {\n return [...manager.wallets.values()].map(transformToWallet)\n }, [manager, transformToWallet])\n\n const availableWallets = React.useMemo(() => {\n return manager.availableWallets.map(transformToWallet)\n }, [manager, transformToWallet, activeNetwork])\n\n const activeBaseWallet = activeWalletId ? manager.getWallet(activeWalletId) || null : null\n const activeWallet = React.useMemo(() => {\n return activeBaseWallet ? transformToWallet(activeBaseWallet) : null\n }, [activeBaseWallet, transformToWallet])\n\n const activeWalletAccounts = activeWallet?.accounts ?? null\n const activeWalletAddresses = activeWalletAccounts?.map((account) => account.address) ?? null\n const activeAccount = activeWallet?.activeAccount ?? null\n const activeAddress = activeAccount?.address ?? null\n\n const signTransactions = <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.signTransactions(txnGroup, indexesToSign)\n }\n\n const transactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.transactionSigner(txnGroup, indexesToSign)\n }\n\n const emptyTransactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.emptyTransactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: StdSignMetadata): Promise<StdSignDataResponse> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.signData(data, metadata)\n }\n\n const withPrivateKey = <T,>(callback: (secretKey: Uint8Array) => Promise<T>): Promise<T> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.withPrivateKey(callback)\n }\n\n return {\n wallets,\n availableWallets,\n isReady,\n algodClient,\n setAlgodClient,\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n withPrivateKey,\n signTransactions,\n transactionSigner,\n emptyTransactionSigner\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@txnlab/use-wallet-react",
3
- "version": "5.0.0",
3
+ "version": "5.1.0-next.1",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -35,16 +35,16 @@
35
35
  "dist"
36
36
  ],
37
37
  "dependencies": {
38
- "@tanstack/react-store": "0.9.1",
39
- "@txnlab/use-wallet": "5.0.0"
38
+ "@tanstack/react-store": "0.11.1",
39
+ "@txnlab/use-wallet": "5.1.0-next.1"
40
40
  },
41
41
  "devDependencies": {
42
- "@types/react": "19.2.14",
43
- "algosdk": "3.6.0",
42
+ "@types/react": "19.3.0",
43
+ "algosdk": "3.8.0",
44
44
  "jsdom": "26.1.0",
45
- "react": "19.2.4",
46
- "react-dom": "19.2.4",
47
- "tsdown": "0.21.0",
45
+ "react": "19.3.0",
46
+ "react-dom": "19.3.0",
47
+ "tsdown": "0.23.0",
48
48
  "typescript": "5.9.3"
49
49
  },
50
50
  "peerDependencies": {