@txnlab/use-wallet-vue 4.4.0 → 4.6.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 TxnLab, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/index.cjs CHANGED
@@ -87,6 +87,7 @@ function useWallet() {
87
87
  isConnected: !!walletState,
88
88
  isActive: wallet.walletKey === activeWalletId.value,
89
89
  canSignData: wallet.canSignData ?? false,
90
+ canUsePrivateKey: wallet.canUsePrivateKey ?? false,
90
91
  connect: (args) => wallet.connect(args),
91
92
  disconnect: () => wallet.disconnect(),
92
93
  setActive: () => wallet.setActive(),
@@ -137,6 +138,12 @@ function useWallet() {
137
138
  }
138
139
  return activeBaseWallet.value.signData(data, metadata);
139
140
  };
141
+ const withPrivateKey = (callback) => {
142
+ if (!activeBaseWallet.value) {
143
+ throw new Error("No active wallet");
144
+ }
145
+ return activeBaseWallet.value.withPrivateKey(callback);
146
+ };
140
147
  return {
141
148
  wallets,
142
149
  isReady,
@@ -152,6 +159,7 @@ function useWallet() {
152
159
  activeAccount,
153
160
  activeAddress,
154
161
  signData,
162
+ withPrivateKey,
155
163
  signTransactions,
156
164
  transactionSigner
157
165
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/walletManagerPlugin.ts","../src/useWallet.ts","../src/useNetwork.ts"],"sourcesContent":["export * from '@txnlab/use-wallet'\nexport { WalletManagerPlugin } from './walletManagerPlugin'\nexport { useWallet, type Wallet } from './useWallet'\nexport { useNetwork } from './useNetwork'\n","import { WalletManager, type WalletManagerConfig } from '@txnlab/use-wallet'\nimport { ref } from 'vue'\nimport type algosdk from 'algosdk'\n\nexport const WalletManagerPlugin = {\n install(app: any, options: WalletManagerConfig) {\n const manager = new WalletManager(options)\n const algodClient = ref(manager.algodClient)\n\n const setAlgodClient = (client: algosdk.Algodv2) => {\n algodClient.value = client\n manager.algodClient = client\n }\n\n app.provide('walletManager', manager)\n app.provide('algodClient', algodClient)\n app.provide('setAlgodClient', setAlgodClient)\n\n manager.resumeSessions().catch((error) => {\n console.error('Error resuming sessions:', error)\n })\n }\n}\n","import { useStore } from '@tanstack/vue-store'\nimport {\n BaseWallet,\n WalletManager,\n type WalletAccount,\n type WalletKey,\n type WalletMetadata,\n type WalletId,\n type SignMetadata,\n type SignDataResponse\n} from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\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 connect: (args?: Record<string, any>) => Promise<WalletAccount[]>\n disconnect: () => Promise<void>\n setActive: () => void\n setActiveAccount: (address: string) => void\n canSignData: boolean\n}\n\nexport type SetAlgodClient = (client: algosdk.Algodv2) => void\n\nexport function useWallet() {\n const manager = inject<WalletManager>('walletManager')\n const algodClient = inject<ReturnType<typeof ref<algosdk.Algodv2>>>('algodClient')\n\n if (!manager) {\n throw new Error('WalletManager plugin is not properly installed')\n }\n if (!algodClient) {\n throw new Error('Algod client not properly installed')\n }\n\n const managerStatus = useStore(manager.store, (state) => state.managerStatus)\n const isReady = computed(() => managerStatus.value === 'ready')\n\n const walletStateMap = useStore(manager.store, (state) => state.wallets)\n const activeWalletId = useStore(manager.store, (state) => state.activeWallet)\n\n const transformToWallet = (wallet: BaseWallet): Wallet => {\n const walletState = walletStateMap.value[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.value,\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\n const wallets = computed(() => {\n return [...manager.wallets.values()].map(transformToWallet)\n })\n\n const activeWallet = computed(() => {\n const wallet = activeWalletId.value ? manager.getWallet(activeWalletId.value) || null : null\n return wallet ? transformToWallet(wallet) : null\n })\n\n const activeBaseWallet = computed(() => {\n return activeWalletId.value ? manager.getWallet(activeWalletId.value) || null : null\n })\n\n const activeWalletState = computed(() => {\n const wallet = activeWallet.value\n return wallet ? walletStateMap.value[wallet.walletKey] || null : null\n })\n\n const activeWalletAccounts = computed(() => {\n return activeWalletState.value?.accounts ?? null\n })\n\n const activeWalletAddresses = computed(() => {\n return activeWalletAccounts.value?.map((account) => account.address) ?? null\n })\n\n const activeAccount = computed(() => {\n return activeWalletState.value?.activeAccount ?? null\n })\n\n const activeAddress = computed(() => {\n return activeAccount.value?.address ?? null\n })\n\n const signTransactions = <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.signTransactions(txnGroup, indexesToSign)\n }\n\n const transactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.transactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: SignMetadata): Promise<SignDataResponse> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.signData(data, metadata)\n }\n\n return {\n wallets,\n isReady,\n algodClient: computed(() => {\n if (!algodClient.value) {\n throw new Error('Algod client is undefined')\n }\n return algodClient.value\n }),\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n signTransactions,\n transactionSigner\n }\n}\n","import { useStore } from '@tanstack/vue-store'\nimport { WalletManager, type AlgodConfig } from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\nimport type { SetAlgodClient } from './useWallet'\n\nexport function useNetwork() {\n const manager = inject<WalletManager>('walletManager')\n const algodClient = inject<ReturnType<typeof ref<algosdk.Algodv2>>>('algodClient')\n const setAlgodClient = inject<SetAlgodClient>('setAlgodClient')\n\n if (!manager) {\n throw new Error('WalletManager plugin is not properly installed')\n }\n if (!algodClient || !setAlgodClient) {\n throw new Error('Algod client or setter not properly installed')\n }\n\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n // Create a reactive store for network config\n const networkConfig = useStore(manager.store, (state) => ({\n networks: { ...manager.networkConfig },\n activeNetwork: state.activeNetwork\n }))\n\n const activeNetworkConfig = computed(\n () => networkConfig.value.networks[networkConfig.value.activeNetwork]\n )\n\n const setActiveNetwork = async (networkId: string): Promise<void> => {\n if (networkId === activeNetwork.value) {\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(`[Vue] 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\n await manager.setActiveNetwork(networkId)\n setAlgodClient(newClient)\n\n console.info(`[Vue] ✅ Active network set to ${networkId}.`)\n }\n\n const updateAlgodConfig = (networkId: string, config: Partial<AlgodConfig>): void => {\n manager.updateAlgodConfig(networkId, config)\n manager.store.setState((state) => ({ ...state }))\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork.value) {\n console.info(`[Vue] 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 manager.store.setState((state) => ({ ...state }))\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork.value) {\n console.info(`[Vue] 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,\n setActiveNetwork,\n updateAlgodConfig,\n resetNetworkConfig\n }\n}\n"],"mappings":"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","names":["import_use_wallet","import_vue","import_vue_store","import_use_wallet","import_algosdk","import_vue","algosdk"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/walletManagerPlugin.ts","../src/useWallet.ts","../src/useNetwork.ts"],"sourcesContent":["export * from '@txnlab/use-wallet'\nexport { WalletManagerPlugin } from './walletManagerPlugin'\nexport { useWallet, type Wallet } from './useWallet'\nexport { useNetwork } from './useNetwork'\n","import { WalletManager, type WalletManagerConfig } from '@txnlab/use-wallet'\nimport { ref } from 'vue'\nimport type algosdk from 'algosdk'\n\nexport const WalletManagerPlugin = {\n install(app: any, options: WalletManagerConfig) {\n const manager = new WalletManager(options)\n const algodClient = ref(manager.algodClient)\n\n const setAlgodClient = (client: algosdk.Algodv2) => {\n algodClient.value = client\n manager.algodClient = client\n }\n\n app.provide('walletManager', manager)\n app.provide('algodClient', algodClient)\n app.provide('setAlgodClient', setAlgodClient)\n\n manager.resumeSessions().catch((error) => {\n console.error('Error resuming sessions:', error)\n })\n }\n}\n","import { useStore } from '@tanstack/vue-store'\nimport {\n BaseWallet,\n WalletManager,\n type WalletAccount,\n type WalletKey,\n type WalletMetadata,\n type WalletId,\n type SignMetadata,\n type SignDataResponse\n} from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\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 connect: (args?: Record<string, any>) => Promise<WalletAccount[]>\n disconnect: () => Promise<void>\n setActive: () => void\n setActiveAccount: (address: string) => void\n canSignData: boolean\n canUsePrivateKey: boolean\n}\n\nexport type SetAlgodClient = (client: algosdk.Algodv2) => void\n\nexport function useWallet() {\n const manager = inject<WalletManager>('walletManager')\n const algodClient = inject<ReturnType<typeof ref<algosdk.Algodv2>>>('algodClient')\n\n if (!manager) {\n throw new Error('WalletManager plugin is not properly installed')\n }\n if (!algodClient) {\n throw new Error('Algod client not properly installed')\n }\n\n const managerStatus = useStore(manager.store, (state) => state.managerStatus)\n const isReady = computed(() => managerStatus.value === 'ready')\n\n const walletStateMap = useStore(manager.store, (state) => state.wallets)\n const activeWalletId = useStore(manager.store, (state) => state.activeWallet)\n\n const transformToWallet = (wallet: BaseWallet): Wallet => {\n const walletState = walletStateMap.value[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.value,\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\n const wallets = computed(() => {\n return [...manager.wallets.values()].map(transformToWallet)\n })\n\n const activeWallet = computed(() => {\n const wallet = activeWalletId.value ? manager.getWallet(activeWalletId.value) || null : null\n return wallet ? transformToWallet(wallet) : null\n })\n\n const activeBaseWallet = computed(() => {\n return activeWalletId.value ? manager.getWallet(activeWalletId.value) || null : null\n })\n\n const activeWalletState = computed(() => {\n const wallet = activeWallet.value\n return wallet ? walletStateMap.value[wallet.walletKey] || null : null\n })\n\n const activeWalletAccounts = computed(() => {\n return activeWalletState.value?.accounts ?? null\n })\n\n const activeWalletAddresses = computed(() => {\n return activeWalletAccounts.value?.map((account) => account.address) ?? null\n })\n\n const activeAccount = computed(() => {\n return activeWalletState.value?.activeAccount ?? null\n })\n\n const activeAddress = computed(() => {\n return activeAccount.value?.address ?? null\n })\n\n const signTransactions = <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.signTransactions(txnGroup, indexesToSign)\n }\n\n const transactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.transactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: SignMetadata): Promise<SignDataResponse> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.signData(data, metadata)\n }\n\n const withPrivateKey = <T>(callback: (secretKey: Uint8Array) => Promise<T>): Promise<T> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.withPrivateKey(callback)\n }\n\n return {\n wallets,\n isReady,\n algodClient: computed(() => {\n if (!algodClient.value) {\n throw new Error('Algod client is undefined')\n }\n return algodClient.value\n }),\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n withPrivateKey,\n signTransactions,\n transactionSigner\n }\n}\n","import { useStore } from '@tanstack/vue-store'\nimport { WalletManager, type AlgodConfig } from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\nimport type { SetAlgodClient } from './useWallet'\n\nexport function useNetwork() {\n const manager = inject<WalletManager>('walletManager')\n const algodClient = inject<ReturnType<typeof ref<algosdk.Algodv2>>>('algodClient')\n const setAlgodClient = inject<SetAlgodClient>('setAlgodClient')\n\n if (!manager) {\n throw new Error('WalletManager plugin is not properly installed')\n }\n if (!algodClient || !setAlgodClient) {\n throw new Error('Algod client or setter not properly installed')\n }\n\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n // Create a reactive store for network config\n const networkConfig = useStore(manager.store, (state) => ({\n networks: { ...manager.networkConfig },\n activeNetwork: state.activeNetwork\n }))\n\n const activeNetworkConfig = computed(\n () => networkConfig.value.networks[networkConfig.value.activeNetwork]\n )\n\n const setActiveNetwork = async (networkId: string): Promise<void> => {\n if (networkId === activeNetwork.value) {\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(`[Vue] 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\n await manager.setActiveNetwork(networkId)\n setAlgodClient(newClient)\n\n console.info(`[Vue] ✅ Active network set to ${networkId}.`)\n }\n\n const updateAlgodConfig = (networkId: string, config: Partial<AlgodConfig>): void => {\n manager.updateAlgodConfig(networkId, config)\n manager.store.setState((state) => ({ ...state }))\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork.value) {\n console.info(`[Vue] 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 manager.store.setState((state) => ({ ...state }))\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork.value) {\n console.info(`[Vue] 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,\n setActiveNetwork,\n updateAlgodConfig,\n resetNetworkConfig\n }\n}\n"],"mappings":"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","names":["import_use_wallet","import_vue","import_vue_store","import_use_wallet","import_algosdk","import_vue","algosdk"]}
package/dist/index.d.cts CHANGED
@@ -22,6 +22,7 @@ interface Wallet {
22
22
  setActive: () => void;
23
23
  setActiveAccount: (address: string) => void;
24
24
  canSignData: boolean;
25
+ canUsePrivateKey: boolean;
25
26
  }
26
27
  declare function useWallet(): {
27
28
  wallets: vue.ComputedRef<Wallet[]>;
@@ -33,6 +34,7 @@ declare function useWallet(): {
33
34
  activeAccount: vue.ComputedRef<WalletAccount | null>;
34
35
  activeAddress: vue.ComputedRef<string | null>;
35
36
  signData: (data: string, metadata: SignMetadata) => Promise<SignDataResponse>;
37
+ withPrivateKey: <T>(callback: (secretKey: Uint8Array) => Promise<T>) => Promise<T>;
36
38
  signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
37
39
  transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
38
40
  };
package/dist/index.d.ts CHANGED
@@ -22,6 +22,7 @@ interface Wallet {
22
22
  setActive: () => void;
23
23
  setActiveAccount: (address: string) => void;
24
24
  canSignData: boolean;
25
+ canUsePrivateKey: boolean;
25
26
  }
26
27
  declare function useWallet(): {
27
28
  wallets: vue.ComputedRef<Wallet[]>;
@@ -33,6 +34,7 @@ declare function useWallet(): {
33
34
  activeAccount: vue.ComputedRef<WalletAccount | null>;
34
35
  activeAddress: vue.ComputedRef<string | null>;
35
36
  signData: (data: string, metadata: SignMetadata) => Promise<SignDataResponse>;
37
+ withPrivateKey: <T>(callback: (secretKey: Uint8Array) => Promise<T>) => Promise<T>;
36
38
  signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
37
39
  transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
38
40
  };
package/dist/index.js CHANGED
@@ -50,6 +50,7 @@ function useWallet() {
50
50
  isConnected: !!walletState,
51
51
  isActive: wallet.walletKey === activeWalletId.value,
52
52
  canSignData: wallet.canSignData ?? false,
53
+ canUsePrivateKey: wallet.canUsePrivateKey ?? false,
53
54
  connect: (args) => wallet.connect(args),
54
55
  disconnect: () => wallet.disconnect(),
55
56
  setActive: () => wallet.setActive(),
@@ -100,6 +101,12 @@ function useWallet() {
100
101
  }
101
102
  return activeBaseWallet.value.signData(data, metadata);
102
103
  };
104
+ const withPrivateKey = (callback) => {
105
+ if (!activeBaseWallet.value) {
106
+ throw new Error("No active wallet");
107
+ }
108
+ return activeBaseWallet.value.withPrivateKey(callback);
109
+ };
103
110
  return {
104
111
  wallets,
105
112
  isReady,
@@ -115,6 +122,7 @@ function useWallet() {
115
122
  activeAccount,
116
123
  activeAddress,
117
124
  signData,
125
+ withPrivateKey,
118
126
  signTransactions,
119
127
  transactionSigner
120
128
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/walletManagerPlugin.ts","../src/useWallet.ts","../src/useNetwork.ts"],"sourcesContent":["export * from '@txnlab/use-wallet'\nexport { WalletManagerPlugin } from './walletManagerPlugin'\nexport { useWallet, type Wallet } from './useWallet'\nexport { useNetwork } from './useNetwork'\n","import { WalletManager, type WalletManagerConfig } from '@txnlab/use-wallet'\nimport { ref } from 'vue'\nimport type algosdk from 'algosdk'\n\nexport const WalletManagerPlugin = {\n install(app: any, options: WalletManagerConfig) {\n const manager = new WalletManager(options)\n const algodClient = ref(manager.algodClient)\n\n const setAlgodClient = (client: algosdk.Algodv2) => {\n algodClient.value = client\n manager.algodClient = client\n }\n\n app.provide('walletManager', manager)\n app.provide('algodClient', algodClient)\n app.provide('setAlgodClient', setAlgodClient)\n\n manager.resumeSessions().catch((error) => {\n console.error('Error resuming sessions:', error)\n })\n }\n}\n","import { useStore } from '@tanstack/vue-store'\nimport {\n BaseWallet,\n WalletManager,\n type WalletAccount,\n type WalletKey,\n type WalletMetadata,\n type WalletId,\n type SignMetadata,\n type SignDataResponse\n} from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\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 connect: (args?: Record<string, any>) => Promise<WalletAccount[]>\n disconnect: () => Promise<void>\n setActive: () => void\n setActiveAccount: (address: string) => void\n canSignData: boolean\n}\n\nexport type SetAlgodClient = (client: algosdk.Algodv2) => void\n\nexport function useWallet() {\n const manager = inject<WalletManager>('walletManager')\n const algodClient = inject<ReturnType<typeof ref<algosdk.Algodv2>>>('algodClient')\n\n if (!manager) {\n throw new Error('WalletManager plugin is not properly installed')\n }\n if (!algodClient) {\n throw new Error('Algod client not properly installed')\n }\n\n const managerStatus = useStore(manager.store, (state) => state.managerStatus)\n const isReady = computed(() => managerStatus.value === 'ready')\n\n const walletStateMap = useStore(manager.store, (state) => state.wallets)\n const activeWalletId = useStore(manager.store, (state) => state.activeWallet)\n\n const transformToWallet = (wallet: BaseWallet): Wallet => {\n const walletState = walletStateMap.value[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.value,\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\n const wallets = computed(() => {\n return [...manager.wallets.values()].map(transformToWallet)\n })\n\n const activeWallet = computed(() => {\n const wallet = activeWalletId.value ? manager.getWallet(activeWalletId.value) || null : null\n return wallet ? transformToWallet(wallet) : null\n })\n\n const activeBaseWallet = computed(() => {\n return activeWalletId.value ? manager.getWallet(activeWalletId.value) || null : null\n })\n\n const activeWalletState = computed(() => {\n const wallet = activeWallet.value\n return wallet ? walletStateMap.value[wallet.walletKey] || null : null\n })\n\n const activeWalletAccounts = computed(() => {\n return activeWalletState.value?.accounts ?? null\n })\n\n const activeWalletAddresses = computed(() => {\n return activeWalletAccounts.value?.map((account) => account.address) ?? null\n })\n\n const activeAccount = computed(() => {\n return activeWalletState.value?.activeAccount ?? null\n })\n\n const activeAddress = computed(() => {\n return activeAccount.value?.address ?? null\n })\n\n const signTransactions = <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.signTransactions(txnGroup, indexesToSign)\n }\n\n const transactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.transactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: SignMetadata): Promise<SignDataResponse> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.signData(data, metadata)\n }\n\n return {\n wallets,\n isReady,\n algodClient: computed(() => {\n if (!algodClient.value) {\n throw new Error('Algod client is undefined')\n }\n return algodClient.value\n }),\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n signTransactions,\n transactionSigner\n }\n}\n","import { useStore } from '@tanstack/vue-store'\nimport { WalletManager, type AlgodConfig } from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\nimport type { SetAlgodClient } from './useWallet'\n\nexport function useNetwork() {\n const manager = inject<WalletManager>('walletManager')\n const algodClient = inject<ReturnType<typeof ref<algosdk.Algodv2>>>('algodClient')\n const setAlgodClient = inject<SetAlgodClient>('setAlgodClient')\n\n if (!manager) {\n throw new Error('WalletManager plugin is not properly installed')\n }\n if (!algodClient || !setAlgodClient) {\n throw new Error('Algod client or setter not properly installed')\n }\n\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n // Create a reactive store for network config\n const networkConfig = useStore(manager.store, (state) => ({\n networks: { ...manager.networkConfig },\n activeNetwork: state.activeNetwork\n }))\n\n const activeNetworkConfig = computed(\n () => networkConfig.value.networks[networkConfig.value.activeNetwork]\n )\n\n const setActiveNetwork = async (networkId: string): Promise<void> => {\n if (networkId === activeNetwork.value) {\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(`[Vue] 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\n await manager.setActiveNetwork(networkId)\n setAlgodClient(newClient)\n\n console.info(`[Vue] ✅ Active network set to ${networkId}.`)\n }\n\n const updateAlgodConfig = (networkId: string, config: Partial<AlgodConfig>): void => {\n manager.updateAlgodConfig(networkId, config)\n manager.store.setState((state) => ({ ...state }))\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork.value) {\n console.info(`[Vue] 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 manager.store.setState((state) => ({ ...state }))\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork.value) {\n console.info(`[Vue] 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,\n setActiveNetwork,\n updateAlgodConfig,\n resetNetworkConfig\n }\n}\n"],"mappings":"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","names":["useStore","algosdk","computed","inject"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/walletManagerPlugin.ts","../src/useWallet.ts","../src/useNetwork.ts"],"sourcesContent":["export * from '@txnlab/use-wallet'\nexport { WalletManagerPlugin } from './walletManagerPlugin'\nexport { useWallet, type Wallet } from './useWallet'\nexport { useNetwork } from './useNetwork'\n","import { WalletManager, type WalletManagerConfig } from '@txnlab/use-wallet'\nimport { ref } from 'vue'\nimport type algosdk from 'algosdk'\n\nexport const WalletManagerPlugin = {\n install(app: any, options: WalletManagerConfig) {\n const manager = new WalletManager(options)\n const algodClient = ref(manager.algodClient)\n\n const setAlgodClient = (client: algosdk.Algodv2) => {\n algodClient.value = client\n manager.algodClient = client\n }\n\n app.provide('walletManager', manager)\n app.provide('algodClient', algodClient)\n app.provide('setAlgodClient', setAlgodClient)\n\n manager.resumeSessions().catch((error) => {\n console.error('Error resuming sessions:', error)\n })\n }\n}\n","import { useStore } from '@tanstack/vue-store'\nimport {\n BaseWallet,\n WalletManager,\n type WalletAccount,\n type WalletKey,\n type WalletMetadata,\n type WalletId,\n type SignMetadata,\n type SignDataResponse\n} from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\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 connect: (args?: Record<string, any>) => Promise<WalletAccount[]>\n disconnect: () => Promise<void>\n setActive: () => void\n setActiveAccount: (address: string) => void\n canSignData: boolean\n canUsePrivateKey: boolean\n}\n\nexport type SetAlgodClient = (client: algosdk.Algodv2) => void\n\nexport function useWallet() {\n const manager = inject<WalletManager>('walletManager')\n const algodClient = inject<ReturnType<typeof ref<algosdk.Algodv2>>>('algodClient')\n\n if (!manager) {\n throw new Error('WalletManager plugin is not properly installed')\n }\n if (!algodClient) {\n throw new Error('Algod client not properly installed')\n }\n\n const managerStatus = useStore(manager.store, (state) => state.managerStatus)\n const isReady = computed(() => managerStatus.value === 'ready')\n\n const walletStateMap = useStore(manager.store, (state) => state.wallets)\n const activeWalletId = useStore(manager.store, (state) => state.activeWallet)\n\n const transformToWallet = (wallet: BaseWallet): Wallet => {\n const walletState = walletStateMap.value[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.value,\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\n const wallets = computed(() => {\n return [...manager.wallets.values()].map(transformToWallet)\n })\n\n const activeWallet = computed(() => {\n const wallet = activeWalletId.value ? manager.getWallet(activeWalletId.value) || null : null\n return wallet ? transformToWallet(wallet) : null\n })\n\n const activeBaseWallet = computed(() => {\n return activeWalletId.value ? manager.getWallet(activeWalletId.value) || null : null\n })\n\n const activeWalletState = computed(() => {\n const wallet = activeWallet.value\n return wallet ? walletStateMap.value[wallet.walletKey] || null : null\n })\n\n const activeWalletAccounts = computed(() => {\n return activeWalletState.value?.accounts ?? null\n })\n\n const activeWalletAddresses = computed(() => {\n return activeWalletAccounts.value?.map((account) => account.address) ?? null\n })\n\n const activeAccount = computed(() => {\n return activeWalletState.value?.activeAccount ?? null\n })\n\n const activeAddress = computed(() => {\n return activeAccount.value?.address ?? null\n })\n\n const signTransactions = <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.signTransactions(txnGroup, indexesToSign)\n }\n\n const transactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.transactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: SignMetadata): Promise<SignDataResponse> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.signData(data, metadata)\n }\n\n const withPrivateKey = <T>(callback: (secretKey: Uint8Array) => Promise<T>): Promise<T> => {\n if (!activeBaseWallet.value) {\n throw new Error('No active wallet')\n }\n return activeBaseWallet.value.withPrivateKey(callback)\n }\n\n return {\n wallets,\n isReady,\n algodClient: computed(() => {\n if (!algodClient.value) {\n throw new Error('Algod client is undefined')\n }\n return algodClient.value\n }),\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n withPrivateKey,\n signTransactions,\n transactionSigner\n }\n}\n","import { useStore } from '@tanstack/vue-store'\nimport { WalletManager, type AlgodConfig } from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\nimport type { SetAlgodClient } from './useWallet'\n\nexport function useNetwork() {\n const manager = inject<WalletManager>('walletManager')\n const algodClient = inject<ReturnType<typeof ref<algosdk.Algodv2>>>('algodClient')\n const setAlgodClient = inject<SetAlgodClient>('setAlgodClient')\n\n if (!manager) {\n throw new Error('WalletManager plugin is not properly installed')\n }\n if (!algodClient || !setAlgodClient) {\n throw new Error('Algod client or setter not properly installed')\n }\n\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n // Create a reactive store for network config\n const networkConfig = useStore(manager.store, (state) => ({\n networks: { ...manager.networkConfig },\n activeNetwork: state.activeNetwork\n }))\n\n const activeNetworkConfig = computed(\n () => networkConfig.value.networks[networkConfig.value.activeNetwork]\n )\n\n const setActiveNetwork = async (networkId: string): Promise<void> => {\n if (networkId === activeNetwork.value) {\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(`[Vue] 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\n await manager.setActiveNetwork(networkId)\n setAlgodClient(newClient)\n\n console.info(`[Vue] ✅ Active network set to ${networkId}.`)\n }\n\n const updateAlgodConfig = (networkId: string, config: Partial<AlgodConfig>): void => {\n manager.updateAlgodConfig(networkId, config)\n manager.store.setState((state) => ({ ...state }))\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork.value) {\n console.info(`[Vue] 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 manager.store.setState((state) => ({ ...state }))\n\n // If this is the active network, update the algodClient\n if (networkId === activeNetwork.value) {\n console.info(`[Vue] 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,\n setActiveNetwork,\n updateAlgodConfig,\n resetNetworkConfig\n }\n}\n"],"mappings":"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","names":["useStore","algosdk","computed","inject"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@txnlab/use-wallet-vue",
3
- "version": "4.4.0",
3
+ "version": "4.6.0",
4
4
  "description": "Vue library for integrating Algorand wallets into decentralized applications",
5
5
  "author": "Doug Richar <drichar@gmail.com>",
6
6
  "license": "MIT",
@@ -31,20 +31,20 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "@tanstack/vue-store": "0.8.0",
34
- "@txnlab/use-wallet": "4.4.0"
34
+ "@txnlab/use-wallet": "4.6.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "algosdk": "3.5.2",
38
38
  "tsup": "8.5.1",
39
39
  "typescript": "5.9.3",
40
- "vue": "3.5.26"
40
+ "vue": "3.5.27"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "@blockshake/defly-connect": "^1.2.1",
44
44
  "@magic-ext/algorand": "^24.4.2",
45
45
  "@perawallet/connect": "^1.4.1",
46
46
  "@walletconnect/modal": "^2.7.0",
47
- "@walletconnect/sign-client": "^2.23.1",
47
+ "@walletconnect/sign-client": "^2.23.4",
48
48
  "algosdk": "^3.0.0",
49
49
  "lute-connect": "^1.6.3",
50
50
  "magic-sdk": "^29.4.2",
package/LICENSE.md DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2024 TxnLab Inc.
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.