@manahippo/aptos-wallet-adapter 1.0.3 → 1.0.5

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 (52) hide show
  1. package/README.md +2 -0
  2. package/dist/WalletAdapters/BaseAdapter.d.ts +6 -6
  3. package/dist/WalletAdapters/BaseAdapter.d.ts.map +1 -1
  4. package/dist/WalletAdapters/BitkeepWallet.d.ts +1 -1
  5. package/dist/WalletAdapters/BitkeepWallet.d.ts.map +1 -1
  6. package/dist/WalletAdapters/BloctoWallet.d.ts +1 -1
  7. package/dist/WalletAdapters/BloctoWallet.d.ts.map +1 -1
  8. package/dist/WalletAdapters/BloctoWallet.js +2 -2
  9. package/dist/WalletAdapters/BloctoWallet.js.map +1 -1
  10. package/dist/WalletAdapters/CloverWallet.d.ts +57 -0
  11. package/dist/WalletAdapters/CloverWallet.d.ts.map +1 -0
  12. package/dist/WalletAdapters/CloverWallet.js +213 -0
  13. package/dist/WalletAdapters/CloverWallet.js.map +1 -0
  14. package/dist/WalletAdapters/Coin98Wallet.d.ts +1 -1
  15. package/dist/WalletAdapters/Coin98Wallet.d.ts.map +1 -1
  16. package/dist/WalletAdapters/FoxWallet.d.ts +1 -1
  17. package/dist/WalletAdapters/FoxWallet.d.ts.map +1 -1
  18. package/dist/WalletAdapters/MsafeWallet.d.ts +0 -38
  19. package/dist/WalletAdapters/MsafeWallet.d.ts.map +1 -1
  20. package/dist/WalletAdapters/MsafeWallet.js +226 -224
  21. package/dist/WalletAdapters/MsafeWallet.js.map +1 -1
  22. package/dist/WalletAdapters/NightlyWallet.js +8 -8
  23. package/dist/WalletAdapters/NightlyWallet.js.map +1 -1
  24. package/dist/WalletAdapters/ONTOWallet.d.ts +1 -1
  25. package/dist/WalletAdapters/ONTOWallet.d.ts.map +1 -1
  26. package/dist/WalletAdapters/OpenBlockWallet.d.ts +56 -0
  27. package/dist/WalletAdapters/OpenBlockWallet.d.ts.map +1 -0
  28. package/dist/WalletAdapters/OpenBlockWallet.js +243 -0
  29. package/dist/WalletAdapters/OpenBlockWallet.js.map +1 -0
  30. package/dist/WalletAdapters/PetraWallet.d.ts +1 -1
  31. package/dist/WalletAdapters/PetraWallet.d.ts.map +1 -1
  32. package/dist/WalletAdapters/PetraWallet.js +1 -1
  33. package/dist/WalletAdapters/PetraWallet.js.map +1 -1
  34. package/dist/WalletAdapters/PontemWallet.d.ts.map +1 -1
  35. package/dist/WalletAdapters/PontemWallet.js +8 -7
  36. package/dist/WalletAdapters/PontemWallet.js.map +1 -1
  37. package/dist/WalletAdapters/index.d.ts +2 -1
  38. package/dist/WalletAdapters/index.d.ts.map +1 -1
  39. package/dist/WalletAdapters/index.js +3 -1
  40. package/dist/WalletAdapters/index.js.map +1 -1
  41. package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
  42. package/dist/WalletProviders/WalletProvider.js +6 -7
  43. package/dist/WalletProviders/WalletProvider.js.map +1 -1
  44. package/package.json +3 -3
  45. package/src/WalletAdapters/BloctoWallet.ts +3 -4
  46. package/src/WalletAdapters/CloverWallet.ts +274 -0
  47. package/src/WalletAdapters/MsafeWallet.ts +261 -261
  48. package/src/WalletAdapters/OpenBlockWallet.ts +293 -0
  49. package/src/WalletAdapters/PetraWallet.ts +1 -1
  50. package/src/WalletAdapters/PontemWallet.ts +14 -11
  51. package/src/WalletAdapters/index.ts +3 -1
  52. package/src/WalletProviders/WalletProvider.tsx +5 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manahippo/aptos-wallet-adapter",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
6
  "files": [
@@ -31,8 +31,8 @@
31
31
  "@blocto/sdk": "^0.3.1",
32
32
  "@fewcha/web3": "0.1.32",
33
33
  "@keystonehq/aptossnap-adapter": "^0.2.8",
34
+ "@openblockhq/dappsdk": "^5.0.2",
34
35
  "eventemitter3": "^4.0.7",
35
- "js-sha3": "^0.8.0",
36
- "msafe-iframe": "^1.0.8"
36
+ "js-sha3": "^0.8.0"
37
37
  }
38
38
  }
@@ -197,14 +197,13 @@ export class BloctoWalletAdapter extends BaseWalletAdapter {
197
197
  }
198
198
 
