@txnlab/use-wallet-react 4.5.0 → 5.0.0-rc.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,50 +1,42 @@
1
- import * as _txnlab_use_wallet from '@txnlab/use-wallet';
2
- import { WalletId, WalletKey, WalletMetadata, WalletAccount, WalletManager, NetworkId, AlgodConfig, SignMetadata, SignDataResponse } from '@txnlab/use-wallet';
3
- export * from '@txnlab/use-wallet';
4
- import algosdk from 'algosdk';
5
- import * as React from 'react';
1
+ import algosdk from "algosdk";
2
+ import * as React from "react";
3
+ import * as _txnlab_use_wallet0 from "@txnlab/use-wallet";
4
+ import { AlgodConfig, NetworkId, SignDataResponse, SignMetadata, Wallet, WalletManager } from "@txnlab/use-wallet";
5
+ export * from "@txnlab/use-wallet";
6
6
 
7
+ //#region src/index.d.ts
7
8
  interface WalletProviderProps {
8
- manager: WalletManager;
9
- children: React.ReactNode;
9
+ manager: WalletManager;
10
+ children: React.ReactNode;
10
11
  }
11
- declare const WalletProvider: ({ manager, children }: WalletProviderProps) => JSX.Element;
12
+ declare const WalletProvider: ({
13
+ manager,
14
+ children
15
+ }: WalletProviderProps) => React.JSX.Element;
12
16
  declare const useNetwork: () => {
13
- activeNetwork: string;
14
- networkConfig: Record<string, _txnlab_use_wallet.NetworkConfig>;
15
- activeNetworkConfig: _txnlab_use_wallet.NetworkConfig;
16
- setActiveNetwork: (networkId: NetworkId | string) => Promise<void>;
17
- updateAlgodConfig: (networkId: string, config: Partial<AlgodConfig>) => void;
18
- resetNetworkConfig: (networkId: string) => void;
17
+ activeNetwork: string;
18
+ networkConfig: Record<string, _txnlab_use_wallet0.NetworkConfig>;
19
+ activeNetworkConfig: _txnlab_use_wallet0.NetworkConfig;
20
+ setActiveNetwork: (networkId: NetworkId | string) => Promise<void>;
21
+ updateAlgodConfig: (networkId: string, config: Partial<AlgodConfig>) => void;
22
+ resetNetworkConfig: (networkId: string) => void;
19
23
  };
20
- interface Wallet {
21
- id: WalletId;
22
- /** Unique key for this wallet instance. Used for skinned WalletConnect instances. */
23
- walletKey: WalletKey;
24
- metadata: WalletMetadata;
25
- accounts: WalletAccount[];
26
- activeAccount: WalletAccount | null;
27
- isConnected: boolean;
28
- isActive: boolean;
29
- canSignData: boolean;
30
- connect: (args?: Record<string, any>) => Promise<WalletAccount[]>;
31
- disconnect: () => Promise<void>;
32
- setActive: () => void;
33
- setActiveAccount: (address: string) => void;
34
- }
35
24
  declare const useWallet: () => {
36
- wallets: Wallet[];
37
- isReady: boolean;
38
- algodClient: algosdk.Algodv2;
39
- setAlgodClient: React.Dispatch<React.SetStateAction<algosdk.Algodv2>>;
40
- activeWallet: Wallet | null;
41
- activeWalletAccounts: WalletAccount[] | null;
42
- activeWalletAddresses: string[] | null;
43
- activeAccount: WalletAccount | null;
44
- activeAddress: string | null;
45
- signData: (data: string, metadata: SignMetadata) => Promise<SignDataResponse>;
46
- signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
47
- transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
25
+ wallets: Wallet[];
26
+ availableWallets: Wallet[];
27
+ isReady: boolean;
28
+ algodClient: algosdk.Algodv2;
29
+ setAlgodClient: React.Dispatch<React.SetStateAction<algosdk.Algodv2>>;
30
+ activeWallet: Wallet | null;
31
+ activeWalletAccounts: _txnlab_use_wallet0.WalletAccount[] | null;
32
+ activeWalletAddresses: string[] | null;
33
+ activeAccount: _txnlab_use_wallet0.WalletAccount | null;
34
+ activeAddress: string | null;
35
+ signData: (data: string, metadata: SignMetadata) => Promise<SignDataResponse>;
36
+ withPrivateKey: <T>(callback: (secretKey: Uint8Array) => Promise<T>) => Promise<T>;
37
+ signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
38
+ transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
48
39
  };
