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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,40 +1,37 @@
1
- import * as _txnlab_use_wallet0 from "@txnlab/use-wallet";
2
1
  import { AlgodConfig, StdSignDataResponse, StdSignMetadata, Wallet, WalletManagerConfig } from "@txnlab/use-wallet";
3
- import * as vue from "vue";
4
2
  import algosdk from "algosdk";
5
3
  export * from "@txnlab/use-wallet";
6
-
7
4
  //#region src/walletManagerPlugin.d.ts
8
- declare const WalletManagerPlugin: {
5
+ export declare const WalletManagerPlugin: {
9
6
  install(app: any, options: WalletManagerConfig): void;
10
7
  };
11
8
  //#endregion
12
9
  //#region src/useWallet.d.ts
13
- declare function useWallet(): {
14
- wallets: vue.ComputedRef<Wallet[]>;
15
- availableWallets: vue.ComputedRef<Wallet[]>;
16
- isReady: vue.ComputedRef<boolean>;
17
- algodClient: vue.ComputedRef<algosdk.Algodv2>;
18
- activeWallet: vue.ComputedRef<Wallet | null>;
19
- activeWalletAccounts: vue.ComputedRef<_txnlab_use_wallet0.WalletAccount[] | null>;
20
- activeWalletAddresses: vue.ComputedRef<string[] | null>;
21
- activeAccount: vue.ComputedRef<_txnlab_use_wallet0.WalletAccount | null>;
22
- activeAddress: vue.ComputedRef<string | null>;
10
+ export declare function useWallet(): {
11
+ wallets: import("vue").ComputedRef<Wallet[]>;
12
+ availableWallets: import("vue").ComputedRef<Wallet[]>;
13
+ isReady: import("vue").ComputedRef<boolean>;
14
+ algodClient: import("vue").ComputedRef<algosdk.Algodv2>;
15
+ activeWallet: import("vue").ComputedRef<Wallet | null>;
16
+ activeWalletAccounts: import("vue").ComputedRef<import("@txnlab/use-wallet").WalletAccount[] | null>;
17
+ activeWalletAddresses: import("vue").ComputedRef<string[] | null>;
18
+ activeAccount: import("vue").ComputedRef<import("@txnlab/use-wallet").WalletAccount | null>;
19
+ activeAddress: import("vue").ComputedRef<string | null>;
23
20
  signData: (data: string, metadata: StdSignMetadata) => Promise<StdSignDataResponse>;
24
21
  withPrivateKey: <T>(callback: (secretKey: Uint8Array) => Promise<T>) => Promise<T>;
25
22
  signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
26
23
  transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
24
+ emptyTransactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
27
25
  };
28
26
  //#endregion
29
27
  //#region src/useNetwork.d.ts
30
- declare function useNetwork(): {
31
- activeNetwork: Readonly<vue.Ref<string, string>>;
32
- networkConfig: Record<string, _txnlab_use_wallet0.NetworkConfig>;
33
- activeNetworkConfig: vue.ComputedRef<_txnlab_use_wallet0.NetworkConfig>;
28
+ export declare function useNetwork(): {
29
+ activeNetwork: Readonly<import("vue").Ref<string, string>>;
30
+ networkConfig: Record<string, import("@txnlab/use-wallet").NetworkConfig>;
31
+ activeNetworkConfig: import("vue").ComputedRef<import("@txnlab/use-wallet").NetworkConfig>;
34
32
  setActiveNetwork: (networkId: string) => Promise<void>;
35
33
  updateAlgodConfig: (networkId: string, config: Partial<AlgodConfig>) => void;
36
34
  resetNetworkConfig: (networkId: string) => void;
37
35
  };
38
36
  //#endregion
39
- export { WalletManagerPlugin, useNetwork, useWallet };
40
37
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -86,6 +86,10 @@ function useWallet() {
86
86
  if (!activeBaseWallet.value) throw new Error("No active wallet");
87
87
  return activeBaseWallet.value.transactionSigner(txnGroup, indexesToSign);
88
88
  };
89
+ const emptyTransactionSigner = (txnGroup, indexesToSign) => {
90
+ if (!activeBaseWallet.value) throw new Error("No active wallet");
91
+ return activeBaseWallet.value.emptyTransactionSigner(txnGroup, indexesToSign);
92
+ };
89
93
  const signData = (data, metadata) => {
90
94
  if (!activeBaseWallet.value) throw new Error("No active wallet");
91
95
  return activeBaseWallet.value.signData(data, metadata);
@@ -110,7 +114,8 @@ function useWallet() {
110
114
  signData,
111
115
  withPrivateKey,
112
116
  signTransactions,
113
- transactionSigner
117
+ transactionSigner,
118
+ emptyTransactionSigner
114
119
  };
115
120
  }
116
121
  //#endregion
@@ -145,7 +150,8 @@ function useNetwork() {
145
150
  console.info(`[Vue] Creating new Algodv2 client...`);
146
151
  const { algod } = manager.networkConfig[networkId];
147
152
  const { token = "", baseServer, port = "", headers = {} } = algod;
148
- setAlgodClient(new algosdk.Algodv2(token, baseServer, port, headers));
153
+ const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
154
+ setAlgodClient(newClient);
149
155
  }
150
156
  };
151
157
  const resetNetworkConfig = (networkId) => {
@@ -155,7 +161,8 @@ function useNetwork() {
155
161
  console.info(`[Vue] Creating new Algodv2 client...`);
156
162
  const { algod } = manager.networkConfig[networkId];
157
163
  const { token = "", baseServer, port = "", headers = {} } = algod;
158
- setAlgodClient(new algosdk.Algodv2(token, baseServer, port, headers));
164
+ const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
165
+ setAlgodClient(newClient);
159
166
  }
160
167
  };
161
168
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/walletManagerPlugin.ts","../src/useWallet.ts","../src/useNetwork.ts"],"sourcesContent":["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 Wallet,\n type StdSignMetadata,\n type StdSignDataResponse\n} from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\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 activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n const availableWallets = computed(() => {\n // Access activeNetwork.value to trigger recomputation on network change\n void activeNetwork.value\n return manager.availableWallets.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: StdSignMetadata): Promise<StdSignDataResponse> => {\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 availableWallets,\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":";;;;;;AAIA,MAAa,sBAAsB,EACjC,QAAQ,KAAU,SAA8B;CAC9C,MAAM,UAAU,IAAI,cAAc,QAAQ;CAC1C,MAAM,cAAc,IAAI,QAAQ,YAAY;CAE5C,MAAM,kBAAkB,WAA4B;AAClD,cAAY,QAAQ;AACpB,UAAQ,cAAc;;AAGxB,KAAI,QAAQ,iBAAiB,QAAQ;AACrC,KAAI,QAAQ,eAAe,YAAY;AACvC,KAAI,QAAQ,kBAAkB,eAAe;AAE7C,SAAQ,gBAAgB,CAAC,OAAO,UAAU;AACxC,UAAQ,MAAM,4BAA4B,MAAM;GAChD;GAEL;;;ACTD,SAAgB,YAAY;CAC1B,MAAM,UAAU,OAAsB,gBAAgB;CACtD,MAAM,cAAc,OAAgD,cAAc;AAElF,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAEnE,KAAI,CAAC,YACH,OAAM,IAAI,MAAM,sCAAsC;CAGxD,MAAM,gBAAgB,SAAS,QAAQ,QAAQ,UAAU,MAAM,cAAc;CAC7E,MAAM,UAAU,eAAe,cAAc,UAAU,QAAQ;CAE/D,MAAM,iBAAiB,SAAS,QAAQ,QAAQ,UAAU,MAAM,QAAQ;CACxE,MAAM,iBAAiB,SAAS,QAAQ,QAAQ,UAAU,MAAM,aAAa;CAE7E,MAAM,qBAAqB,WAA+B;EACxD,MAAM,cAAc,eAAe,MAAM,OAAO;AAChD,SAAO;GACL,IAAI,OAAO;GACX,WAAW,OAAO;GAClB,UAAU,OAAO;GACjB,UAAU,aAAa,YAAY,EAAE;GACrC,eAAe,aAAa,iBAAiB;GAC7C,aAAa,CAAC,CAAC;GACf,UAAU,OAAO,cAAc,eAAe;GAC9C,aAAa,OAAO,eAAe;GACnC,kBAAkB,OAAO,oBAAoB;GAC7C,UAAU,SAAS,OAAO,QAAQ,KAAK;GACvC,kBAAkB,OAAO,YAAY;GACrC,iBAAiB,OAAO,WAAW;GACnC,mBAAmB,SAAS,OAAO,iBAAiB,KAAK;GAC1D;;CAGH,MAAM,UAAU,eAAe;AAC7B,SAAO,CAAC,GAAG,QAAQ,QAAQ,QAAQ,CAAC,CAAC,IAAI,kBAAkB;GAC3D;CAEF,MAAM,gBAAgB,SAAS,QAAQ,QAAQ,UAAU,MAAM,cAAc;CAE7E,MAAM,mBAAmB,eAAe;AAEjC,gBAAc;AACnB,SAAO,QAAQ,iBAAiB,IAAI,kBAAkB;GACtD;CAEF,MAAM,eAAe,eAAe;EAClC,MAAM,SAAS,eAAe,QAAQ,QAAQ,UAAU,eAAe,MAAM,IAAI,OAAO;AACxF,SAAO,SAAS,kBAAkB,OAAO,GAAG;GAC5C;CAEF,MAAM,mBAAmB,eAAe;AACtC,SAAO,eAAe,QAAQ,QAAQ,UAAU,eAAe,MAAM,IAAI,OAAO;GAChF;CAEF,MAAM,oBAAoB,eAAe;EACvC,MAAM,SAAS,aAAa;AAC5B,SAAO,SAAS,eAAe,MAAM,OAAO,cAAc,OAAO;GACjE;CAEF,MAAM,uBAAuB,eAAe;AAC1C,SAAO,kBAAkB,OAAO,YAAY;GAC5C;CAEF,MAAM,wBAAwB,eAAe;AAC3C,SAAO,qBAAqB,OAAO,KAAK,YAAY,QAAQ,QAAQ,IAAI;GACxE;CAEF,MAAM,gBAAgB,eAAe;AACnC,SAAO,kBAAkB,OAAO,iBAAiB;GACjD;CAEF,MAAM,gBAAgB,eAAe;AACnC,SAAO,cAAc,OAAO,WAAW;GACvC;CAEF,MAAM,oBACJ,UACA,kBACmC;AACnC,MAAI,CAAC,iBAAiB,MACpB,OAAM,IAAI,MAAM,mBAAmB;AAErC,SAAO,iBAAiB,MAAM,iBAAiB,UAAU,cAAc;;CAGzE,MAAM,qBACJ,UACA,kBAC0B;AAC1B,MAAI,CAAC,iBAAiB,MACpB,OAAM,IAAI,MAAM,mBAAmB;AAErC,SAAO,iBAAiB,MAAM,kBAAkB,UAAU,cAAc;;CAG1E,MAAM,YAAY,MAAc,aAA4D;AAC1F,MAAI,CAAC,iBAAiB,MACpB,OAAM,IAAI,MAAM,mBAAmB;AAErC,SAAO,iBAAiB,MAAM,SAAS,MAAM,SAAS;;CAGxD,MAAM,kBAAqB,aAAgE;AACzF,MAAI,CAAC,iBAAiB,MACpB,OAAM,IAAI,MAAM,mBAAmB;AAErC,SAAO,iBAAiB,MAAM,eAAe,SAAS;;AAGxD,QAAO;EACL;EACA;EACA;EACA,aAAa,eAAe;AAC1B,OAAI,CAAC,YAAY,MACf,OAAM,IAAI,MAAM,4BAA4B;AAE9C,UAAO,YAAY;IACnB;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;;;AC1IH,SAAgB,aAAa;CAC3B,MAAM,UAAU,OAAsB,gBAAgB;CACtD,MAAM,cAAc,OAAgD,cAAc;CAClF,MAAM,iBAAiB,OAAuB,iBAAiB;AAE/D,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAEnE,KAAI,CAAC,eAAe,CAAC,eACnB,OAAM,IAAI,MAAM,gDAAgD;CAGlE,MAAM,gBAAgB,SAAS,QAAQ,QAAQ,UAAU,MAAM,cAAc;CAG7E,MAAM,gBAAgB,SAAS,QAAQ,QAAQ,WAAW;EACxD,UAAU,EAAE,GAAG,QAAQ,eAAe;EACtC,eAAe,MAAM;EACtB,EAAE;CAEH,MAAM,sBAAsB,eACpB,cAAc,MAAM,SAAS,cAAc,MAAM,eACxD;CAED,MAAM,mBAAmB,OAAO,cAAqC;AACnE,MAAI,cAAc,cAAc,MAC9B;AAGF,MAAI,CAAC,QAAQ,cAAc,WACzB,OAAM,IAAI,MAAM,YAAY,UAAU,sCAAsC;AAG9E,UAAQ,KAAK,uCAAuC;EAEpD,MAAM,EAAE,UAAU,QAAQ,cAAc;EACxC,MAAM,EAAE,QAAQ,IAAI,YAAY,OAAO,IAAI,UAAU,EAAE,KAAK;EAC5D,MAAM,YAAY,IAAI,QAAQ,QAAQ,OAAO,YAAY,MAAM,QAAQ;AAEvE,QAAM,QAAQ,iBAAiB,UAAU;AACzC,iBAAe,UAAU;AAEzB,UAAQ,KAAK,iCAAiC,UAAU,GAAG;;CAG7D,MAAM,qBAAqB,WAAmB,WAAuC;AACnF,UAAQ,kBAAkB,WAAW,OAAO;AAC5C,UAAQ,MAAM,UAAU,WAAW,EAAE,GAAG,OAAO,EAAE;AAGjD,MAAI,cAAc,cAAc,OAAO;AACrC,WAAQ,KAAK,uCAAuC;GACpD,MAAM,EAAE,UAAU,QAAQ,cAAc;GACxC,MAAM,EAAE,QAAQ,IAAI,YAAY,OAAO,IAAI,UAAU,EAAE,KAAK;AAE5D,kBADkB,IAAI,QAAQ,QAAQ,OAAO,YAAY,MAAM,QAAQ,CAC9C;;;CAI7B,MAAM,sBAAsB,cAA4B;AACtD,UAAQ,mBAAmB,UAAU;AACrC,UAAQ,MAAM,UAAU,WAAW,EAAE,GAAG,OAAO,EAAE;AAGjD,MAAI,cAAc,cAAc,OAAO;AACrC,WAAQ,KAAK,uCAAuC;GACpD,MAAM,EAAE,UAAU,QAAQ,cAAc;GACxC,MAAM,EAAE,QAAQ,IAAI,YAAY,OAAO,IAAI,UAAU,EAAE,KAAK;AAE5D,kBADkB,IAAI,QAAQ,QAAQ,OAAO,YAAY,MAAM,QAAQ,CAC9C;;;AAI7B,QAAO;EACL;EACA,eAAe,QAAQ;EACvB;EACA;EACA;EACA;EACD"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/walletManagerPlugin.ts","../src/useWallet.ts","../src/useNetwork.ts"],"sourcesContent":["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 Wallet,\n type StdSignMetadata,\n type StdSignDataResponse\n} from '@txnlab/use-wallet'\nimport algosdk from 'algosdk'\nimport { computed, inject, ref } from 'vue'\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 activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n\n const availableWallets = computed(() => {\n // Access activeNetwork.value to trigger recomputation on network change\n void activeNetwork.value\n return manager.availableWallets.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 emptyTransactionSigner = (\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.emptyTransactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: StdSignMetadata): Promise<StdSignDataResponse> => {\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 availableWallets,\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 emptyTransactionSigner\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@txnlab/use-wallet-vue",
3
- "version": "5.0.0",
3
+ "version": "5.1.0-next.1",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -35,14 +35,14 @@
35
35
  "dist"
36
36
  ],
37
37
  "dependencies": {
38
- "@tanstack/vue-store": "0.9.1",
39
- "@txnlab/use-wallet": "5.0.0"
38
+ "@tanstack/vue-store": "0.11.1",
39
+ "@txnlab/use-wallet": "5.1.0-next.1"
40
40
  },
41
41
  "devDependencies": {
42
- "algosdk": "3.6.0",
43
- "tsdown": "0.21.0",
42
+ "algosdk": "3.8.0",
43
+ "tsdown": "0.23.0",
44
44
  "typescript": "5.9.3",
45
- "vue": "3.5.27"
45
+ "vue": "3.5.43"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "algosdk": "^3.0.0",