@txnlab/use-wallet-svelte 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,24 +1,22 @@
1
1
  import algosdk from "algosdk";
2
- import * as _txnlab_use_wallet0 from "@txnlab/use-wallet";
3
2
  import { AlgodConfig, NetworkId, StdSignDataResponse, StdSignMetadata, WalletAccount, WalletKey, WalletManager, WalletMetadata } from "@txnlab/use-wallet";
4
3
  export * from "@txnlab/use-wallet";
5
-
6
4
  //#region src/index.d.ts
7
- declare const useWalletContext: (manager: WalletManager) => void;
8
- declare const useWalletManager: () => WalletManager;
9
- declare const useNetwork: () => {
5
+ export declare const useWalletContext: (manager: WalletManager) => void;
6
+ export declare const useWalletManager: () => WalletManager;
7
+ export declare const useNetwork: () => {
10
8
  activeNetwork: {
11
9
  readonly current: string;
12
10
  };
13
- networkConfig: Record<string, _txnlab_use_wallet0.NetworkConfig>;
11
+ networkConfig: Record<string, import("@txnlab/use-wallet").NetworkConfig>;
14
12
  activeNetworkConfig: {
15
- readonly current: _txnlab_use_wallet0.NetworkConfig;
13
+ readonly current: import("@txnlab/use-wallet").NetworkConfig;
16
14
  };
17
15
  setActiveNetwork: (networkId: NetworkId | string) => Promise<void>;
18
16
  updateAlgodConfig: (networkId: string, config: Partial<AlgodConfig>) => void;
19
17
  resetNetworkConfig: (networkId: string) => void;
20
18
  };
21
- interface Wallet {
19
+ export interface Wallet {
22
20
  id: string;
23
21
  walletKey: WalletKey;
24
22
  metadata: WalletMetadata;
@@ -34,7 +32,7 @@ interface Wallet {
34
32
  setActive: () => void;
35
33
  setActiveAccount: (address: string) => void;
36
34
  }
37
- declare const useWallet: () => {
35
+ export declare const useWallet: () => {
38
36
  wallets: Wallet[];
39
37
  availableWallets: {
40
38
  readonly current: Wallet[];
@@ -60,7 +58,7 @@ declare const useWallet: () => {
60
58
  withPrivateKey: <T>(callback: (secretKey: Uint8Array) => Promise<T>) => Promise<T>;
61
59
  signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
62
60
  transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
61
+ emptyTransactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
63
62
  };
64
63
  //#endregion
65
- export { Wallet, useNetwork, useWallet, useWalletContext, useWalletManager };
66
64
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -112,6 +112,11 @@ const useWallet = () => {
112
112
  if (!wallet) throw new Error("No active wallet");
113
113
  return wallet.transactionSigner(txnGroup, indexesToSign);
114
114
  };
115
+ const emptyTransactionSigner = (txnGroup, indexesToSign) => {
116
+ const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current);
117
+ if (!wallet) throw new Error("No active wallet");
118
+ return wallet.emptyTransactionSigner(txnGroup, indexesToSign);
119
+ };
115
120
  const signData = (data, metadata) => {
116
121
  const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current);
117
122
  if (!wallet) throw new Error("No active wallet");
@@ -135,7 +140,8 @@ const useWallet = () => {
135
140
  signData,
136
141
  withPrivateKey,
137
142
  signTransactions,
138
- transactionSigner
143
+ transactionSigner,
144
+ emptyTransactionSigner
139
145
  };
140
146
  };
141
147
  //#endregion
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import { useStore } from '@tanstack/svelte-store'\nimport algosdk from 'algosdk'\nimport { getContext, setContext } from 'svelte'\nimport {\n type AlgodConfig,\n BaseWallet,\n NetworkId,\n type StdSignDataResponse,\n type StdSignMetadata,\n type WalletAccount,\n type WalletKey,\n WalletManager,\n type WalletMetadata\n} from '@txnlab/use-wallet'\n\nexport * from '@txnlab/use-wallet'\n\nexport const useWalletContext = (manager: WalletManager) => {\n setContext('walletManager', manager)\n\n manager.resumeSessions().catch((error) => {\n console.error('Error resuming sessions:', error)\n })\n}\n\nexport const useWalletManager = (): WalletManager => {\n const manager: WalletManager = getContext('walletManager')\n if (!manager) {\n throw new Error('useWalletManager must be used within a useWalletContext')\n }\n return manager\n}\n\nexport const useNetwork = () => {\n const manager = useWalletManager()\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n const activeNetworkConfig = useStore(\n manager.store,\n (state) => state.networkConfig[activeNetwork.current]\n )\n\n const setActiveNetwork = async (networkId: NetworkId | string): Promise<void> => {\n if (networkId === activeNetwork.current) {\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(`[Svelte] 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\n manager.store.setState((state) => ({\n ...state,\n activeNetwork: networkId,\n algodClient: newClient\n }))\n\n console.info(`[Svelte] ✅ 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.current) {\n console.info(`[Svelte] 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\n manager.store.setState((state) => ({\n ...state,\n algodClient: newClient\n }))\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.current) {\n console.info(`[Svelte] 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\n manager.store.setState((state) => ({\n ...state,\n algodClient: newClient\n }))\n }\n }\n\n return {\n activeNetwork,\n networkConfig: manager.networkConfig,\n activeNetworkConfig,\n setActiveNetwork,\n updateAlgodConfig,\n resetNetworkConfig\n }\n}\n\nexport interface Wallet {\n id: string\n walletKey: WalletKey\n metadata: WalletMetadata\n accounts: { current: WalletAccount[] | undefined }\n isConnected: () => boolean\n isActive: () => boolean\n canSignData: boolean\n canUsePrivateKey: 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 manager = useWalletManager()\n const walletStore = useStore(manager.store, (state) => state.wallets)\n\n const transformToWallet = (wallet: BaseWallet): Wallet => {\n return {\n id: wallet.id,\n walletKey: wallet.walletKey,\n metadata: wallet.metadata,\n accounts: useStore(manager.store, (state) => state.wallets[wallet.walletKey]?.accounts),\n isConnected: () => !!walletStore.current[wallet.walletKey],\n isActive: () => wallet.walletKey === activeWalletId.current,\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 = [...manager.wallets].map(transformToWallet)\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n const availableWallets = {\n get current() {\n // Access activeNetwork.current to ensure reactivity on network change\n void activeNetwork.current\n return wallets.filter((w) =>\n manager.availableWallets.some((aw) => aw.walletKey === w.walletKey)\n )\n }\n }\n const activeWalletId = useStore(manager.store, (state) => state.activeWallet)\n const managerStatus = useStore(manager.store, (state) => state.managerStatus)\n const isReady = () => managerStatus.current === 'ready'\n const algodClient = useStore(manager.store, (state) => state.algodClient)\n const activeWallet = () => wallets.find((w) => w.walletKey === activeWalletId.current)\n const activeWalletAccounts = useStore(\n manager.store,\n (state) => state.wallets[activeWalletId.current!]?.accounts\n )\n const activeWalletAddresses = useStore(manager.store, (state) =>\n state.wallets[activeWalletId.current!]?.accounts.map((account) => account.address)\n )\n const activeAccount = useStore(\n manager.store,\n (state) => state.wallets[activeWalletId.current!]?.activeAccount\n )\n const activeAddress = useStore(\n manager.store,\n (state) => state.wallets[activeWalletId.current!]?.activeAccount?.address\n )\n\n const signTransactions = <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.signTransactions(txnGroup, indexesToSign)\n }\n\n const transactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.transactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: StdSignMetadata): Promise<StdSignDataResponse> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.signData(data, metadata)\n }\n\n const withPrivateKey = <T>(callback: (secretKey: Uint8Array) => Promise<T>): Promise<T> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.withPrivateKey(callback)\n }\n\n return {\n wallets,\n availableWallets,\n isReady,\n algodClient,\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n withPrivateKey,\n signTransactions,\n transactionSigner\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import { useStore } from '@tanstack/svelte-store'\nimport algosdk from 'algosdk'\nimport { getContext, setContext } from 'svelte'\nimport {\n type AlgodConfig,\n BaseWallet,\n NetworkId,\n type StdSignDataResponse,\n type StdSignMetadata,\n type WalletAccount,\n type WalletKey,\n WalletManager,\n type WalletMetadata\n} from '@txnlab/use-wallet'\n\nexport * from '@txnlab/use-wallet'\n\nexport const useWalletContext = (manager: WalletManager) => {\n setContext('walletManager', manager)\n\n manager.resumeSessions().catch((error) => {\n console.error('Error resuming sessions:', error)\n })\n}\n\nexport const useWalletManager = (): WalletManager => {\n const manager: WalletManager = getContext('walletManager')\n if (!manager) {\n throw new Error('useWalletManager must be used within a useWalletContext')\n }\n return manager\n}\n\nexport const useNetwork = () => {\n const manager = useWalletManager()\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n const activeNetworkConfig = useStore(\n manager.store,\n (state) => state.networkConfig[activeNetwork.current]\n )\n\n const setActiveNetwork = async (networkId: NetworkId | string): Promise<void> => {\n if (networkId === activeNetwork.current) {\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(`[Svelte] 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\n manager.store.setState((state) => ({\n ...state,\n activeNetwork: networkId,\n algodClient: newClient\n }))\n\n console.info(`[Svelte] ✅ 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.current) {\n console.info(`[Svelte] 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\n manager.store.setState((state) => ({\n ...state,\n algodClient: newClient\n }))\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.current) {\n console.info(`[Svelte] 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\n manager.store.setState((state) => ({\n ...state,\n algodClient: newClient\n }))\n }\n }\n\n return {\n activeNetwork,\n networkConfig: manager.networkConfig,\n activeNetworkConfig,\n setActiveNetwork,\n updateAlgodConfig,\n resetNetworkConfig\n }\n}\n\nexport interface Wallet {\n id: string\n walletKey: WalletKey\n metadata: WalletMetadata\n accounts: { current: WalletAccount[] | undefined }\n isConnected: () => boolean\n isActive: () => boolean\n canSignData: boolean\n canUsePrivateKey: 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 manager = useWalletManager()\n const walletStore = useStore(manager.store, (state) => state.wallets)\n\n const transformToWallet = (wallet: BaseWallet): Wallet => {\n return {\n id: wallet.id,\n walletKey: wallet.walletKey,\n metadata: wallet.metadata,\n accounts: useStore(manager.store, (state) => state.wallets[wallet.walletKey]?.accounts),\n isConnected: () => !!walletStore.current[wallet.walletKey],\n isActive: () => wallet.walletKey === activeWalletId.current,\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 = [...manager.wallets].map(transformToWallet)\n const activeNetwork = useStore(manager.store, (state) => state.activeNetwork)\n const availableWallets = {\n get current() {\n // Access activeNetwork.current to ensure reactivity on network change\n void activeNetwork.current\n return wallets.filter((w) =>\n manager.availableWallets.some((aw) => aw.walletKey === w.walletKey)\n )\n }\n }\n const activeWalletId = useStore(manager.store, (state) => state.activeWallet)\n const managerStatus = useStore(manager.store, (state) => state.managerStatus)\n const isReady = () => managerStatus.current === 'ready'\n const algodClient = useStore(manager.store, (state) => state.algodClient)\n const activeWallet = () => wallets.find((w) => w.walletKey === activeWalletId.current)\n const activeWalletAccounts = useStore(\n manager.store,\n (state) => state.wallets[activeWalletId.current!]?.accounts\n )\n const activeWalletAddresses = useStore(manager.store, (state) =>\n state.wallets[activeWalletId.current!]?.accounts.map((account) => account.address)\n )\n const activeAccount = useStore(\n manager.store,\n (state) => state.wallets[activeWalletId.current!]?.activeAccount\n )\n const activeAddress = useStore(\n manager.store,\n (state) => state.wallets[activeWalletId.current!]?.activeAccount?.address\n )\n\n const signTransactions = <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.signTransactions(txnGroup, indexesToSign)\n }\n\n const transactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.transactionSigner(txnGroup, indexesToSign)\n }\n\n const emptyTransactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ): Promise<Uint8Array[]> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.emptyTransactionSigner(txnGroup, indexesToSign)\n }\n\n const signData = (data: string, metadata: StdSignMetadata): Promise<StdSignDataResponse> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.signData(data, metadata)\n }\n\n const withPrivateKey = <T>(callback: (secretKey: Uint8Array) => Promise<T>): Promise<T> => {\n const wallet = manager.wallets.find((w) => w.walletKey === activeWalletId.current)\n if (!wallet) {\n throw new Error('No active wallet')\n }\n return wallet.withPrivateKey(callback)\n }\n\n return {\n wallets,\n availableWallets,\n isReady,\n algodClient,\n activeWallet,\n activeWalletAccounts,\n activeWalletAddresses,\n activeAccount,\n activeAddress,\n signData,\n withPrivateKey,\n signTransactions,\n transactionSigner,\n emptyTransactionSigner\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@txnlab/use-wallet-svelte",
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/svelte-store": "0.10.1",
39
- "@txnlab/use-wallet": "5.0.0"
38
+ "@tanstack/svelte-store": "0.12.1",
39
+ "@txnlab/use-wallet": "5.1.0-next.1"
40
40
  },
41
41
  "devDependencies": {
42
- "@testing-library/svelte": "5.3.1",
43
- "algosdk": "3.6.0",
44
- "svelte": "5.49.1",
45
- "tsdown": "0.21.0",
42
+ "@testing-library/svelte": "5.4.2",
43
+ "algosdk": "3.8.0",
44
+ "svelte": "5.57.0",
45
+ "tsdown": "0.23.0",
46
46
  "typescript": "5.9.3"
47
47
  },
48
48
  "peerDependencies": {