@txnlab/use-wallet 1.0.2 → 1.0.4

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.
Files changed (44) hide show
  1. package/README.md +6 -0
  2. package/dist/cjs/clients/algosigner/client.d.ts +1 -1
  3. package/dist/cjs/clients/algosigner/types.d.ts +2 -1
  4. package/dist/cjs/clients/base/base.d.ts +4 -9
  5. package/dist/cjs/clients/defly/client.d.ts +1 -1
  6. package/dist/cjs/clients/defly/types.d.ts +2 -1
  7. package/dist/cjs/clients/exodus/client.d.ts +1 -1
  8. package/dist/cjs/clients/exodus/types.d.ts +2 -1
  9. package/dist/cjs/clients/kmd/client.d.ts +1 -1
  10. package/dist/cjs/clients/kmd/types.d.ts +2 -1
  11. package/dist/cjs/clients/myalgo/client.d.ts +1 -1
  12. package/dist/cjs/clients/myalgo/types.d.ts +2 -1
  13. package/dist/cjs/clients/pera/client.d.ts +1 -1
  14. package/dist/cjs/clients/pera/types.d.ts +2 -1
  15. package/dist/cjs/clients/walletconnect/client.d.ts +2 -3
  16. package/dist/cjs/clients/walletconnect/types.d.ts +2 -1
  17. package/dist/cjs/hooks/useWallet.d.ts +2 -107
  18. package/dist/cjs/index.js +81 -56
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/store/state/walletStore.d.ts +17 -0
  21. package/dist/cjs/types/wallet.d.ts +10 -5
  22. package/dist/cjs/utils/clearAccounts.d.ts +2 -0
  23. package/dist/esm/clients/algosigner/client.d.ts +1 -1
  24. package/dist/esm/clients/algosigner/types.d.ts +2 -1
  25. package/dist/esm/clients/base/base.d.ts +4 -9
  26. package/dist/esm/clients/defly/client.d.ts +1 -1
  27. package/dist/esm/clients/defly/types.d.ts +2 -1
  28. package/dist/esm/clients/exodus/client.d.ts +1 -1
  29. package/dist/esm/clients/exodus/types.d.ts +2 -1
  30. package/dist/esm/clients/kmd/client.d.ts +1 -1
  31. package/dist/esm/clients/kmd/types.d.ts +2 -1
  32. package/dist/esm/clients/myalgo/client.d.ts +1 -1
  33. package/dist/esm/clients/myalgo/types.d.ts +2 -1
  34. package/dist/esm/clients/pera/client.d.ts +1 -1
  35. package/dist/esm/clients/pera/types.d.ts +2 -1
  36. package/dist/esm/clients/walletconnect/client.d.ts +2 -3
  37. package/dist/esm/clients/walletconnect/types.d.ts +2 -1
  38. package/dist/esm/hooks/useWallet.d.ts +2 -107
  39. package/dist/esm/index.js +82 -57
  40. package/dist/esm/store/state/walletStore.d.ts +17 -0
  41. package/dist/esm/types/wallet.d.ts +10 -5
  42. package/dist/esm/utils/clearAccounts.d.ts +2 -0
  43. package/dist/index.d.ts +29 -126
  44. package/package.json +3 -3
@@ -33,3 +33,20 @@ export declare const useWalletStore: import("zustand").UseBoundStore<Omit<Omit<O
33
33
  type: unknown;
34
34
  }>(nextStateOrUpdater: WalletStore | Partial<WalletStore> | ((state: import("immer/dist/internal").WritableDraft<WalletStore>) => void), shouldReplace?: boolean | undefined, action?: A | undefined): void;
35
35
  }>;
36
+ export declare const useHydratedWalletStore: import("zustand").UseBoundStore<Omit<Omit<Omit<import("zustand").StoreApi<WalletStore>, "setState"> & {
37
+ setState(nextStateOrUpdater: WalletStore | Partial<WalletStore> | ((state: import("immer/dist/internal").WritableDraft<WalletStore>) => void), shouldReplace?: boolean | undefined): void;
38
+ }, "persist"> & {
39
+ persist: {
40
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<WalletStore, WalletStore>>) => void;
41
+ clearStorage: () => void;
42
+ rehydrate: () => Promise<void>;
43
+ hasHydrated: () => boolean;
44
+ onHydrate: (fn: (state: WalletStore) => void) => () => void;
45
+ onFinishHydration: (fn: (state: WalletStore) => void) => () => void;
46
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<WalletStore, WalletStore>>;
47
+ };
48
+ }, "setState"> & {
49
+ setState<A extends string | {
50
+ type: unknown;
51
+ }>(nextStateOrUpdater: WalletStore | Partial<WalletStore> | ((state: import("immer/dist/internal").WritableDraft<WalletStore>) => void), shouldReplace?: boolean | undefined, action?: A | undefined): void;
52
+ }>;
@@ -6,16 +6,15 @@ export interface Account {
6
6
  address: string;
7
7
  }
