@enclave-hq/wallet-sdk 1.0.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 +203 -0
- package/dist/index.d.mts +441 -0
- package/dist/index.d.ts +441 -0
- package/dist/index.js +2130 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2064 -0
- package/dist/index.mjs.map +1 -0
- package/dist/react/index.d.mts +218 -0
- package/dist/react/index.d.ts +218 -0
- package/dist/react/index.js +1782 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/index.mjs +1770 -0
- package/dist/react/index.mjs.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
declare class TypedEventEmitter<TEvents extends Record<string, (...args: any[]) => void>> {
|
|
4
|
+
private emitter;
|
|
5
|
+
on<K extends keyof TEvents>(event: K, handler: TEvents[K]): this;
|
|
6
|
+
once<K extends keyof TEvents>(event: K, handler: TEvents[K]): this;
|
|
7
|
+
off<K extends keyof TEvents>(event: K, handler: TEvents[K]): this;
|
|
8
|
+
emit<K extends keyof TEvents>(event: K, ...args: Parameters<TEvents[K]>): boolean;
|
|
9
|
+
removeAllListeners<K extends keyof TEvents>(event?: K): this;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
declare enum ChainType {
|
|
13
|
+
EVM = "evm",
|
|
14
|
+
TRON = "tron",
|
|
15
|
+
SOLANA = "solana",
|
|
16
|
+
COSMOS = "cosmos"
|
|
17
|
+
}
|
|
18
|
+
declare enum WalletType {
|
|
19
|
+
METAMASK = "metamask",
|
|
20
|
+
WALLETCONNECT = "walletconnect",
|
|
21
|
+
COINBASE_WALLET = "coinbase-wallet",
|
|
22
|
+
TRONLINK = "tronlink",
|
|
23
|
+
WALLETCONNECT_TRON = "walletconnect-tron",
|
|
24
|
+
PRIVATE_KEY = "private-key"
|
|
25
|
+
}
|
|
26
|
+
declare enum WalletState {
|
|
27
|
+
DISCONNECTED = "disconnected",
|
|
28
|
+
CONNECTING = "connecting",
|
|
29
|
+
CONNECTED = "connected",
|
|
30
|
+
ERROR = "error"
|
|
31
|
+
}
|
|
32
|
+
type UniversalAddress = string;
|
|
33
|
+
interface Account {
|
|
34
|
+
universalAddress: UniversalAddress;
|
|
35
|
+
nativeAddress: string;
|
|
36
|
+
chainId: number;
|
|
37
|
+
chainType: ChainType;
|
|
38
|
+
isActive: boolean;
|
|
39
|
+
balance?: string;
|
|
40
|
+
name?: string;
|
|
41
|
+
}
|
|
42
|
+
interface IWalletAdapter {
|
|
43
|
+
readonly type: WalletType;
|
|
44
|
+
readonly chainType: ChainType;
|
|
45
|
+
readonly name: string;
|
|
46
|
+
readonly icon?: string;
|
|
47
|
+
state: WalletState;
|
|
48
|
+
currentAccount: Account | null;
|
|
49
|
+
connect(chainId?: number): Promise<Account>;
|
|
50
|
+
disconnect(): Promise<void>;
|
|
51
|
+
isAvailable(): Promise<boolean>;
|
|
52
|
+
signMessage(message: string): Promise<string>;
|
|
53
|
+
signTransaction?(transaction: any): Promise<string>;
|
|
54
|
+
signTypedData?(typedData: any): Promise<string>;
|
|
55
|
+
switchChain?(chainId: number): Promise<void>;
|
|
56
|
+
addChain?(chainConfig: AddChainParams): Promise<void>;
|
|
57
|
+
readContract?<T = any>(params: ContractReadParams): Promise<T>;
|
|
58
|
+
writeContract?(params: ContractWriteParams): Promise<string>;
|
|
59
|
+
estimateGas?(params: ContractWriteParams): Promise<bigint>;
|
|
60
|
+
waitForTransaction?(txHash: string, confirmations?: number): Promise<TransactionReceipt>;
|
|
61
|
+
getProvider(): any;
|
|
62
|
+
getSigner?(): any;
|
|
63
|
+
on(event: string, handler: (...args: any[]) => void): void;
|
|
64
|
+
off(event: string, handler: (...args: any[]) => void): void;
|
|
65
|
+
removeAllListeners(event?: string): void;
|
|
66
|
+
}
|
|
67
|
+
interface ContractReadParams {
|
|
68
|
+
address: string;
|
|
69
|
+
abi: any[];
|
|
70
|
+
functionName: string;
|
|
71
|
+
args?: any[];
|
|
72
|
+
}
|
|
73
|
+
interface ContractWriteParams extends ContractReadParams {
|
|
74
|
+
value?: string;
|
|
75
|
+
gas?: number;
|
|
76
|
+
gasPrice?: string;
|
|
77
|
+
}
|
|
78
|
+
interface TransactionReceipt {
|
|
79
|
+
transactionHash: string;
|
|
80
|
+
blockNumber: number;
|
|
81
|
+
blockHash: string;
|
|
82
|
+
from: string;
|
|
83
|
+
to?: string;
|
|
84
|
+
status: 'success' | 'failed';
|
|
85
|
+
gasUsed: string;
|
|
86
|
+
effectiveGasPrice?: string;
|
|
87
|
+
logs?: any[];
|
|
88
|
+
}
|
|
89
|
+
interface AddChainParams {
|
|
90
|
+
chainId: number;
|
|
91
|
+
chainName: string;
|
|
92
|
+
nativeCurrency: {
|
|
93
|
+
name: string;
|
|
94
|
+
symbol: string;
|
|
95
|
+
decimals: number;
|
|
96
|
+
};
|
|
97
|
+
rpcUrls: string[];
|
|
98
|
+
blockExplorerUrls?: string[];
|
|
99
|
+
iconUrls?: string[];
|
|
100
|
+
}
|
|
101
|
+
interface WalletManagerConfig {
|
|
102
|
+
enableStorage?: boolean;
|
|
103
|
+
storagePrefix?: string;
|
|
104
|
+
defaultChainId?: number;
|
|
105
|
+
defaultTronChainId?: number;
|
|
106
|
+
walletConnectProjectId?: string;
|
|
107
|
+
}
|
|
108
|
+
interface ConnectedWallet {
|
|
109
|
+
account: Account;
|
|
110
|
+
walletType: WalletType;
|
|
111
|
+
chainType: ChainType;
|
|
112
|
+
isPrimary: boolean;
|
|
113
|
+
canSwitchChain: boolean;
|
|
114
|
+
adapter: IWalletAdapter;
|
|
115
|
+
}
|
|
116
|
+
interface WalletManagerEvents extends Record<string, (...args: any[]) => void> {
|
|
117
|
+
accountChanged: (account: Account | null) => void;
|
|
118
|
+
chainChanged: (chainId: number, account: Account) => void;
|
|
119
|
+
disconnected: () => void;
|
|
120
|
+
walletAccountChanged: (chainType: ChainType, account: Account | null, isPrimary: boolean) => void;
|
|
121
|
+
walletChainChanged: (chainType: ChainType, chainId: number, account: Account, isPrimary: boolean) => void;
|
|
122
|
+
walletDisconnected: (chainType: ChainType, isPrimary: boolean) => void;
|
|
123
|
+
primaryWalletSwitched: (newPrimary: Account, oldPrimary: Account | null, chainType: ChainType) => void;
|
|
124
|
+
error: (error: Error) => void;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
declare class WalletManager extends TypedEventEmitter<WalletManagerEvents> {
|
|
128
|
+
private config;
|
|
129
|
+
private registry;
|
|
130
|
+
private primaryWallet;
|
|
131
|
+
private connectedWallets;
|
|
132
|
+
constructor(config?: WalletManagerConfig);
|
|
133
|
+
connect(type: WalletType, chainId?: number): Promise<Account>;
|
|
134
|
+
connectAdditional(type: WalletType, chainId?: number): Promise<Account>;
|
|
135
|
+
connectWithPrivateKey(privateKey: string, chainId?: number): Promise<Account>;
|
|
136
|
+
disconnect(): Promise<void>;
|
|
137
|
+
disconnectAll(): Promise<void>;
|
|
138
|
+
switchPrimaryWallet(chainType: ChainType): Promise<Account>;
|
|
139
|
+
getPrimaryAccount(): Account | null;
|
|
140
|
+
getConnectedWallets(): ConnectedWallet[];
|
|
141
|
+
getWalletByChainType(chainType: ChainType): IWalletAdapter | null;
|
|
142
|
+
signMessage(message: string): Promise<string>;
|
|
143
|
+
signMessageWithChainType(message: string, chainType?: ChainType): Promise<string>;
|
|
144
|
+
signTypedData(typedData: any, chainType?: ChainType): Promise<string>;
|
|
145
|
+
requestSwitchChain(chainId: number, options?: {
|
|
146
|
+
addChainIfNotExists?: boolean;
|
|
147
|
+
chainConfig?: AddChainParams;
|
|
148
|
+
}): Promise<Account>;
|
|
149
|
+
readContract<T = any>(address: string, abi: any[], functionName: string, args?: any[], chainType?: ChainType): Promise<T>;
|
|
150
|
+
writeContract(address: string, abi: any[], functionName: string, args?: any[], options?: {
|
|
151
|
+
value?: string;
|
|
152
|
+
gas?: number;
|
|
153
|
+
gasPrice?: string;
|
|
154
|
+
}, chainType?: ChainType): Promise<string>;
|
|
155
|
+
estimateGas(address: string, abi: any[], functionName: string, args?: any[], chainType?: ChainType): Promise<bigint>;
|
|
156
|
+
waitForTransaction(txHash: string, confirmations?: number, chainType?: ChainType): Promise<TransactionReceipt>;
|
|
157
|
+
getProvider(): any;
|
|
158
|
+
getProviderByChainType(chainType: ChainType): any;
|
|
159
|
+
private setPrimaryWallet;
|
|
160
|
+
private canSwitchChain;
|
|
161
|
+
private setupAdapterListeners;
|
|
162
|
+
private removeAdapterListeners;
|
|
163
|
+
private saveToStorage;
|
|
164
|
+
private restoreFromStorage;
|
|
165
|
+
private clearStorage;
|
|
166
|
+
private getHistoryRecords;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
interface WalletContextValue {
|
|
170
|
+
walletManager: WalletManager;
|
|
171
|
+
account: Account | null;
|
|
172
|
+
isConnected: boolean;
|
|
173
|
+
connectedWallets: ConnectedWallet[];
|
|
174
|
+
connect: (type: WalletType, chainId?: number) => Promise<Account>;
|
|
175
|
+
connectAdditional: (type: WalletType, chainId?: number) => Promise<Account>;
|
|
176
|
+
disconnect: () => Promise<void>;
|
|
177
|
+
switchPrimaryWallet: (chainType: ChainType) => Promise<Account>;
|
|
178
|
+
signMessage: (message: string) => Promise<string>;
|
|
179
|
+
}
|
|
180
|
+
interface WalletProviderProps {
|
|
181
|
+
children: ReactNode;
|
|
182
|
+
walletManager?: WalletManager;
|
|
183
|
+
}
|
|
184
|
+
declare function WalletProvider({ children, walletManager: externalWalletManager }: WalletProviderProps): React.JSX.Element;
|
|
185
|
+
declare function useWallet(): WalletContextValue;
|
|
186
|
+
|
|
187
|
+
interface UseAccountResult {
|
|
188
|
+
account: Account | null;
|
|
189
|
+
isConnected: boolean;
|
|
190
|
+
address: string | null;
|
|
191
|
+
chainId: number | null;
|
|
192
|
+
universalAddress: string | null;
|
|
193
|
+
}
|
|
194
|
+
declare function useAccount(): UseAccountResult;
|
|
195
|
+
|
|
196
|
+
interface UseConnectResult {
|
|
197
|
+
connect: (type: WalletType, chainId?: number) => Promise<Account>;
|
|
198
|
+
connectAdditional: (type: WalletType, chainId?: number) => Promise<Account>;
|
|
199
|
+
isConnecting: boolean;
|
|
200
|
+
error: Error | null;
|
|
201
|
+
}
|
|
202
|
+
declare function useConnect(): UseConnectResult;
|
|
203
|
+
|
|
204
|
+
interface UseDisconnectResult {
|
|
205
|
+
disconnect: () => Promise<void>;
|
|
206
|
+
isDisconnecting: boolean;
|
|
207
|
+
error: Error | null;
|
|
208
|
+
}
|
|
209
|
+
declare function useDisconnect(): UseDisconnectResult;
|
|
210
|
+
|
|
211
|
+
interface UseSignMessageResult {
|
|
212
|
+
signMessage: (message: string) => Promise<string>;
|
|
213
|
+
isSigning: boolean;
|
|
214
|
+
error: Error | null;
|
|
215
|
+
}
|
|
216
|
+
declare function useSignMessage(): UseSignMessageResult;
|
|
217
|
+
|
|
218
|
+
export { type UseAccountResult, type UseConnectResult, type UseDisconnectResult, type UseSignMessageResult, type WalletContextValue, WalletProvider, type WalletProviderProps, useAccount, useConnect, useDisconnect, useSignMessage, useWallet };
|