49
-
50
- export { type Wallet, WalletProvider, useNetwork, useWallet };
40
+ //#endregion
41
+ export { WalletProvider, useNetwork, useWallet };
42
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,155 +1,154 @@
1
- // src/index.tsx
2
1
  import { useStore } from "@tanstack/react-store";
3
2
  import algosdk from "algosdk";
4
3
  import * as React from "react";
5
- export * from "@txnlab/use-wallet";
6
4
  import { jsx } from "react/jsx-runtime";
7
- var WalletContext = React.createContext(void 0);
8
- var WalletProvider = ({ manager, children }) => {
9
- const [algodClient, setAlgodClient] = React.useState(manager.algodClient);
10
- React.useEffect(() => {
11
- manager.algodClient = algodClient;
12
- }, [algodClient, manager]);
13
- const resumedRef = React.useRef(false);
14
- React.useEffect(() => {
15
- if (!resumedRef.current) {
16
- manager.resumeSessions();
17
- resumedRef.current = true;
18
- }
19
- }, [manager]);
20
- return /* @__PURE__ */ jsx(WalletContext.Provider, { value: { manager, algodClient, setAlgodClient }, children });
21
- };
22
- var useNetwork = () => {
23
- const context = React.useContext(WalletContext);
24
- if (!context) {
25
- throw new Error("useNetwork must be used within the WalletProvider");
26
- }
27
- const { manager, setAlgodClient } = context;
28
- const activeNetwork = useStore(manager.store, (state) => state.activeNetwork);
29
- const setActiveNetwork = async (networkId) => {
30
- if (networkId === activeNetwork) {
31
- return;
32
- }
33
- if (!manager.networkConfig[networkId]) {
34
- throw new Error(`Network "${networkId}" not found in network configuration`);
35
- }
36
- console.info(`[React] Creating new Algodv2 client...`);
37
- const { algod } = manager.networkConfig[networkId];
38
- const { token = "", baseServer, port = "", headers = {} } = algod;
39
- const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
40
- setAlgodClient(newClient);
41
- manager.store.setState((state) => ({
42
- ...state,
43
- activeNetwork: networkId
44
- }));
45
- console.info(`[React] \u2705 Active network set to ${networkId}.`);
46
- };
47
- const updateAlgodConfig = (networkId, config) => {
48
- manager.updateAlgodConfig(networkId, config);
49
- if (networkId === activeNetwork) {
50
- console.info(`[React] Creating new Algodv2 client...`);
51
- const { algod } = manager.networkConfig[networkId];
52
- const { token = "", baseServer, port = "", headers = {} } = algod;
53
- const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
54
- setAlgodClient(newClient);
55
- }
56
- };
57
- const resetNetworkConfig = (networkId) => {
58
- manager.resetNetworkConfig(networkId);
59
- if (networkId === activeNetwork) {
60
- console.info(`[React] Creating new Algodv2 client...`);
61
- const { algod } = manager.networkConfig[networkId];
62
- const { token = "", baseServer, port = "", headers = {} } = algod;
63
- const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
64
- setAlgodClient(newClient);
65
- }
66
- };
67
- return {
68
- activeNetwork,
69
- networkConfig: manager.networkConfig,
70
- activeNetworkConfig: manager.activeNetworkConfig,
71
- setActiveNetwork,
72
- updateAlgodConfig,
73
- resetNetworkConfig
74
- };
5
+ export * from "@txnlab/use-wallet";
6
+ //#region src/index.tsx
7
+ const WalletContext = React.createContext(void 0);
8
+ const WalletProvider = ({ manager, children }) => {
9
+ const [algodClient, setAlgodClient] = React.useState(manager.algodClient);
10
+ React.useEffect(() => {
11
+ manager.algodClient = algodClient;
12
+ }, [algodClient, manager]);
13
+ const resumedRef = React.useRef(false);
14
+ React.useEffect(() => {
15
+ if (!resumedRef.current) {
16
+ manager.resumeSessions();
17
+ resumedRef.current = true;
18
+ }
19
+ }, [manager]);
20
+ return /* @__PURE__ */ jsx(WalletContext.Provider, {
21
+ value: {
22
+ manager,
23
+ algodClient,
24
+ setAlgodClient
25
+ },
26
+ children
27
+ });
75
28
  };
76
- var useWallet = () => {
77
- const context = React.useContext(WalletContext);
78
- if (!context) {
79
- throw new Error("useWallet must be used within the WalletProvider");
80
- }
81
- const { manager, algodClient, setAlgodClient } = context;
82
- const managerStatus = useStore(manager.store, (state) => state.managerStatus);
83
- const isReady = managerStatus === "ready";
84
- const walletStateMap = useStore(manager.store, (state) => state.wallets);
85
- const activeWalletId = useStore(manager.store, (state) => state.activeWallet);
86
- const transformToWallet = React.useCallback(
87
- (wallet) => {
88
- const walletState = walletStateMap[wallet.walletKey];
89
- return {
90
- id: wallet.id,
91
- walletKey: wallet.walletKey,
92
- metadata: wallet.metadata,
93
- accounts: walletState?.accounts ?? [],
94
- activeAccount: walletState?.activeAccount ?? null,
95
- isConnected: !!walletState,
96
- isActive: wallet.walletKey === activeWalletId,
97
- canSignData: wallet.canSignData ?? false,
98
- connect: (args) => wallet.connect(args),
99
- disconnect: () => wallet.disconnect(),
100
- setActive: () => wallet.setActive(),
101
- setActiveAccount: (addr) => wallet.setActiveAccount(addr)
102
- };
103
- },
104
- [walletStateMap, activeWalletId]
105
- );
106
- const wallets = React.useMemo(() => {
107
- return [...manager.wallets.values()].map(transformToWallet);
108
- }, [manager, transformToWallet]);
109
- const activeBaseWallet = activeWalletId ? manager.getWallet(activeWalletId) || null : null;
110
- const activeWallet = React.useMemo(() => {
111
- return activeBaseWallet ? transformToWallet(activeBaseWallet) : null;
112
- }, [activeBaseWallet, transformToWallet]);
113
- const activeWalletAccounts = activeWallet?.accounts ?? null;
114
- const activeWalletAddresses = activeWalletAccounts?.map((account) => account.address) ?? null;
115
- const activeAccount = activeWallet?.activeAccount ?? null;
116
- const activeAddress = activeAccount?.address ?? null;
117
- const signTransactions = (txnGroup, indexesToSign) => {
118
- if (!activeBaseWallet) {
119
- throw new Error("No active wallet");
120
- }
121
- return activeBaseWallet.signTransactions(txnGroup, indexesToSign);
122
- };
123
- const transactionSigner = (txnGroup, indexesToSign) => {
124
- if (!activeBaseWallet) {
125
- throw new Error("No active wallet");
126
- }
127
- return activeBaseWallet.transactionSigner(txnGroup, indexesToSign);
128
- };
129
- const signData = (data, metadata) => {
130
- if (!activeBaseWallet) {
131
- throw new Error("No active wallet");
132
- }
133
- return activeBaseWallet.signData(data, metadata);
134
- };
135
- return {
136
- wallets,
137
- isReady,
138
- algodClient,
139
- setAlgodClient,
140
- activeWallet,
141
- activeWalletAccounts,
142
- activeWalletAddresses,
143
- activeAccount,
144
- activeAddress,
145
- signData,
146
- signTransactions,
147
- transactionSigner
148
- };
29
+ const useNetwork = () => {
30
+ const context = React.useContext(WalletContext);
31
+ if (!context) throw new Error("useNetwork must be used within the WalletProvider");
32
+ const { manager, setAlgodClient } = context;
33
+ const activeNetwork = useStore(manager.store, (state) => state.activeNetwork);
34
+ const setActiveNetwork = async (networkId) => {
35
+ if (networkId === activeNetwork) return;
36
+ if (!manager.networkConfig[networkId]) throw new Error(`Network "${networkId}" not found in network configuration`);
37
+ console.info(`[React] Creating new Algodv2 client...`);
38
+ const { algod } = manager.networkConfig[networkId];
39
+ const { token = "", baseServer, port = "", headers = {} } = algod;
40
+ setAlgodClient(new algosdk.Algodv2(token, baseServer, port, headers));
41
+ manager.store.setState((state) => ({
42
+ ...state,
43
+ activeNetwork: networkId
44
+ }));
45
+ console.info(`[React] ✅ Active network set to ${networkId}.`);
46
+ };
47
+ const updateAlgodConfig = (networkId, config) => {
48
+ manager.updateAlgodConfig(networkId, config);
49
+ if (networkId === activeNetwork) {
50
+ console.info(`[React] Creating new Algodv2 client...`);
51
+ const { algod } = manager.networkConfig[networkId];
52
+ const { token = "", baseServer, port = "", headers = {} } = algod;
53
+ setAlgodClient(new algosdk.Algodv2(token, baseServer, port, headers));
54
+ }
55
+ };
56
+ const resetNetworkConfig = (networkId) => {
57
+ manager.resetNetworkConfig(networkId);
58
+ if (networkId === activeNetwork) {
59
+ console.info(`[React] Creating new Algodv2 client...`);
60
+ const { algod } = manager.networkConfig[networkId];
61
+ const { token = "", baseServer, port = "", headers = {} } = algod;
62
+ setAlgodClient(new algosdk.Algodv2(token, baseServer, port, headers));
63
+ }
64
+ };
65
+ return {
66
+ activeNetwork,
67
+ networkConfig: manager.networkConfig,
68
+ activeNetworkConfig: manager.activeNetworkConfig,
69
+ setActiveNetwork,
70
+ updateAlgodConfig,
71
+ resetNetworkConfig
72
+ };
149
73
  };
150
- export {
151
- WalletProvider,
152
- useNetwork,
153
- useWallet
74
+ const useWallet = () => {
75
+ const context = React.useContext(WalletContext);
76
+ if (!context) throw new Error("useWallet must be used within the WalletProvider");
77
+ const { manager, algodClient, setAlgodClient } = context;
78
+ const isReady = useStore(manager.store, (state) => state.managerStatus) === "ready";
79
+ const walletStateMap = useStore(manager.store, (state) => state.wallets);
80
+ const activeWalletId = useStore(manager.store, (state) => state.activeWallet);
81
+ const activeNetwork = useStore(manager.store, (state) => state.activeNetwork);
82
+ const transformToWallet = React.useCallback((wallet) => {
83
+ const walletState = walletStateMap[wallet.walletKey];
84
+ return {
85
+ id: wallet.id,
86
+ walletKey: wallet.walletKey,
87
+ metadata: wallet.metadata,
88
+ accounts: walletState?.accounts ?? [],
89
+ activeAccount: walletState?.activeAccount ?? null,
90
+ isConnected: !!walletState,
91
+ isActive: wallet.walletKey === activeWalletId,
92
+ canSignData: wallet.canSignData ?? false,
93
+ canUsePrivateKey: wallet.canUsePrivateKey ?? false,
94
+ connect: (args) => wallet.connect(args),
95
+ disconnect: () => wallet.disconnect(),
96
+ setActive: () => wallet.setActive(),
97
+ setActiveAccount: (addr) => wallet.setActiveAccount(addr)
98
+ };
99
+ }, [walletStateMap, activeWalletId]);
100
+ const wallets = React.useMemo(() => {
101
+ return [...manager.wallets.values()].map(transformToWallet);
102
+ }, [manager, transformToWallet]);
103
+ const availableWallets = React.useMemo(() => {
104
+ return manager.availableWallets.map(transformToWallet);
105
+ }, [
106
+ manager,
107
+ transformToWallet,
108
+ activeNetwork
109
+ ]);
110
+ const activeBaseWallet = activeWalletId ? manager.getWallet(activeWalletId) || null : null;
111
+ const activeWallet = React.useMemo(() => {
112
+ return activeBaseWallet ? transformToWallet(activeBaseWallet) : null;
113
+ }, [activeBaseWallet, transformToWallet]);
114
+ const activeWalletAccounts = activeWallet?.accounts ?? null;
115
+ const activeWalletAddresses = activeWalletAccounts?.map((account) => account.address) ?? null;
116
+ const activeAccount = activeWallet?.activeAccount ?? null;
117
+ const activeAddress = activeAccount?.address ?? null;
118
+ const signTransactions = (txnGroup, indexesToSign) => {
119
+ if (!activeBaseWallet) throw new Error("No active wallet");
120
+ return activeBaseWallet.signTransactions(txnGroup, indexesToSign);
121
+ };
122
+ const transactionSigner = (txnGroup, indexesToSign) => {
123
+ if (!activeBaseWallet) throw new Error("No active wallet");
124
+ return activeBaseWallet.transactionSigner(txnGroup, indexesToSign);
125
+ };
126
+ const signData = (data, metadata) => {
127
+ if (!activeBaseWallet) throw new Error("No active wallet");
128
+ return activeBaseWallet.signData(data, metadata);
129
+ };
130
+ const withPrivateKey = (callback) => {
131
+ if (!activeBaseWallet) throw new Error("No active wallet");
132
+ return activeBaseWallet.withPrivateKey(callback);
133
+ };
134
+ return {
135
+ wallets,
136
+ availableWallets,
137
+ isReady,
138
+ algodClient,
139
+ setAlgodClient,
140
+ activeWallet,
141
+ activeWalletAccounts,
142
+ activeWalletAddresses,
143
+ activeAccount,
144
+ activeAddress,
145
+ signData,
146
+ withPrivateKey,
147
+ signTransactions,
148
+ transactionSigner
149
+ };
154
150
  };
151
+ //#endregion
152
+ export { WalletProvider, useNetwork, useWallet };
153
+
155
154
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["import { useStore } from '@tanstack/react-store'\nimport {\n NetworkId,\n SignDataResponse,\n SignMetadata,\n WalletId,\n WalletManager,\n type AlgodConfig,\n type BaseWallet,\n type WalletAccount,\n type WalletKey,\n type WalletMetadata\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): 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 interface Wallet {\n id: WalletId\n /** Unique key for this wallet instance. Used for skinned WalletConnect instances. */\n walletKey: WalletKey\n metadata: WalletMetadata\n accounts: WalletAccount[]\n activeAccount: WalletAccount | null\n isConnected: boolean\n isActive: boolean\n canSignData: boolean\n connect: (args?: Record<string, any>) => Promise<WalletAccount[]>\n disconnect: () => Promise<void>\n setActive: () => void\n setActiveAccount: (address: string) => void\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\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 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 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: SignMetadata): Promise<SignDataResponse> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.signData(data, metadata)\n }\n\n return {\n wallets,\n isReady,\n algodClient,\n setAlgodClient,\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n signTransactions,\n transactionSigner\n }\n}\n"],"mappings":"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","names":[]}
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 SignDataResponse,\n SignMetadata,\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: SignMetadata): Promise<SignDataResponse> => {\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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"}
package/package.json CHANGED
@@ -1,88 +1,59 @@
1
1
  {
2
2
  "name": "@txnlab/use-wallet-react",
3
- "version": "4.5.0",
3
+ "version": "5.0.0-rc.1",
4
+ "publishConfig": {
5
+ "access": "public",
6
+ "provenance": true
7
+ },
4
8
  "description": "React library for integrating Algorand wallets into decentralized applications",
5
9
  "author": "Doug Richar <drichar@gmail.com>",
6
10
  "license": "MIT",
7
11
  "repository": {
8
12
  "type": "git",
9
- "url": "https://github.com/txnlab/use-wallet.git",
10
- "directory": "packages/use-wallet-react"
13
+ "url": "git+https://github.com/txnlab/use-wallet.git",
14
+ "directory": "packages/frameworks/react"
11
15
  },
12
16
  "type": "module",
13
- "main": "./dist/index.cjs",
14
- "module": "./dist/index.js",
15
- "exports": "./dist/index.js",
17
+ "main": "./dist/index.js",
16
18
  "types": "./dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "default": "./dist/index.js"
23
+ }
24
+ },
17
25
  "keywords": [
18
26
  "algorand",
19
27
  "wallet",
20
- "walletconnect",
21
- "pera",
22
- "defly",
23
- "exodus",
24
- "algosdk",
25
- "algokit",
26
- "kmd",
27
28
  "react"
28
29
  ],
29
30
  "files": [
30
31
  "dist"
31
32
  ],
32
33
  "dependencies": {
33
- "@tanstack/react-store": "0.8.0",
34
- "@txnlab/use-wallet": "4.5.0"
34
+ "@tanstack/react-store": "0.9.1",
35
+ "@txnlab/use-wallet": "5.0.0-rc.1"
35
36
  },
36
37
  "devDependencies": {
37
- "@types/react": "18.3.27",
38
+ "@types/react": "19.2.14",
38
39
  "algosdk": "3.5.2",
39
40
  "jsdom": "26.1.0",
40
- "react": "18.3.1",
41
- "react-dom": "18.3.1",
42
- "tsup": "8.5.1",
41
+ "react": "19.2.4",
42
+ "react-dom": "19.2.4",
43
+ "tsdown": "0.21.0",
43
44
  "typescript": "5.9.3"
44
45
  },
45
46
  "peerDependencies": {
46
- "@blockshake/defly-connect": "^1.2.1",
47
- "@magic-ext/algorand": "^24.4.2",
48
- "@walletconnect/modal": "^2.7.0",
49
- "@perawallet/connect": "^1.4.1",
50
- "@walletconnect/sign-client": "^2.23.4",
51
47
  "algosdk": "^3.0.0",
52
- "lute-connect": "^1.6.3",
53
- "magic-sdk": "^29.4.2",
54
48
  "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
55
49
  "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
56
50
  },
57
- "peerDependenciesMeta": {
58
- "@blockshake/defly-connect": {
59
- "optional": true
60
- },
61
- "@magic-ext/algorand": {
62
- "optional": true
63
- },
64
- "@perawallet/connect": {
65
- "optional": true
66
- },
67
- "@walletconnect/modal": {
68
- "optional": true
69
- },
70
- "@walletconnect/sign-client": {
71
- "optional": true
72
- },
73
- "lute-connect": {
74
- "optional": true
75
- },
76
- "magic-sdk": {
77
- "optional": true
78
- }
79
- },
80
51
  "scripts": {
81
- "build": "tsup",
82
- "start": "tsup src/index.tsx --watch",
52
+ "build": "tsdown",
53
+ "start": "tsdown --watch",
83
54
  "test": "vitest run",
84
55
  "test:watch": "vitest --watch",
85
- "lint": "eslint -c \"../../.eslintrc.json\" \"**/*.{js,ts}\"",
56
+ "lint": "eslint \"src/**/*.{js,ts,tsx}\"",
86
57
  "typecheck": "tsc --noEmit"
87
58
  }
88
59
  }