8
8
  export declare type Provider = {
9
- id: PROVIDER_ID;
10
- name: string;
11
- icon: string;
9
+ accounts: Account[];
12
10
  isActive: boolean;
13
11
  isConnected: boolean;
14
- isWalletConnect: boolean;
15
12
  connect: () => Promise<void>;
16
13
  disconnect: () => Promise<void>;
17
14
  reconnect: () => Promise<void>;
18
- setActive: () => Promise<void>;
15
+ setActiveProvider: () => Promise<void>;
16
+ setActiveAccount: (account: string) => Promise<void>;
17
+ metadata: Metadata;
19
18
  };
20
19
  export declare type Asset = {
21
20
  amount: number;
@@ -43,5 +42,11 @@ declare type ExtendValues<Type> = {
43
42
  export declare type Wallet = ExtendValues<WalletProvider> & {
44
43
  accounts: Account[];
45
44
  };
45
+ export declare type Metadata = {
46
+ id: PROVIDER_ID;
47
+ name: string;
48
+ icon: string;
49
+ isWalletConnect: boolean;
50
+ };
46
51
  export declare type WalletClient = BaseWallet;
47
52
  export { PROVIDER_ID };
@@ -0,0 +1,2 @@
1
+ import { PROVIDER_ID } from "../types";
2
+ export declare const clearAccounts: (id: PROVIDER_ID) => void;
@@ -5,7 +5,7 @@ import type { AlgoSignerTransaction, AlgoSignerClientConstructor, InitParams } f
5
5
  declare class AlgoSignerClient extends BaseWallet {
6
6
  #private;
7
7
  network: Network;
8
- constructor({ client, algosdk, algodClient, network, }: AlgoSignerClientConstructor);
8
+ constructor({ metadata, client, algosdk, algodClient, network, }: AlgoSignerClientConstructor);
9
9
  static metadata: {
10
10
  id: PROVIDER_ID;
11
11
  name: string;
@@ -1,6 +1,6 @@
1
1
  import type _algosdk from "algosdk";
2
2
  import { PROVIDER_ID } from "../../constants";
3
- import type { AlgodClientOptions, Network } from "../../types";
3
+ import type { AlgodClientOptions, Network, Metadata } from "../../types";
4
4
  export declare type WindowExtended = {
5
5
  AlgoSigner: AlgoSigner;
6
6
  } & Window & typeof globalThis;
@@ -27,6 +27,7 @@ export declare type AlgoSigner = {
27
27
  };
28
28
  };
29
29
  export declare type AlgoSignerClientConstructor = {
30
+ metadata: Metadata;
30
31
  client: AlgoSigner;
31
32
  id: PROVIDER_ID;
32
33
  algosdk: typeof _algosdk;
@@ -1,22 +1,17 @@
1
1
  import type _algosdk from "algosdk";
2
- import { PROVIDER_ID } from "../../constants";
3
- import type { Asset, Wallet, AccountInfo, TransactionsArray } from "../../types";
2
+ import type { Asset, Wallet, AccountInfo, TransactionsArray, Metadata } from "../../types";
4
3
  declare abstract class BaseClient {
5
4
  algosdk: typeof _algosdk;
6
5
  algodClient: _algosdk.Algodv2;
7
6
  keepWCAlive: HTMLAudioElement;
8
- static metadata: {
9
- id: PROVIDER_ID;
10
- name: string;
11
- icon: string;
12
- isWalletConnect: boolean;
13
- };
7
+ metadata: Metadata;
8
+ static metadata: Metadata;
14
9
  abstract connect(onDisconnect: () => void): Promise<Wallet>;
15
10
  abstract disconnect(): Promise<void>;
16
11
  abstract reconnect(onDisconnect: () => void): Promise<Wallet | null>;
17
12
  abstract signTransactions(connectedAccounts: string[], transactions: Array<Uint8Array>): Promise<Uint8Array[]>;
18
13
  abstract signEncodedTransactions(transactions: TransactionsArray): Promise<Uint8Array[]>;
19
- protected constructor(algosdk: typeof _algosdk, algodClient: _algosdk.Algodv2);
14
+ protected constructor(metadata: Metadata, algosdk: typeof _algosdk, algodClient: _algosdk.Algodv2);
20
15
  healthCheck(): Promise<{}>;
21
16
  getAccountInfo(address: string): Promise<AccountInfo>;
22
17
  getAssets(address: string): Promise<Asset[]>;
@@ -7,7 +7,7 @@ import { DeflyTransaction, InitParams, DeflyWalletClientConstructor } from "./ty
7
7
  declare class DeflyWalletClient extends BaseWallet {
8
8
  #private;
9
9
  network: Network;
10
- constructor({ client, algosdk, algodClient, network, }: DeflyWalletClientConstructor);
10
+ constructor({ metadata, client, algosdk, algodClient, network, }: DeflyWalletClientConstructor);
11
11
  static metadata: {
12
12
  id: PROVIDER_ID;
13
13
  name: string;
@@ -1,5 +1,5 @@
1
1
  import type { Transaction } from "algosdk";
2
- import type { AlgodClientOptions, Network } from "../../types";
2
+ import type { AlgodClientOptions, Network, Metadata } from "../../types";
3
3
  import type { DeflyWalletConnect } from "@blockshake/defly-connect";
4
4
  import type _algosdk from "algosdk";
5
5
  export declare type ClientOptions = {
@@ -22,6 +22,7 @@ export declare type DeflyTransaction = {
22
22
  signers?: string[];
23
23
  };
24
24
  export declare type DeflyWalletClientConstructor = {
25
+ metadata: Metadata;
25
26
  client: DeflyWalletConnect;
26
27
  algosdk: typeof _algosdk;
27
28
  algodClient: _algosdk.Algodv2;
@@ -5,7 +5,7 @@ import { InitParams, ExodusClientConstructor } from "./types";
5
5
  declare class ExodusClient extends BaseWallet {
6
6
  #private;
7
7
  network: Network;
8
- constructor({ client, algosdk, algodClient, onlyIfTrusted, network, }: ExodusClientConstructor);
8
+ constructor({ metadata, client, algosdk, algodClient, onlyIfTrusted, network, }: ExodusClientConstructor);
9
9
  static metadata: {
10
10
  id: PROVIDER_ID;
11
11
  name: string;
@@ -1,6 +1,6 @@
1
1
  import { PROVIDER_ID } from "../../constants";
2
2
  import type _algosdk from "algosdk";
3
- import type { AlgodClientOptions, Network } from "../../types";
3
+ import type { AlgodClientOptions, Network, Metadata } from "../../types";
4
4
  export declare type ClientOptions = {
5
5
  onlyIfTrusted: boolean;
6
6
  };
@@ -25,6 +25,7 @@ export declare type Exodus = {
25
25
  signTransaction(transactions: Bytes[]): Promise<Bytes[]>;
26
26
  };
27
27
  export declare type ExodusClientConstructor = {
28
+ metadata: Metadata;
28
29
  client: Exodus;
29
30
  id: PROVIDER_ID;
30
31
  algosdk: typeof _algosdk;
@@ -7,7 +7,7 @@ declare class KMDWalletClient extends BaseWallet {
7
7
  walletId: string;
8
8
  id: PROVIDER_ID;
9
9
  network: Network;
10
- constructor({ client, id, wallet, password, algosdk, algodClient, network, }: KMDWalletClientConstructor);
10
+ constructor({ metadata, client, id, wallet, password, algosdk, algodClient, network, }: KMDWalletClientConstructor);
11
11
  static metadata: {
12
12
  id: PROVIDER_ID;
13
13
  name: string;
@@ -1,5 +1,5 @@
1
1
  import type _algosdk from "algosdk";
2
- import type { AlgodClientOptions, Network } from "../../types";
2
+ import type { AlgodClientOptions, Network, Metadata } from "../../types";
3
3
  import { PROVIDER_ID } from "../../constants";
4
4
  export declare type ClientOptions = {
5
5
  wallet: string;
@@ -22,6 +22,7 @@ export interface InitWalletHandle {
22
22
  error?: boolean;
23
23
  }
24
24
  export declare type KMDWalletClientConstructor = {
25
+ metadata: Metadata;
25
26
  client: _algosdk.Kmd;
26
27
  id: PROVIDER_ID;
27
28
  algosdk: typeof _algosdk;
@@ -9,7 +9,7 @@ import { MyAlgoWalletClientConstructor, InitParams } from "./types";
9
9
  declare class MyAlgoWalletClient extends BaseWallet {
10
10
  #private;
11
11
  network: Network;
12
- constructor({ client, algosdk, algodClient, network, }: MyAlgoWalletClientConstructor);
12
+ constructor({ metadata, client, algosdk, algodClient, network, }: MyAlgoWalletClientConstructor);
13
13
  static metadata: {
14
14
  id: PROVIDER_ID;
15
15
  name: string;
@@ -4,8 +4,9 @@
4
4
  */
5
5
  import type _MyAlgoConnect from "@randlabs/myalgo-connect";
6
6
  import type _algosdk from "algosdk";
7
- import { AlgodClientOptions, Network } from "../../types";
7
+ import { AlgodClientOptions, Network, Metadata } from "../../types";
8
8
  export declare type MyAlgoWalletClientConstructor = {
9
+ metadata: Metadata;
9
10
  client: _MyAlgoConnect;
10
11
  algosdk: typeof _algosdk;
11
12
  algodClient: _algosdk.Algodv2;
@@ -5,7 +5,7 @@ import { PeraTransaction, PeraWalletClientConstructor, InitParams } from "./type
5
5
  declare class PeraWalletClient extends BaseWallet {
6
6
  #private;
7
7
  network: Network;
8
- constructor({ client, algosdk, algodClient, network, }: PeraWalletClientConstructor);
8
+ constructor({ metadata, client, algosdk, algodClient, network, }: PeraWalletClientConstructor);
9
9
  static metadata: {
10
10
  id: PROVIDER_ID;
11
11
  name: string;
@@ -1,7 +1,7 @@
1
1
  import type _algosdk from "algosdk";
2
2
  import type { PeraWalletConnect } from "@perawallet/connect";
3
3
  import type { Transaction } from "algosdk";
4
- import type { AlgodClientOptions, Network } from "../../types";
4
+ import type { AlgodClientOptions, Network, Metadata } from "../../types";
5
5
  export declare type ClientOptions = {
6
6
  bridge?: string;
7
7
  deep_link?: string;
@@ -22,6 +22,7 @@ export interface PeraTransaction {
22
22
  signers?: string[];
23
23
  }
24
24
  export declare type PeraWalletClientConstructor = {
25
+ metadata: Metadata;
25
26
  client: PeraWalletConnect;
26
27
  algosdk: typeof _algosdk;
27
28
  algodClient: _algosdk.Algodv2;
@@ -1,12 +1,11 @@
1
- import type { Wallet } from "../../types";
2
1
  import { PROVIDER_ID } from "../../constants";
3
2
  import BaseWallet from "../base";
4
- import { TransactionsArray, Network } from "../../types";
3
+ import { Wallet, TransactionsArray, Network } from "../../types";
5
4
  import { WalletConnectClientConstructor, InitParams, WalletConnectTransaction } from "./types";
6
5
  declare class WalletConnectClient extends BaseWallet {
7
6
  #private;
8
7
  network: Network;
9
- constructor({ client, algosdk, algodClient, network, }: WalletConnectClientConstructor);
8
+ constructor({ metadata, client, algosdk, algodClient, network, }: WalletConnectClientConstructor);
10
9
  static metadata: {
11
10
  id: PROVIDER_ID;
12
11
  name: string;
@@ -1,7 +1,7 @@
1
1
  import type _algosdk from "algosdk";
2
2
  import type WalletConnect from "@walletconnect/client";
3
3
  import QRCodeModal from "algorand-walletconnect-qrcode-modal";
4
- import type { AlgodClientOptions, Network } from "../../types";
4
+ import type { AlgodClientOptions, Network, Metadata } from "../../types";
5
5
  export interface IClientMeta {
6
6
  description: string;
7
7
  url: string;
@@ -47,6 +47,7 @@ export declare type InitParams = {
47
47
  network?: Network;
48
48
  };
49
49
  export declare type WalletConnectClientConstructor = {
50
+ metadata: Metadata;
50
51
  client: WalletConnect;
51
52
  algosdk: typeof _algosdk;
52
53
  algodClient: _algosdk.Algodv2;
@@ -1,5 +1,5 @@
1
1
  import type algosdk from "algosdk";
2
- import { PROVIDER_ID, TransactionsArray } from "../types";
2
+ import { PROVIDER_ID, TransactionsArray, Provider } from "../types";
3
3
  export { PROVIDER_ID };
4
4
  export default function useWallet(): {
5
5
  clients: Partial<{
@@ -11,112 +11,7 @@ export default function useWallet(): {
11
11
  exodus: Promise<import("../clients/base/base").default | null>;
12
12
  walletconnect: Promise<import("../clients/base/base").default | null>;
13
13
  }> | null;
14
- providers: ({
15
- accounts: import("../types").Account[];
16
- isActive: boolean;
17
- isConnected: boolean;
18
- connect: () => Promise<void>;
19
- disconnect: () => Promise<void>;
20
- reconnect: () => Promise<void>;
21
- setActiveProvider: () => Promise<void>;
22
- setActiveAccount: (account: string) => Promise<void>;
23
- metadata: {
24
- id: PROVIDER_ID;
25
- name: string;
26
- icon: string;
27
- isWalletConnect: boolean;
28
- };
29
- } | {
30
- accounts: import("../types").Account[];
31
- isActive: boolean;
32
- isConnected: boolean;
33
- connect: () => Promise<void>;
34
- disconnect: () => Promise<void>;
35
- reconnect: () => Promise<void>;
36
- setActiveProvider: () => Promise<void>;
37
- setActiveAccount: (account: string) => Promise<void>;
38
- metadata: {
39
- id: PROVIDER_ID;
40
- name: string;
41
- icon: string;
42
- isWalletConnect: boolean;
43
- };
44
- } | {
45
- accounts: import("../types").Account[];
46
- isActive: boolean;
47
- isConnected: boolean;
48
- connect: () => Promise<void>;
49
- disconnect: () => Promise<void>;
50
- reconnect: () => Promise<void>;
51
- setActiveProvider: () => Promise<void>;
52
- setActiveAccount: (account: string) => Promise<void>;
53
- metadata: {
54
- id: PROVIDER_ID;
55
- name: string;
56
- icon: string;
57
- isWalletConnect: boolean;
58
- };
59
- } | {
60
- accounts: import("../types").Account[];
61
- isActive: boolean;
62
- isConnected: boolean;
63
- connect: () => Promise<void>;
64
- disconnect: () => Promise<void>;
65
- reconnect: () => Promise<void>;
66
- setActiveProvider: () => Promise<void>;
67
- setActiveAccount: (account: string) => Promise<void>;
68
- metadata: {
69
- id: PROVIDER_ID;
70
- name: string;
71
- icon: string;
72
- isWalletConnect: boolean;
73
- };
74
- } | {
75
- accounts: import("../types").Account[];
76
- isActive: boolean;
77
- isConnected: boolean;
78
- connect: () => Promise<void>;
79
- disconnect: () => Promise<void>;
80
- reconnect: () => Promise<void>;
81
- setActiveProvider: () => Promise<void>;
82
- setActiveAccount: (account: string) => Promise<void>;
83
- metadata: {
84
- id: PROVIDER_ID;
85
- name: string;
86
- icon: string;
87
- isWalletConnect: boolean;
88
- };
89
- } | {
90
- accounts: import("../types").Account[];
91
- isActive: boolean;
92
- isConnected: boolean;
93
- connect: () => Promise<void>;
94
- disconnect: () => Promise<void>;
95
- reconnect: () => Promise<void>;
96
- setActiveProvider: () => Promise<void>;
97
- setActiveAccount: (account: string) => Promise<void>;
98
- metadata: {
99
- id: PROVIDER_ID;
100
- name: string;
101
- icon: string;
102
- isWalletConnect: boolean;
103
- };
104
- } | {
105
- accounts: import("../types").Account[];
106
- isActive: boolean;
107
- isConnected: boolean;
108
- connect: () => Promise<void>;
109
- disconnect: () => Promise<void>;
110
- reconnect: () => Promise<void>;
111
- setActiveProvider: () => Promise<void>;
112
- setActiveAccount: (account: string) => Promise<void>;
113
- metadata: {
114
- id: PROVIDER_ID;
115
- name: string;
116
- icon: string;
117
- isWalletConnect: boolean;
118
- };
119
- })[] | null;
14
+ providers: Provider[] | null;
120
15
  connectedAccounts: import("../types").Account[];
121
16
  connectedActiveAccounts: import("../types").Account[];
122
17
  activeAccount: import("../types").Account | null;