@txnlab/use-wallet 1.3.1 → 2.0.0-alpha.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/README.md +490 -188
- package/dist/cjs/index.js +231 -129
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jest.config.d.ts +7 -0
- package/dist/cjs/src/clients/algosigner/client.d.ts +3 -3
- package/dist/cjs/src/clients/algosigner/types.d.ts +2 -8
- package/dist/cjs/src/clients/base/base.d.ts +3 -2
- package/dist/cjs/src/clients/base/index.d.ts +2 -2
- package/dist/cjs/src/clients/daffi/client.d.ts +5 -4
- package/dist/cjs/src/clients/daffi/types.d.ts +5 -7
- package/dist/cjs/src/clients/defly/client.d.ts +6 -5
- package/dist/cjs/src/clients/defly/types.d.ts +5 -7
- package/dist/cjs/src/clients/exodus/client.d.ts +6 -5
- package/dist/cjs/src/clients/exodus/types.d.ts +5 -10
- package/dist/cjs/src/clients/index.d.ts +1 -1
- package/dist/cjs/src/clients/kmd/client.d.ts +4 -5
- package/dist/cjs/src/clients/kmd/types.d.ts +4 -9
- package/dist/cjs/src/clients/mnemonic/client.d.ts +4 -5
- package/dist/cjs/src/clients/mnemonic/types.d.ts +2 -9
- package/dist/cjs/src/clients/myalgo/client.d.ts +6 -5
- package/dist/cjs/src/clients/myalgo/types.d.ts +10 -12
- package/dist/cjs/src/clients/pera/client.d.ts +6 -5
- package/dist/cjs/src/clients/pera/types.d.ts +5 -7
- package/dist/cjs/src/clients/{walletconnect → walletconnect2}/client.d.ts +8 -7
- package/dist/cjs/src/clients/walletconnect2/constants.d.ts +6 -0
- package/dist/cjs/src/clients/walletconnect2/index.d.ts +2 -0
- package/dist/cjs/src/clients/walletconnect2/types.d.ts +38 -0
- package/dist/cjs/src/clients/walletconnect2/utils.d.ts +2 -0
- package/dist/cjs/src/hooks/index.d.ts +1 -0
- package/dist/cjs/src/hooks/useInitializeProviders.d.ts +9 -0
- package/dist/cjs/src/hooks/useInitializeProviders.test.d.ts +4 -0
- package/dist/cjs/src/hooks/useWallet.d.ts +4 -13
- package/dist/cjs/src/hooks/useWallet.test.d.ts +4 -0
- package/dist/cjs/src/index.d.ts +1 -1
- package/dist/cjs/src/store/state/clientStore.d.ts +2 -23
- package/dist/cjs/src/testUtils/createWrapper.d.ts +6 -0
- package/dist/cjs/src/testUtils/mockAccounts.d.ts +3 -0
- package/dist/cjs/src/testUtils/mockClients.d.ts +33 -0
- package/dist/cjs/src/types/index.d.ts +1 -0
- package/dist/cjs/src/types/node.d.ts +2 -1
- package/dist/cjs/src/types/providers.d.ts +71 -0
- package/dist/cjs/src/types/wallet.d.ts +5 -3
- package/dist/cjs/src/utils/clearAccounts.d.ts +1 -1
- package/dist/cjs/src/utils/encodeNFDTransactionArray.spec.d.ts +1 -0
- package/dist/cjs/src/utils/initializeProviders.d.ts +2 -12
- package/dist/cjs/src/utils/initializeProviders.test.d.ts +4 -0
- package/dist/cjs/src/utils/providers.d.ts +1 -1
- package/dist/cjs/src/utils/providers.spec.d.ts +1 -0
- package/dist/cjs/src/utils/reconnectProviders.d.ts +1 -5
- package/dist/cjs/src/utils/reconnectProviders.test.d.ts +1 -0
- package/dist/cjs/src/utils/types.d.ts +2 -0
- package/dist/esm/index.js +231 -130
- package/dist/esm/jest.config.d.ts +7 -0
- package/dist/esm/src/clients/algosigner/client.d.ts +3 -3
- package/dist/esm/src/clients/algosigner/types.d.ts +2 -8
- package/dist/esm/src/clients/base/base.d.ts +3 -2
- package/dist/esm/src/clients/base/index.d.ts +2 -2
- package/dist/esm/src/clients/daffi/client.d.ts +5 -4
- package/dist/esm/src/clients/daffi/types.d.ts +5 -7
- package/dist/esm/src/clients/defly/client.d.ts +6 -5
- package/dist/esm/src/clients/defly/types.d.ts +5 -7
- package/dist/esm/src/clients/exodus/client.d.ts +6 -5
- package/dist/esm/src/clients/exodus/types.d.ts +5 -10
- package/dist/esm/src/clients/index.d.ts +1 -1
- package/dist/esm/src/clients/kmd/client.d.ts +4 -5
- package/dist/esm/src/clients/kmd/types.d.ts +4 -9
- package/dist/esm/src/clients/mnemonic/client.d.ts +4 -5
- package/dist/esm/src/clients/mnemonic/types.d.ts +2 -9
- package/dist/esm/src/clients/myalgo/client.d.ts +6 -5
- package/dist/esm/src/clients/myalgo/types.d.ts +10 -12
- package/dist/esm/src/clients/pera/client.d.ts +6 -5
- package/dist/esm/src/clients/pera/types.d.ts +5 -7
- package/dist/esm/src/clients/{walletconnect → walletconnect2}/client.d.ts +8 -7
- package/dist/esm/src/clients/walletconnect2/constants.d.ts +6 -0
- package/dist/esm/src/clients/walletconnect2/index.d.ts +2 -0
- package/dist/esm/src/clients/walletconnect2/types.d.ts +38 -0
- package/dist/esm/src/clients/walletconnect2/utils.d.ts +2 -0
- package/dist/esm/src/hooks/index.d.ts +1 -0
- package/dist/esm/src/hooks/useInitializeProviders.d.ts +9 -0
- package/dist/esm/src/hooks/useInitializeProviders.test.d.ts +4 -0
- package/dist/esm/src/hooks/useWallet.d.ts +4 -13
- package/dist/esm/src/hooks/useWallet.test.d.ts +4 -0
- package/dist/esm/src/index.d.ts +1 -1
- package/dist/esm/src/store/state/clientStore.d.ts +2 -23
- package/dist/esm/src/testUtils/createWrapper.d.ts +6 -0
- package/dist/esm/src/testUtils/mockAccounts.d.ts +3 -0
- package/dist/esm/src/testUtils/mockClients.d.ts +33 -0
- package/dist/esm/src/types/index.d.ts +1 -0
- package/dist/esm/src/types/node.d.ts +2 -1
- package/dist/esm/src/types/providers.d.ts +71 -0
- package/dist/esm/src/types/wallet.d.ts +5 -3
- package/dist/esm/src/utils/clearAccounts.d.ts +1 -1
- package/dist/esm/src/utils/encodeNFDTransactionArray.spec.d.ts +1 -0
- package/dist/esm/src/utils/initializeProviders.d.ts +2 -12
- package/dist/esm/src/utils/initializeProviders.test.d.ts +4 -0
- package/dist/esm/src/utils/providers.d.ts +1 -1
- package/dist/esm/src/utils/providers.spec.d.ts +1 -0
- package/dist/esm/src/utils/reconnectProviders.d.ts +1 -5
- package/dist/esm/src/utils/reconnectProviders.test.d.ts +1 -0
- package/dist/esm/src/utils/types.d.ts +2 -0
- package/dist/index.d.ts +240 -254
- package/package.json +17 -18
- package/dist/cjs/src/clients/walletconnect/constants.d.ts +0 -2
- package/dist/cjs/src/clients/walletconnect/index.d.ts +0 -2
- package/dist/cjs/src/clients/walletconnect/types.d.ts +0 -55
- package/dist/esm/src/clients/walletconnect/constants.d.ts +0 -2
- package/dist/esm/src/clients/walletconnect/index.d.ts +0 -2
- package/dist/esm/src/clients/walletconnect/types.d.ts +0 -55
|
@@ -1,26 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
declare const ClientContext: import("react").Context<Partial<{
|
|
4
|
-
kmd: Promise<BaseWallet | null>;
|
|
5
|
-
pera: Promise<BaseWallet | null>;
|
|
6
|
-
daffi: Promise<BaseWallet | null>;
|
|
7
|
-
myalgo: Promise<BaseWallet | null>;
|
|
8
|
-
algosigner: Promise<BaseWallet | null>;
|
|
9
|
-
defly: Promise<BaseWallet | null>;
|
|
10
|
-
exodus: Promise<BaseWallet | null>;
|
|
11
|
-
walletconnect: Promise<BaseWallet | null>;
|
|
12
|
-
mnemonic: Promise<BaseWallet | null>;
|
|
13
|
-
}> | null>;
|
|
2
|
+
declare const ClientContext: import("react").Context<Partial<Record<import("../..").PROVIDER_ID, import("../../clients/base/base").default | null>> | null>;
|
|
14
3
|
export { ClientContext };
|
|
15
|
-
declare const _default: import("react").Provider<Partial<
|
|
16
|
-
kmd: Promise<BaseWallet | null>;
|
|
17
|
-
pera: Promise<BaseWallet | null>;
|
|
18
|
-
daffi: Promise<BaseWallet | null>;
|
|
19
|
-
myalgo: Promise<BaseWallet | null>;
|
|
20
|
-
algosigner: Promise<BaseWallet | null>;
|
|
21
|
-
defly: Promise<BaseWallet | null>;
|
|
22
|
-
exodus: Promise<BaseWallet | null>;
|
|
23
|
-
walletconnect: Promise<BaseWallet | null>;
|
|
24
|
-
mnemonic: Promise<BaseWallet | null>;
|
|
25
|
-
}> | null>;
|
|
4
|
+
declare const _default: import("react").Provider<Partial<Record<import("../..").PROVIDER_ID, import("../../clients/base/base").default | null>> | null>;
|
|
26
5
|
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import AlgoSignerClient from '../clients/algosigner/client';
|
|
2
|
+
import DaffiWalletClient from '../clients/daffi/client';
|
|
3
|
+
import DeflyWalletClient from '../clients/defly/client';
|
|
4
|
+
import ExodusClient from '../clients/exodus/client';
|
|
5
|
+
import KMDWalletClient from '../clients/kmd/client';
|
|
6
|
+
import MnemonicWalletClient from '../clients/mnemonic/client';
|
|
7
|
+
import MyAlgoWalletClient from '../clients/myalgo/client';
|
|
8
|
+
import PeraWalletClient from '../clients/pera/client';
|
|
9
|
+
import WalletConnectClient from '../clients/walletconnect2/client';
|
|
10
|
+
import { PROVIDER_ID } from '../constants';
|
|
11
|
+
import type { Account, ClientOptions } from '../types';
|
|
12
|
+
declare type ClientTypeMap = {
|
|
13
|
+
[PROVIDER_ID.ALGOSIGNER]: AlgoSignerClient;
|
|
14
|
+
[PROVIDER_ID.DAFFI]: DaffiWalletClient;
|
|
15
|
+
[PROVIDER_ID.DEFLY]: DeflyWalletClient;
|
|
16
|
+
[PROVIDER_ID.EXODUS]: ExodusClient;
|
|
17
|
+
[PROVIDER_ID.KMD]: KMDWalletClient;
|
|
18
|
+
[PROVIDER_ID.MNEMONIC]: MnemonicWalletClient;
|
|
19
|
+
[PROVIDER_ID.MYALGO]: MyAlgoWalletClient;
|
|
20
|
+
[PROVIDER_ID.PERA]: PeraWalletClient;
|
|
21
|
+
[PROVIDER_ID.WALLETCONNECT]: WalletConnectClient;
|
|
22
|
+
};
|
|
23
|
+
export declare const createMockClient: <T extends PROVIDER_ID>(providerId: T, clientOptions?: ClientOptions, accounts?: Array<Account>) => ClientTypeMap[T];
|
|
24
|
+
export declare const createAlgoSignerMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => AlgoSignerClient;
|
|
25
|
+
export declare const createDaffiMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => DaffiWalletClient;
|
|
26
|
+
export declare const createDeflyMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => DeflyWalletClient;
|
|
27
|
+
export declare const createExodusMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => ExodusClient;
|
|
28
|
+
export declare const createKmdMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => KMDWalletClient;
|
|
29
|
+
export declare const createMnemonicMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => MnemonicWalletClient;
|
|
30
|
+
export declare const createMyAlgoMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => MyAlgoWalletClient;
|
|
31
|
+
export declare const createPeraMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => PeraWalletClient;
|
|
32
|
+
export declare const createWalletConnectMockInstance: (clientOptions?: ClientOptions, accounts?: Array<Account>) => WalletConnectClient;
|
|
33
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type algosdk from 'algosdk';
|
|
2
|
-
export declare type
|
|
2
|
+
export declare type PublicNetwork = 'betanet' | 'testnet' | 'mainnet';
|
|
3
|
+
export declare type Network = PublicNetwork | string;
|
|
3
4
|
export declare type Txn = {
|
|
4
5
|
apaa: Uint8Array;
|
|
5
6
|
apas: number[];
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { PROVIDER_ID } from '../constants';
|
|
2
|
+
import type { PeraWalletConnect } from '@perawallet/connect';
|
|
3
|
+
import type { DeflyWalletConnect } from '@blockshake/defly-connect';
|
|
4
|
+
import type { DaffiWalletConnect } from '@daffiwallet/connect';
|
|
5
|
+
import type SignClient from '@walletconnect/sign-client';
|
|
6
|
+
import type MyAlgoConnect from '@randlabs/myalgo-connect';
|
|
7
|
+
import type { WalletConnectModal } from '@walletconnect/modal';
|
|
8
|
+
import { AlgodClientOptions, Network } from './node';
|
|
9
|
+
import type algosdk from 'algosdk';
|
|
10
|
+
import type { PeraWalletConnectOptions } from '../clients/pera/types';
|
|
11
|
+
import { DeflyWalletConnectOptions } from '../clients/defly/types';
|
|
12
|
+
import { ExodusOptions } from '../clients/exodus/types';
|
|
13
|
+
import { KmdOptions } from '../clients/kmd/types';
|
|
14
|
+
import { MyAlgoConnectOptions } from '../clients/myalgo/types';
|
|
15
|
+
import { WalletConnectModalOptions, WalletConnectOptions } from '../clients/walletconnect2/types';
|
|
16
|
+
import { DaffiWalletConnectOptions } from '../clients/daffi/types';
|
|
17
|
+
export declare type ProviderConfigMapping = {
|
|
18
|
+
[PROVIDER_ID.PERA]: {
|
|
19
|
+
clientOptions?: PeraWalletConnectOptions;
|
|
20
|
+
clientStatic?: typeof PeraWalletConnect;
|
|
21
|
+
};
|
|
22
|
+
[PROVIDER_ID.DAFFI]: {
|
|
23
|
+
clientOptions?: DaffiWalletConnectOptions;
|
|
24
|
+
clientStatic?: typeof DaffiWalletConnect;
|
|
25
|
+
};
|
|
26
|
+
[PROVIDER_ID.DEFLY]: {
|
|
27
|
+
clientOptions?: DeflyWalletConnectOptions;
|
|
28
|
+
clientStatic?: typeof DeflyWalletConnect;
|
|
29
|
+
};
|
|
30
|
+
[PROVIDER_ID.WALLETCONNECT]: {
|
|
31
|
+
clientOptions?: WalletConnectOptions;
|
|
32
|
+
clientStatic?: typeof SignClient;
|
|
33
|
+
modalStatic?: typeof WalletConnectModal;
|
|
34
|
+
modalOptions?: WalletConnectModalOptions;
|
|
35
|
+
};
|
|
36
|
+
[PROVIDER_ID.MYALGO]: {
|
|
37
|
+
clientOptions?: MyAlgoConnectOptions;
|
|
38
|
+
clientStatic?: typeof MyAlgoConnect;
|
|
39
|
+
};
|
|
40
|
+
[PROVIDER_ID.EXODUS]: {
|
|
41
|
+
clientOptions?: ExodusOptions;
|
|
42
|
+
};
|
|
43
|
+
[PROVIDER_ID.KMD]: {
|
|
44
|
+
clientOptions?: KmdOptions;
|
|
45
|
+
};
|
|
46
|
+
[PROVIDER_ID.ALGOSIGNER]: Record<string, never>;
|
|
47
|
+
[PROVIDER_ID.MNEMONIC]: Record<string, never>;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Enforces correct configuration given for each provider. For example,
|
|
51
|
+
* if `id` is `PROVIDER_ID.PERA`, then `clientOptions` must be of type
|
|
52
|
+
* `PeraWalletConnectOptions`.
|
|
53
|
+
*
|
|
54
|
+
* @todo install `tsd` to test TypeScript type definitions in CI
|
|
55
|
+
*/
|
|
56
|
+
export declare type ProviderConfig<T extends keyof ProviderConfigMapping> = {
|
|
57
|
+
[K in T]: {
|
|
58
|
+
id: K;
|
|
59
|
+
} & ProviderConfigMapping[K];
|
|
60
|
+
}[T];
|
|
61
|
+
export declare type CommonInitParams = {
|
|
62
|
+
network?: Network;
|
|
63
|
+
algodOptions?: AlgodClientOptions;
|
|
64
|
+
algosdkStatic?: typeof algosdk;
|
|
65
|
+
};
|
|
66
|
+
export declare type NodeConfig = {
|
|
67
|
+
network: Network;
|
|
68
|
+
nodeServer: string;
|
|
69
|
+
nodeToken?: string;
|
|
70
|
+
nodePort?: string;
|
|
71
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PROVIDER_ID } from '../constants';
|
|
2
|
-
import type
|
|
2
|
+
import type BaseClient from '../clients/base';
|
|
3
3
|
export interface Account {
|
|
4
4
|
providerId: PROVIDER_ID;
|
|
5
5
|
name: string;
|
|
@@ -50,5 +50,7 @@ export declare type Metadata = {
|
|
|
50
50
|
icon: string;
|
|
51
51
|
isWalletConnect: boolean;
|
|
52
52
|
};
|
|
53
|
-
export declare type
|
|
54
|
-
export
|
|
53
|
+
export declare type ClientOptions = Record<string, any>;
|
|
54
|
+
export declare type WalletClient = BaseClient;
|
|
55
|
+
export declare type SupportedProviders = Partial<Record<PROVIDER_ID, WalletClient | null>>;
|
|
56
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { PROVIDER_ID } from '../
|
|
1
|
+
import { PROVIDER_ID } from '../constants';
|
|
2
2
|
export declare const clearAccounts: (id: PROVIDER_ID) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,13 +1,3 @@
|
|
|
1
1
|
import type algosdk from 'algosdk';
|
|
2
|
-
import {
|
|
3
|
-
declare
|
|
4
|
-
[x: string]: Promise<WalletClient | null>;
|
|
5
|
-
};
|
|
6
|
-
declare type NodeConfig = {
|
|
7
|
-
network: Network;
|
|
8
|
-
nodeServer: string;
|
|
9
|
-
nodeToken?: string;
|
|
10
|
-
nodePort?: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const initializeProviders: (providers?: PROVIDER_ID[], nodeConfig?: NodeConfig, algosdkStatic?: typeof algosdk) => SupportedProviders;
|
|
13
|
-
export {};
|
|
2
|
+
import { NodeConfig, ProviderConfig, ProviderConfigMapping, SupportedProviders } from '../types';
|
|
3
|
+
export declare const initializeProviders: <T extends keyof ProviderConfigMapping>(providers?: (T | ProviderConfig<T>)[] | undefined, nodeConfig?: NodeConfig, algosdkStatic?: typeof algosdk) => Promise<SupportedProviders>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare type SupportedProviders = {
|
|
3
|
-
[x: string]: Promise<WalletClient | null>;
|
|
4
|
-
};
|
|
1
|
+
import type { SupportedProviders } from '../types';
|
|
5
2
|
export declare const reconnectProviders: (providers: SupportedProviders) => Promise<void>;
|
|
6
|
-
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|