package/dist/index.cjs DELETED
@@ -1,194 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
-
31
- // src/index.tsx
32
- var index_exports = {};
33
- __export(index_exports, {
34
- WalletProvider: () => WalletProvider,
35
- useNetwork: () => useNetwork,
36
- useWallet: () => useWallet
37
- });
38
- module.exports = __toCommonJS(index_exports);
39
- var import_react_store = require("@tanstack/react-store");
40
- var import_algosdk = __toESM(require("algosdk"), 1);
41
- var React = __toESM(require("react"), 1);
42
- __reExport(index_exports, require("@txnlab/use-wallet"), module.exports);
43
- var import_jsx_runtime = require("react/jsx-runtime");
44
- var WalletContext = React.createContext(void 0);
45
- var WalletProvider = ({ manager, children }) => {
46
- const [algodClient, setAlgodClient] = React.useState(manager.algodClient);
47
- React.useEffect(() => {
48
- manager.algodClient = algodClient;
49
- }, [algodClient, manager]);
50
- const resumedRef = React.useRef(false);
51
- React.useEffect(() => {
52
- if (!resumedRef.current) {
53
- manager.resumeSessions();
54
- resumedRef.current = true;
55
- }
56
- }, [manager]);
57
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletContext.Provider, { value: { manager, algodClient, setAlgodClient }, children });
58
- };
59
- var useNetwork = () => {
60
- const context = React.useContext(WalletContext);
61
- if (!context) {
62
- throw new Error("useNetwork must be used within the WalletProvider");
63
- }
64
- const { manager, setAlgodClient } = context;
65
- const activeNetwork = (0, import_react_store.useStore)(manager.store, (state) => state.activeNetwork);
66
- const setActiveNetwork = async (networkId) => {
67
- if (networkId === activeNetwork) {
68
- return;
69
- }
70
- if (!manager.networkConfig[networkId]) {
71
- throw new Error(`Network "${networkId}" not found in network configuration`);
72
- }
73
- console.info(`[React] Creating new Algodv2 client...`);
74
- const { algod } = manager.networkConfig[networkId];
75
- const { token = "", baseServer, port = "", headers = {} } = algod;
76
- const newClient = new import_algosdk.default.Algodv2(token, baseServer, port, headers);
77
- setAlgodClient(newClient);
78
- manager.store.setState((state) => ({
79
- ...state,
80
- activeNetwork: networkId
81
- }));
82
- console.info(`[React] \u2705 Active network set to ${networkId}.`);
83
- };
84
- const updateAlgodConfig = (networkId, config) => {
85
- manager.updateAlgodConfig(networkId, config);
86
- if (networkId === activeNetwork) {
87
- console.info(`[React] Creating new Algodv2 client...`);
88
- const { algod } = manager.networkConfig[networkId];
89
- const { token = "", baseServer, port = "", headers = {} } = algod;
90
- const newClient = new import_algosdk.default.Algodv2(token, baseServer, port, headers);
91
- setAlgodClient(newClient);
92
- }
93
- };
94
- const resetNetworkConfig = (networkId) => {
95
- manager.resetNetworkConfig(networkId);
96
- if (networkId === activeNetwork) {
97
- console.info(`[React] Creating new Algodv2 client...`);
98
- const { algod } = manager.networkConfig[networkId];
99
- const { token = "", baseServer, port = "", headers = {} } = algod;
100
- const newClient = new import_algosdk.default.Algodv2(token, baseServer, port, headers);
101
- setAlgodClient(newClient);
102
- }
103
- };
104
- return {
105
- activeNetwork,
106
- networkConfig: manager.networkConfig,
107
- activeNetworkConfig: manager.activeNetworkConfig,
108
- setActiveNetwork,
109
- updateAlgodConfig,
110
- resetNetworkConfig
111
- };
112
- };
113
- var useWallet = () => {
114
- const context = React.useContext(WalletContext);
115
- if (!context) {
116
- throw new Error("useWallet must be used within the WalletProvider");
117
- }
118
- const { manager, algodClient, setAlgodClient } = context;
119
- const managerStatus = (0, import_react_store.useStore)(manager.store, (state) => state.managerStatus);
120
- const isReady = managerStatus === "ready";
121
- const walletStateMap = (0, import_react_store.useStore)(manager.store, (state) => state.wallets);
122
- const activeWalletId = (0, import_react_store.useStore)(manager.store, (state) => state.activeWallet);
123
- const transformToWallet = React.useCallback(
124
- (wallet) => {
125
- const walletState = walletStateMap[wallet.walletKey];
126
- return {
127
- id: wallet.id,
128
- walletKey: wallet.walletKey,
129
- metadata: wallet.metadata,
130
- accounts: walletState?.accounts ?? [],
131
- activeAccount: walletState?.activeAccount ?? null,
132
- isConnected: !!walletState,
133
- isActive: wallet.walletKey === activeWalletId,
134
- canSignData: wallet.canSignData ?? false,
135
- connect: (args) => wallet.connect(args),
136
- disconnect: () => wallet.disconnect(),
137
- setActive: () => wallet.setActive(),
138
- setActiveAccount: (addr) => wallet.setActiveAccount(addr)
139
- };
140
- },
141
- [walletStateMap, activeWalletId]
142
- );
143
- const wallets = React.useMemo(() => {
144
- return [...manager.wallets.values()].map(transformToWallet);
145
- }, [manager, transformToWallet]);
146
- const activeBaseWallet = activeWalletId ? manager.getWallet(activeWalletId) || null : null;
147
- const activeWallet = React.useMemo(() => {
148
- return activeBaseWallet ? transformToWallet(activeBaseWallet) : null;
149
- }, [activeBaseWallet, transformToWallet]);
150
- const activeWalletAccounts = activeWallet?.accounts ?? null;
151
- const activeWalletAddresses = activeWalletAccounts?.map((account) => account.address) ?? null;
152
- const activeAccount = activeWallet?.activeAccount ?? null;
153
- const activeAddress = activeAccount?.address ?? null;
154
- const signTransactions = (txnGroup, indexesToSign) => {
155
- if (!activeBaseWallet) {
156
- throw new Error("No active wallet");
157
- }
158
- return activeBaseWallet.signTransactions(txnGroup, indexesToSign);
159
- };
160
- const transactionSigner = (txnGroup, indexesToSign) => {
161
- if (!activeBaseWallet) {
162
- throw new Error("No active wallet");
163
- }
164
- return activeBaseWallet.transactionSigner(txnGroup, indexesToSign);
165
- };
166
- const signData = (data, metadata) => {
167
- if (!activeBaseWallet) {
168
- throw new Error("No active wallet");
169
- }
170
- return activeBaseWallet.signData(data, metadata);
171
- };
172
- return {
173
- wallets,
174
- isReady,
175
- algodClient,
176
- setAlgodClient,
177
- activeWallet,
178
- activeWalletAccounts,
179
- activeWalletAddresses,
180
- activeAccount,
181
- activeAddress,
182
- signData,
183
- signTransactions,
184
- transactionSigner
185
- };
186
- };
187
- // Annotate the CommonJS export names for ESM import in node:
188
- 0 && (module.exports = {
189
- WalletProvider,
190
- useNetwork,
191
- useWallet,
192
- ...require("@txnlab/use-wallet")
193
- });
194
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["import { useStore } from '@tanstack/react-store'\nimport {\n NetworkId,\n SignDataResponse,\n SignMetadata,\n WalletId,\n WalletManager,\n type AlgodConfig,\n type BaseWallet,\n type WalletAccount,\n type WalletKey,\n type WalletMetadata\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): 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 interface Wallet {\n id: WalletId\n /** Unique key for this wallet instance. Used for skinned WalletConnect instances. */\n walletKey: WalletKey\n metadata: WalletMetadata\n accounts: WalletAccount[]\n activeAccount: WalletAccount | null\n isConnected: boolean\n isActive: boolean\n canSignData: boolean\n connect: (args?: Record<string, any>) => Promise<WalletAccount[]>\n disconnect: () => Promise<void>\n setActive: () => void\n setActiveAccount: (address: string) => void\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\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 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 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: SignMetadata): Promise<SignDataResponse> => {\n if (!activeBaseWallet) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.signData(data, metadata)\n }\n\n return {\n wallets,\n isReady,\n algodClient,\n setAlgodClient,\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n signTransactions,\n transactionSigner\n }\n}\n"],"mappings":"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","names":["algosdk"]}
package/dist/index.d.cts DELETED
@@ -1,50 +0,0 @@
1
- import * as _txnlab_use_wallet from '@txnlab/use-wallet';
2
- import { WalletId, WalletKey, WalletMetadata, WalletAccount, WalletManager, NetworkId, AlgodConfig, SignMetadata, SignDataResponse } from '@txnlab/use-wallet';
3
- export * from '@txnlab/use-wallet';
4
- import algosdk from 'algosdk';
5
- import * as React from 'react';
6
-
7
- interface WalletProviderProps {
8
- manager: WalletManager;
9
- children: React.ReactNode;
10
- }
11
- declare const WalletProvider: ({ manager, children }: WalletProviderProps) => JSX.Element;
12
- declare const useNetwork: () => {
13
- activeNetwork: string;
14
- networkConfig: Record<string, _txnlab_use_wallet.NetworkConfig>;
15
- activeNetworkConfig: _txnlab_use_wallet.NetworkConfig;
16
- setActiveNetwork: (networkId: NetworkId | string) => Promise<void>;
17
- updateAlgodConfig: (networkId: string, config: Partial<AlgodConfig>) => void;
18
- resetNetworkConfig: (networkId: string) => void;
19
- };
20
- interface Wallet {
21
- id: WalletId;
22
- /** Unique key for this wallet instance. Used for skinned WalletConnect instances. */
23
- walletKey: WalletKey;
24
- metadata: WalletMetadata;
25
- accounts: WalletAccount[];
26
- activeAccount: WalletAccount | null;
27
- isConnected: boolean;
28
- isActive: boolean;
29
- canSignData: boolean;
30
- connect: (args?: Record<string, any>) => Promise<WalletAccount[]>;
31
- disconnect: () => Promise<void>;
32
- setActive: () => void;
33
- setActiveAccount: (address: string) => void;
34
- }
35
- declare const useWallet: () => {
36
- wallets: Wallet[];
37
- isReady: boolean;
38
- algodClient: algosdk.Algodv2;
39
- setAlgodClient: React.Dispatch<React.SetStateAction<algosdk.Algodv2>>;
40
- activeWallet: Wallet | null;
41
- activeWalletAccounts: WalletAccount[] | null;
42
- activeWalletAddresses: string[] | null;
43
- activeAccount: WalletAccount | null;
44
- activeAddress: string | null;
45
- signData: (data: string, metadata: SignMetadata) => Promise<SignDataResponse>;
46
- signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
47
- transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
48
- };
49
-
50
- export { type Wallet, WalletProvider, useNetwork, useWallet };