199
199
  async signAndSubmitTransaction(
200
- transaction: Types.TransactionPayload
200
+ transaction: Types.TransactionPayload,
201
+ options?: any
201
202
  ): Promise<{ hash: Types.HexEncodedBytes }> {
202
203
  try {
203
204
  try {
204
205
  const provider = this._provider;
205
- const response = await provider?.signAndSubmitTransaction(
206
- transaction as Types.EntryFunctionPayload
207
- );
206
+ const response = await provider?.signAndSubmitTransaction(transaction, options);
208
207
  if (response) {
209
208
  return { hash: response.hash };
210
209
  } else {
@@ -0,0 +1,274 @@
1
+ import { Types } from 'aptos';
2
+ import {
3
+ WalletAccountChangeError,
4
+ WalletDisconnectionError,
5
+ WalletGetNetworkError,
6
+ WalletNetworkChangeError,
7
+ WalletNotConnectedError,
8
+ WalletNotReadyError,
9
+ WalletSignAndSubmitMessageError,
10
+ WalletSignMessageError,
11
+ WalletSignTransactionError
12
+ } from '../WalletProviders/errors';
13
+ import {
14
+ AccountKeys,
15
+ BaseWalletAdapter,
16
+ NetworkInfo,
17
+ scopePollingDetectionStrategy,
18
+ SignMessagePayload,
19
+ SignMessageResponse,
20
+ WalletAdapterNetwork,
21
+ WalletName,
22
+ WalletReadyState
23
+ } from './BaseAdapter';
24
+
25
+ interface IApotsErrorResult {
26
+ code: number;
27
+ message: string;
28
+ }
29
+
30
+ type AddressInfo = { address: string; publicKey: string };
31
+
32
+ interface ICloverWallet {
33
+ connect: () => Promise<AddressInfo>;
34
+ account: () => Promise<AddressInfo>;
35
+ isConnected: () => Promise<boolean>;
36
+ signAndSubmitTransaction(
37
+ transaction: any,
38
+ options?: any
39
+ ): Promise<{ hash: Types.HexEncodedBytes } | IApotsErrorResult>;
40
+ signTransaction(transaction: any, options?: any): Promise<Uint8Array | IApotsErrorResult>;
41
+ signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
42
+ disconnect(): Promise<void>;
43
+ }
44
+
45
+ interface AptosWindow extends Window {
46
+ clover_aptos:ICloverWallet;
47
+ }
48
+
49
+ declare const window: AptosWindow;
50
+
51
+ export const CloverWalletName = 'Clover' as WalletName<'Clover'>;
52
+
53
+ export interface CloverWalletAdapterConfig {
54
+ provider?: ICloverWallet;
55
+ network?: WalletAdapterNetwork;
56
+ timeout?: number;
57
+ }
58
+
59
+ export class CloverWalletAdapter extends BaseWalletAdapter {
60
+ name = CloverWalletName;
61
+
62
+ url = 'https://chrome.google.com/webstore/detail/clv-wallet/nhnkbkgjikgcigadomkphalanndcapjk';
63
+
64
+ icon = 'https://raw.githubusercontent.com/clover-network/clv-network-token-lists/main/assets/clover.png';
65
+
66
+ protected _provider: ICloverWallet | undefined;
67
+
68
+ protected _network: WalletAdapterNetwork;
69
+
70
+ protected _chainId: string;
71
+
72
+ protected _api: string;
73
+
74
+ protected _timeout: number;
75
+
76
+ protected _readyState: WalletReadyState =
77
+ typeof window === 'undefined' || typeof document === 'undefined'
78
+ ? WalletReadyState.Unsupported
79
+ : WalletReadyState.NotDetected;
80
+
81
+ protected _connecting: boolean;
82
+
83
+ protected _wallet: any | null;
84
+
85
+ constructor({
86
+ timeout = 10000
87
+ }: CloverWalletAdapterConfig = {}) {
88
+ super();
89
+
90
+ this._provider = typeof window !== 'undefined' ? window.clover_aptos : undefined;
91
+ this._network = undefined;
92
+ this._timeout = timeout;
93
+ this._connecting = false;
94
+ this._wallet = null;
95
+
96
+ if (typeof window !== 'undefined' && this._readyState !== WalletReadyState.Unsupported) {
97
+ scopePollingDetectionStrategy(() => {
98
+ if (window.clover_aptos) {
99
+ this._readyState = WalletReadyState.Installed;
100
+ this.emit('readyStateChange', this._readyState);
101
+ return true;
102
+ }
103
+ return false;
104
+ });
105
+ }
106
+ }
107
+
108
+ get publicAccount(): AccountKeys {
109
+ return {
110
+ publicKey: this._wallet?.publicKey || null,
111
+ address: this._wallet?.address || null,
112
+ authKey: this._wallet?.authKey || null
113
+ };
114
+ }
115
+
116
+ get network(): NetworkInfo {
117
+ return {
118
+ name: this._network,
119
+ api: this._api,
120
+ chainId: this._chainId
121
+ };
122
+ }
123
+
124
+ get connecting(): boolean {
125
+ return this._connecting;
126
+ }
127
+
128
+ get connected(): boolean {
129
+ return !!this._wallet?.isConnected;
130
+ }
131
+
132
+ get readyState(): WalletReadyState {
133
+ return this._readyState;
134
+ }
135
+
136
+ async connect(): Promise<void> {
137
+ try {
138
+ if (this.connected || this.connecting) return;
139
+ if (
140
+ !(
141
+ this._readyState === WalletReadyState.Loadable ||
142
+ this._readyState === WalletReadyState.Installed
143
+ )
144
+ )
145
+ throw new WalletNotReadyError();
146
+ this._connecting = true;
147
+
148
+ const provider = this._provider || window.clover_aptos;
149
+ let response = await provider?.connect();
150
+
151
+ if (typeof response === 'boolean') {
152
+ response = await provider?.account();
153
+ }
154
+
155
+ this._wallet = {
156
+ address: response?.address,
157
+ publicKey: response?.publicKey,
158
+ isConnected: true
159
+ };
160
+
161
+ try {
162
+ const chainId = null;
163
+ const api = null;
164
+
165
+ this._chainId = chainId;
166
+ this._api = api;
167
+ } catch (error: any) {
168
+ const errMsg = error.message;
169
+ this.emit('error', new WalletGetNetworkError(errMsg));
170
+ throw error;
171
+ }
172
+
173
+ this.emit('connect', this._wallet.publicKey);
174
+ } catch (error: any) {
175
+ this.emit('error', error);
176
+ throw error;
177
+ } finally {
178
+ this._connecting = false;
179
+ }
180
+ }
181
+
182
+ async disconnect(): Promise<void> {
183
+ const wallet = this._wallet;
184
+ const provider = this._provider || window.clover_aptos;
185
+ if (wallet) {
186
+ this._wallet = null;
187
+
188
+ try {
189
+ await provider?.disconnect();
190
+ } catch (error: any) {
191
+ this.emit('error', new WalletDisconnectionError(error?.message, error));
192
+ }
193
+ }
194
+
195
+ this.emit('disconnect');
196
+ }
197
+
198
+ async signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array> {
199
+ try {
200
+ const wallet = this._wallet;
201
+ const provider = this._provider || window.clover_aptos;
202
+ if (!wallet || !provider) throw new WalletNotConnectedError();
203
+
204
+ const response = await provider.signTransaction(transaction, options);
205
+ return response as Uint8Array;
206
+ } catch (error: any) {
207
+ const errMsg = error.message;
208
+ this.emit('error', new WalletSignTransactionError(errMsg));
209
+ throw error;
210
+ }
211
+ }
212
+
213
+ async signAndSubmitTransaction(
214
+ transaction: Types.TransactionPayload,
215
+ options?: any
216
+ ): Promise<{ hash: Types.HexEncodedBytes }> {
217
+ try {
218
+ const wallet = this._wallet;
219
+ const provider = this._provider || window.clover_aptos;
220
+ if (!wallet || !provider) throw new WalletNotConnectedError();
221
+
222
+ const response = await provider.signAndSubmitTransaction(transaction, options);
223
+ return response as { hash: Types.HexEncodedBytes };
224
+ } catch (error: any) {
225
+ const errMsg = error.message;
226
+ this.emit('error', new WalletSignAndSubmitMessageError(errMsg));
227
+ throw error;
228
+ }
229
+ }
230
+
231
+ async signMessage(msgPayload: SignMessagePayload): Promise<SignMessageResponse> {
232
+ try {
233
+ const wallet = this._wallet;
234
+ const provider = this._provider || window.clover_aptos;
235
+ if (!wallet || !provider) throw new WalletNotConnectedError();
236
+ const response = await provider?.signMessage(msgPayload);
237
+ if (response) {
238
+ return response;
239
+ } else {
240
+ throw new Error('Sign Message failed');
241
+ }
242
+ } catch (error: any) {
243
+ const errMsg = error.message;
244
+ this.emit('error', new WalletSignMessageError(errMsg));
245
+ throw error;
246
+ }
247
+ }
248
+
249
+ async onAccountChange(): Promise<void> {
250
+ try {
251
+ const wallet = this._wallet;
252
+ const provider = this._provider || window.clover_aptos;
253
+ if (!wallet || !provider) throw new WalletNotConnectedError();
254
+ //To be implemented
255
+ } catch (error: any) {
256
+ const errMsg = error.message;
257
+ this.emit('error', new WalletAccountChangeError(errMsg));
258
+ throw error;
259
+ }
260
+ }
261
+
262
+ async onNetworkChange(): Promise<void> {
263
+ try {
264
+ const wallet = this._wallet;
265
+ const provider = this._provider || window.clover_aptos;
266
+ if (!wallet || !provider) throw new WalletNotConnectedError();
267
+ //To be implemented
268
+ } catch (error: any) {
269
+ const errMsg = error.message;
270
+ this.emit('error', new WalletNetworkChangeError(errMsg));
271
+ throw error;
272
+ }
273
+ }
274
+ }