@manahippo/aptos-wallet-adapter 0.3.0 → 0.3.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.
Files changed (58) hide show
  1. package/README.md +5 -3
  2. package/dist/WalletAdapters/AptosWallet.d.ts +12 -4
  3. package/dist/WalletAdapters/AptosWallet.d.ts.map +1 -1
  4. package/dist/WalletAdapters/AptosWallet.js +30 -11
  5. package/dist/WalletAdapters/AptosWallet.js.map +1 -1
  6. package/dist/WalletAdapters/BaseAdapter.d.ts +4 -2
  7. package/dist/WalletAdapters/BaseAdapter.d.ts.map +1 -1
  8. package/dist/WalletAdapters/BaseAdapter.js.map +1 -1
  9. package/dist/WalletAdapters/FewchaWallet.d.ts +3 -2
  10. package/dist/WalletAdapters/FewchaWallet.d.ts.map +1 -1
  11. package/dist/WalletAdapters/FewchaWallet.js +46 -45
  12. package/dist/WalletAdapters/FewchaWallet.js.map +1 -1
  13. package/dist/WalletAdapters/HippoExtensionWallet.d.ts +4 -2
  14. package/dist/WalletAdapters/HippoExtensionWallet.d.ts.map +1 -1
  15. package/dist/WalletAdapters/HippoExtensionWallet.js +24 -2
  16. package/dist/WalletAdapters/HippoExtensionWallet.js.map +1 -1
  17. package/dist/WalletAdapters/HippoWallet.d.ts +3 -2
  18. package/dist/WalletAdapters/HippoWallet.d.ts.map +1 -1
  19. package/dist/WalletAdapters/HippoWallet.js +26 -1
  20. package/dist/WalletAdapters/HippoWallet.js.map +1 -1
  21. package/dist/WalletAdapters/MartianWallet.d.ts +4 -2
  22. package/dist/WalletAdapters/MartianWallet.d.ts.map +1 -1
  23. package/dist/WalletAdapters/MartianWallet.js +30 -8
  24. package/dist/WalletAdapters/MartianWallet.js.map +1 -1
  25. package/dist/WalletAdapters/PontemWallet.d.ts +6 -4
  26. package/dist/WalletAdapters/PontemWallet.d.ts.map +1 -1
  27. package/dist/WalletAdapters/PontemWallet.js +28 -6
  28. package/dist/WalletAdapters/PontemWallet.js.map +1 -1
  29. package/dist/WalletAdapters/SpikaWallet.d.ts +46 -0
  30. package/dist/WalletAdapters/SpikaWallet.d.ts.map +1 -0
  31. package/dist/WalletAdapters/{MultiMaskWallet.js → SpikaWallet.js} +71 -82
  32. package/dist/WalletAdapters/SpikaWallet.js.map +1 -0
  33. package/dist/WalletAdapters/index.d.ts +1 -1
  34. package/dist/WalletAdapters/index.d.ts.map +1 -1
  35. package/dist/WalletAdapters/index.js +1 -1
  36. package/dist/WalletAdapters/index.js.map +1 -1
  37. package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
  38. package/dist/WalletProviders/WalletProvider.js +9 -1
  39. package/dist/WalletProviders/WalletProvider.js.map +1 -1
  40. package/dist/WalletProviders/useWallet.d.ts +1 -0
  41. package/dist/WalletProviders/useWallet.d.ts.map +1 -1
  42. package/dist/WalletProviders/useWallet.js.map +1 -1
  43. package/package.json +3 -3
  44. package/src/WalletAdapters/AptosWallet.ts +41 -13
  45. package/src/WalletAdapters/BaseAdapter.ts +11 -2
  46. package/src/WalletAdapters/FewchaWallet.ts +45 -25
  47. package/src/WalletAdapters/HippoExtensionWallet.ts +23 -2
  48. package/src/WalletAdapters/HippoWallet.ts +27 -1
  49. package/src/WalletAdapters/MartianWallet.ts +29 -8
  50. package/src/WalletAdapters/PontemWallet.ts +32 -7
  51. package/src/WalletAdapters/SpikaWallet.ts +229 -0
  52. package/src/WalletAdapters/index.ts +1 -1
  53. package/src/WalletProviders/WalletProvider.tsx +11 -1
  54. package/src/WalletProviders/useWallet.ts +1 -0
  55. package/dist/WalletAdapters/MultiMaskWallet.d.ts +0 -41
  56. package/dist/WalletAdapters/MultiMaskWallet.d.ts.map +0 -1
  57. package/dist/WalletAdapters/MultiMaskWallet.js.map +0 -1
  58. package/src/WalletAdapters/MultiMaskWallet.ts +0 -248
@@ -3,9 +3,11 @@ import {
3
3
  WalletDisconnectionError,
4
4
  WalletNotConnectedError,
5
5
  WalletNotReadyError,
6
+ WalletSignAndSubmitMessageError,
7
+ WalletSignMessageError,
6
8
  WalletSignTransactionError
7
9
  } from '../WalletProviders/errors';
8
- import Web3, { Web3Provider, Web3ProviderType } from '@fewcha/web3';
10
+ import Web3, { Web3ProviderType } from '@fewcha/web3';
9
11
  import {
10
12
  AccountKeys,
11
13
  BaseWalletAdapter,
@@ -16,10 +18,11 @@ import {
16
18
  import {
17
19
  TransactionPayload,
18
20
  SubmitTransactionRequest,
19
- HexEncodedBytes
21
+ HexEncodedBytes,
22
+ EntryFunctionPayload
20
23
  } from 'aptos/dist/generated';
21
24
 
22
- export const FewchaWalletName = 'Fewcha Wallet' as WalletName<'Fewcha Wallet'>;
25
+ export const FewchaWalletName = 'Fewcha' as WalletName<'Fewcha'>;
23
26
 
24
27
  interface FewchaWindow extends Window {
25
28
  fewcha: Web3ProviderType;
@@ -58,8 +61,6 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
58
61
  }: FewchaAdapterConfig = {}) {
59
62
  super();
60
63
 
61
- this._provider =
62
- typeof window !== 'undefined' ? new Web3(new Web3Provider(window.fewcha)).action : undefined;
63
64
  // this._network = network;
64
65
  this._timeout = timeout;
65
66
  this._connecting = false;
@@ -110,12 +111,12 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
110
111
  throw new WalletNotReadyError();
111
112
 
112
113
  this._connecting = true;
113
- const provider = this._provider || window.fewcha;
114
- const isConnected = await this._provider?.isConnected();
114
+ const provider = new Web3().action;
115
+ const isConnected = await provider.isConnected();
115
116
  if (isConnected?.data === true) {
116
- await provider?.disconnect();
117
+ await provider.disconnect();
117
118
  }
118
- const response = await provider?.connect();
119
+ const response = await provider.connect();
119
120
  if (response.status === 401) {
120
121
  throw new WalletConnectionError('User has rejected the connection');
121
122
  } else if (response.status !== 200) {
@@ -124,7 +125,7 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
124
125
  let accountDetail = { ...response.data };
125
126
 
126
127
  if (!accountDetail.publicKey) {
127
- const accountResp = await provider?.account();
128
+ const accountResp = await provider.account();
128
129
  if (!accountResp.data.publicKey) {
129
130
  throw new WalletConnectionError('Wallet connect issue', response.data);
130
131
  }
@@ -134,6 +135,7 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
134
135
  connected: true,
135
136
  ...accountDetail
136
137
  };
138
+ this._provider = provider;
137
139
  this.emit('connect', this._wallet.publicKey);
138
140
  } catch (error: any) {
139
141
  this.emit('error', error);
@@ -144,22 +146,22 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
144
146
  }
145
147
 
146
148
  async disconnect(): Promise<void> {
147
- const wallet = this._wallet;
148
- if (wallet) {
149
- this._wallet = null;
150
-
149
+ const provider = this._provider;
150
+ if (provider) {
151
151
  try {
152
- const provider = this._provider || window.fewcha;
153
- const isDisconnected = await provider?.disconnect();
152
+ const isDisconnected = await provider.disconnect();
154
153
  if (isDisconnected.data === true) {
155
- this.emit('disconnect');
154
+ this._provider = undefined;
155
+ this._wallet = null;
156
156
  } else {
157
157
  throw new Error('Disconnect failed');
158
158
  }
159
159
  } catch (error: any) {
160
160
  this.emit('error', new WalletDisconnectionError(error?.message, error));
161
+ throw error;
161
162
  }
162
163
  }
164
+ this.emit('disconnect');
163
165
  }
164
166
 
165
167
  async signTransaction(transaction: TransactionPayload): Promise<SubmitTransactionRequest> {
@@ -168,12 +170,12 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
168
170
  if (!wallet) throw new WalletNotConnectedError();
169
171
 
170
172
  const provider = this._provider || window.fewcha;
171
- const tx = await provider.generateTransaction(transaction);
172
- if (!tx) throw new WalletSignTransactionError('Cannot generate transaction');
173
+ const tx = await provider.generateTransaction(transaction as EntryFunctionPayload);
174
+ if (!tx) throw new Error('Cannot generate transaction');
173
175
  const response = await provider?.signTransaction(tx.data);
174
176
 
175
177
  if (!response) {
176
- throw new WalletSignTransactionError('No response');
178
+ throw new Error('No response');
177
179
  }
178
180
  const result = { hash: response } as any;
179
181
  return result as SubmitTransactionRequest;
@@ -192,20 +194,38 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
192
194
  if (!wallet) throw new WalletNotConnectedError();
193
195
 
194
196
  const provider = this._provider || window.fewcha;
195
- const tx = await provider.generateTransaction(transaction);
196
- if (!tx) throw new WalletSignTransactionError('Cannot generate transaction');
197
+ const tx = await provider.generateTransaction(transaction as EntryFunctionPayload);
198
+ if (!tx) throw new Error('Cannot generate transaction');
197
199
  const response = await provider?.signAndSubmitTransaction(tx.data);
198
200
  if (response.status === 401) {
199
- throw new WalletSignTransactionError('User has rejected the transaction');
201
+ throw new Error('User has rejected the transaction');
200
202
  } else if (response.status !== 200) {
201
- throw new WalletSignTransactionError('Transaction issue');
203
+ throw new Error('Transaction issue');
202
204
  }
203
205
  return {
204
206
  hash: response.data
205
207
  };
206
208
  } catch (error: any) {
207
209
  const errMsg = error instanceof Error ? error.message : error.response.data.message;
208
- this.emit('error', new WalletSignTransactionError(errMsg));
210
+ this.emit('error', new WalletSignAndSubmitMessageError(errMsg));
211
+ throw error;
212
+ }
213
+ }
214
+
215
+ async signMessage(message: string): Promise<string> {
216
+ try {
217
+ const wallet = this._wallet;
218
+ const provider = this._provider || window.fewcha;
219
+ if (!wallet || !provider) throw new WalletNotConnectedError();
220
+ const response = await provider?.signMessage(message);
221
+ if (response) {
222
+ return response.data;
223
+ } else {
224
+ throw new Error('Sign Message failed');
225
+ }
226
+ } catch (error: any) {
227
+ const errMsg = error.message;
228
+ this.emit('error', new WalletSignMessageError(errMsg));
209
229
  throw error;
210
230
  }
211
231
  }
@@ -8,6 +8,8 @@ import {
8
8
  WalletDisconnectionError,
9
9
  WalletNotConnectedError,
10
10
  WalletNotReadyError,
11
+ WalletSignAndSubmitMessageError,
12
+ WalletSignMessageError,
11
13
  WalletSignTransactionError
12
14
  } from '../WalletProviders/errors';
13
15
  import {
@@ -28,6 +30,7 @@ interface IHippoWallet {
28
30
  isConnected: () => Promise<boolean>;
29
31
  signAndSubmitTransaction(transaction: any): Promise<any>;
30
32
  signTransaction(transaction: any): Promise<void>;
33
+ signMessage(message: string): Promise<string>;
31
34
  disconnect(): Promise<void>;
32
35
  }
33
36
 
@@ -37,7 +40,7 @@ interface HippoWindow extends Window {
37
40
 
38
41
  declare const window: HippoWindow;
39
42
 
40
- export const HippoExtensionWalletName = 'Hippo Wallet' as WalletName<'Hippo Wallet'>;
43
+ export const HippoExtensionWalletName = 'Hippo' as WalletName<'Hippo'>;
41
44
 
42
45
  export interface HippoExtensionWalletAdapterConfig {
43
46
  provider?: IHippoWallet;
@@ -195,11 +198,29 @@ export class HippoExtensionWalletAdapter extends BaseWalletAdapter {
195
198
  }
196
199
  } catch (error: any) {
197
200
  // console.log('transact err', error, error.message);
198
- throw new WalletSignTransactionError(error.message || error);
201
+ throw new WalletSignAndSubmitMessageError(error.message || error);
199
202
  }
200
203
  } catch (error: any) {
201
204
  this.emit('error', error);
202
205
  throw error;
203
206
  }
204
207
  }
208
+
209
+ async signMessage(message: string): Promise<string> {
210
+ try {
211
+ const wallet = this._wallet;
212
+ const provider = this._provider || window.hippoWallet;
213
+ if (!wallet || !provider) throw new WalletNotConnectedError();
214
+ const response = await provider?.signMessage(message);
215
+ if (response) {
216
+ return response;
217
+ } else {
218
+ throw new Error('Sign Message failed');
219
+ }
220
+ } catch (error: any) {
221
+ const errMsg = error.message;
222
+ this.emit('error', new WalletSignMessageError(errMsg));
223
+ throw error;
224
+ }
225
+ }
205
226
  }
@@ -12,7 +12,7 @@ import {
12
12
  } from '../WalletProviders/errors';
13
13
  import { AccountKeys, BaseWalletAdapter, WalletName, WalletReadyState } from './BaseAdapter';
14
14
 
15
- export const HippoWalletName = 'Hippo Web Wallet' as WalletName<'Hippo Web Wallet'>;
15
+ export const HippoWalletName = 'Hippo Web' as WalletName<'Hippo Web'>;
16
16
 
17
17
  export interface HippoWalletAdapterConfig {
18
18
  provider?: string;
@@ -196,6 +196,32 @@ export class HippoWalletAdapter extends BaseWalletAdapter {
196
196
  }
197
197
  }
198
198
 
199
+ async signMessage(message: string): Promise<string> {
200
+ try {
201
+ const request = new URLSearchParams({
202
+ request: JSON.stringify({
203
+ method: 'signMessage',
204
+ payload: message
205
+ }),
206
+ origin: window.location.origin
207
+ }).toString();
208
+ const popup = window.open(
209
+ `${WEBWALLET_URL}?${request}`,
210
+ 'Transaction Confirmation',
211
+ 'scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=440,height=700'
212
+ );
213
+ if (!popup) throw new WalletNotConnectedError();
214
+ const promise = await new Promise((resolve, reject) => {
215
+ this.once('success', resolve);
216
+ this.once('error', reject);
217
+ });
218
+ return promise as string;
219
+ } catch (error: any) {
220
+ this.emit('error', error);
221
+ throw error;
222
+ }
223
+ }
224
+
199
225
  private _beforeUnload = (): void => {
200
226
  void this.disconnect();
201
227
  };
@@ -8,6 +8,8 @@ import {
8
8
  WalletDisconnectionError,
9
9
  WalletNotConnectedError,
10
10
  WalletNotReadyError,
11
+ WalletSignAndSubmitMessageError,
12
+ WalletSignMessageError,
11
13
  WalletSignTransactionError
12
14
  } from '../WalletProviders/errors';
13
15
  import {
@@ -38,6 +40,7 @@ interface IMartianWallet {
38
40
  generateTransaction(sender: MaybeHexString, payload: any): Promise<any>;
39
41
  signAndSubmitTransaction(transaction: TransactionPayload): Promise<HexEncodedBytes>;
40
42
  signTransaction(transaction: TransactionPayload): Promise<HexEncodedBytes>;
43
+ signMessage(message: string): Promise<string>;
41
44
  disconnect(): Promise<void>;
42
45
  }
43
46
 
@@ -47,7 +50,7 @@ interface MartianWindow extends Window {
47
50
 
48
51
  declare const window: MartianWindow;
49
52
 
50
- export const MartianWalletName = 'MartianWallet' as WalletName<'MartianWallet'>;
53
+ export const MartianWalletName = 'Martian' as WalletName<'Martian'>;
51
54
 
52
55
  export interface MartianWalletAdapterConfig {
53
56
  provider?: IMartianWallet;
@@ -61,7 +64,7 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
61
64
  url = 'https://chrome.google.com/webstore/detail/martian-wallet/efbglgofoippbgcjepnhiblaibcnclgk';
62
65
 
63
66
  icon =
64
- 'https://www.gitbook.com/cdn-cgi/image/width=40,height=40,fit=contain,dpr=2,format=auto/https%3A%2F%2F1159842905-files.gitbook.io%2F~%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FXillBNDwQOz0oPJ4OtRH%252Ficon%252FaBwgf6d32iEu3YE56Jvk%252Flogo128_squ.png%3Falt%3Dmedia%26token%3D0f5bef1f-a4bd-495e-a447-289c235bb76a';
67
+ 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzUyIiBoZWlnaHQ9IjM1MiIgdmlld0JveD0iMCAwIDM1MiAzNTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzNTIiIGhlaWdodD0iMzUyIiByeD0iODciIGZpbGw9IiMxRjFGMUYiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNjkuNzAxIDg5LjA4NDFDMTU5LjUwOCA4OS44MzA5IDE1MC41NDcgOTIuMDAxNCAxNDEuMDc2IDk2LjAxNjlDMTM5LjQyNCA5Ni43MTc0IDEzMy43MDIgOTkuNjAzNyAxMzIuMTE2IDEwMC41MzdDMTI4LjEzMSAxMDIuODgxIDEyMy4wNDMgMTA2LjQ5NiAxMTkuNTg2IDEwOS40NEMxMTYuOTc1IDExMS42NjUgMTExLjIxNiAxMTcuNDUyIDEwOS4yMDIgMTE5Ljg3NkMxMDUuMDg1IDEyNC44MzIgMTAxLjA4OCAxMzAuODg2IDk4LjQzODQgMTM2LjE3OUM5Ny45OTQyIDEzNy4wNjYgOTcuNTYzNSAxMzcuODE3IDk3LjQ4MTMgMTM3Ljg0OEM5Ny4zOTkzIDEzNy44OCA5Ny4zMzIgMTM3Ljk5NSA5Ny4zMzIgMTM4LjEwNUM5Ny4zMzIgMTM4LjIxNCA5Ni43Njg1IDEzOS42MDggOTYuMDc5NiAxNDEuMkM5NC42OTc1IDE0NC4zOTYgOTIuOTE3NiAxNDkuNDk2IDkxLjk5MjUgMTUyLjkwOUM4OS42MjY3IDE2MS42NCA4OC41NDA3IDE3Mi40OTUgODkuMTgxMSAxODEuMDExQzkwLjM4ODggMTk3LjA3MSA5NS4xODY2IDIxMS4xMiAxMDMuODUzIDIyMy45NzVDMTEwLjE0NyAyMzMuMzExIDExOC4zMzYgMjQxLjQxMyAxMjcuOTk1IDI0Ny44NjFDMTM4LjkzNiAyNTUuMTYzIDE1MS45NzEgMjU5LjkxIDE2NS41MzIgMjYxLjUyOUMxNjkuMjQ3IDI2MS45NzIgMTc3LjczMSAyNjIuMTQ2IDE4MS43NjIgMjYxLjg2MUMxOTguMDkzIDI2MC43MDYgMjEzLjYxNiAyNTQuOTk0IDIyNi43OCAyNDUuMjk3QzI0NC4wODIgMjMyLjU1MiAyNTYuMDc2IDIxMy43OTcgMjYwLjMzMiAxOTIuODM0QzI2MS42MDEgMTg2LjU4MiAyNjIuMDA2IDE4Mi4zNTUgMjYyIDE3NS40MDdDMjYxLjk5NiAxNzAuMzM3IDI2MS45NDYgMTY5LjI5NSAyNjEuNTQxIDE2NS44MjlDMjU5LjcwNSAxNTAuMTQyIDI1NC4wNTkgMTM1Ljg4OCAyNDQuNzgzIDEyMy41MjdDMjM4LjkwMyAxMTUuNjg5IDIzMC45OTIgMTA4LjI0OCAyMjMuMDk4IDEwMy4xMjlDMjE4LjQ4NSAxMDAuMTM2IDIxNi4xNzggOTguODU1NSAyMTEuNjYxIDk2Ljc3NzRDMjAyLjMzOCA5Mi40ODc5IDE5Mi4zNzYgODkuOTA5MSAxODIuMTg3IDg5LjE0NzlDMTgwLjA0MiA4OC45ODc2IDE3MS42MDYgODguOTQ0NSAxNjkuNzAxIDg5LjA4NDFaTTE4My4wMjUgMTAzLjY1N0MxODkuNTAzIDEwNC4zNDggMTk2LjI4NCAxMDYuMDM0IDIwMi4zNiAxMDguNDY0TDIwNC4zNTYgMTA5LjI2MkwyMDQuMzU2IDExMC44MjJDMjA0LjM1NyAxMTYuODk2IDIwMC4zNDQgMTIyLjMwNyAxOTQuMzMzIDEyNC4zMzRMMTkyLjcyIDEyNC44NzhMMTczLjUyMyAxMjQuOTg3QzE1NS4yODkgMTI1LjA5IDE1MS45OTQgMTI1LjE3NSAxNDcuNjE2IDEyNS42NTdDMTM3LjY3NiAxMjYuNzUyIDEyOS44NzIgMTI4LjI2NSAxMjEuMzAyIDEzMC43NjFDMTIwLjA1IDEzMS4xMjUgMTE4LjkxNyAxMzEuNDI0IDExOC43ODUgMTMxLjQyNEMxMTguNDY0IDEzMS40MjQgMTE4LjkwOSAxMzAuNzkxIDEyMC43NTIgMTI4LjYyMkMxMjQuNDgzIDEyNC4yMzMgMTMwLjczMiAxMTguNTk4IDEzNC43MDYgMTE2LjA0MUMxMzUuMTI2IDExNS43NyAxMzUuNTA4IDExNS41MDkgMTM1LjU1NSAxMTUuNDZDMTM1LjYwMiAxMTUuNDExIDEzNi4yNTEgMTE0Ljk3OSAxMzYuOTk5IDExNC41MDFDMTQyLjI2MyAxMTEuMTMxIDE0OC4wMzYgMTA4LjQ0MSAxNTQuMDcyIDEwNi41NDNDMTU5LjY1OCAxMDQuNzg3IDE2NC44MTQgMTAzLjg3MiAxNzIuMTY0IDEwMy4zMzFDMTczLjg3NCAxMDMuMjA2IDE4MC43MjMgMTAzLjQxMSAxODMuMDI1IDEwMy42NTdaTTIxOS4xMzMgMTE4LjAyMkMyMjIuNzUxIDEyMC43NzkgMjI5LjQ5OSAxMjcuMTM2IDIyOS40OTkgMTI3Ljc4N0MyMjkuNDk5IDEyOC42MDYgMjI2Ljc1IDEzMy40OTMgMjI0Ljc4NCAxMzYuMTY4QzIxOC4wMzIgMTQ1LjM1NSAyMDcuOTIxIDE1MS41NTYgMTk2Ljc5NyAxNTMuMzMyQzE5My45NDUgMTUzLjc4OCAxOTEuOTk0IDE1My44MzUgMTc1LjczMiAxNTMuODQ1QzE1NS4zOTYgMTUzLjg1NyAxNTIuNTc3IDE1My45NjYgMTQ1LjA2OCAxNTUuMDI4QzEzMS4xNjkgMTU2Ljk5NCAxMTguMDA0IDE2MS4zODUgMTA1Ljc3IDE2OC4xMzdDMTA0Ljc1NyAxNjguNjk1IDEwMy44ODUgMTY5LjEwOCAxMDMuODMxIDE2OS4wNTRDMTAzLjY1IDE2OC44NzMgMTA0LjMxMyAxNjMuOTY5IDEwNC44OTUgMTYxLjE4MkMxMDUuNTE0IDE1OC4yMTggMTA2LjU0MiAxNTQuNDE0IDEwNy4zMTEgMTUyLjI0N0wxMDcuNzg2IDE1MC45MDlMMTA5LjQ4MSAxNTAuMTU2QzEyMC45OTQgMTQ1LjA0MiAxMzQuODA4IDE0MS4zODIgMTQ3LjQ0NyAxNDAuMDk3QzE1NC4yNTggMTM5LjQwNSAxNTUuMTY2IDEzOS4zNzggMTczLjk0OCAxMzkuMzA0QzE4NC45MTIgMTM5LjI2MSAxOTMuMTE2IDEzOS4xNiAxOTMuOTMgMTM5LjA2QzE5NS4yOCAxMzguODkyIDE5Ny44NDYgMTM4LjI4NyAxOTkuNDEgMTM3Ljc2NkMxOTkuODQxIDEzNy42MjIgMjAxLjE4OCAxMzcuMDI1IDIwMi40MDMgMTM2LjQzOUMyMDkuNTU2IDEzMi45ODcgMjE0LjkxIDEyNi43OTggMjE3LjM1OCAxMTkuMTU0QzIxNy43OTIgMTE3Ljc5OCAyMTguMDU3IDExNy4yMDQgMjE4LjE4NCAxMTcuM0MyMTguMjg3IDExNy4zNzggMjE4LjcxNCAxMTcuNzAzIDIxOS4xMzMgMTE4LjAyMlpNMjM5LjM5OSAxNDEuODI1QzI0MC42NzggMTQ0LjAyMyAyNDIuODA1IDE0OS4xNjMgMjQ0LjA5MSAxNTMuMTZDMjQ1LjE0MSAxNTYuNDI2IDI0NS4yMTggMTU2LjgxOCAyNDQuODk5IDE1Ny4zMDVDMjQ0LjQ1MyAxNTcuOTg1IDIzOC45OTEgMTYzLjUxMSAyMzcuMzc3IDE2NC45MTZDMjI5LjUxNCAxNzEuNzU2IDIyMC4yNTIgMTc2Ljg4MiAyMTAuNTc1IDE3OS43NUMyMDUuNzczIDE4MS4xNzMgMjAxLjM0NCAxODIuMDAxIDE5NS42MjMgMTgyLjU0NkMxOTQuNjk4IDE4Mi42MzQgMTg1Ljk0NSAxODIuNzE2IDE3Ni4xNzIgMTgyLjcyOUMxNTUuMDkgMTgyLjc1NSAxNTMuODA5IDE4Mi44MTEgMTQ2LjU5NyAxODQuMDAxQzEzMy44MDkgMTg2LjExMiAxMjAuNjg1IDE5MS43MDYgMTEwLjA5NCAxOTkuNTZDMTA5LjIwNSAyMDAuMjE5IDEwOC4zNjggMjAwLjc2NyAxMDguMjM1IDIwMC43NzdDMTA3Ljk1NCAyMDAuNzk4IDEwNy4zODIgMTk5LjIxOCAxMDYuMjQ0IDE5NS4yNzZDMTA1LjQyOSAxOTIuNDUyIDEwNC4yNDggMTg2LjgxNCAxMDQuMzMxIDE4Ni4xNEMxMDQuMzcxIDE4NS44MTkgMTA0Ljg5NyAxODUuNDAxIDEwNi43NiAxODQuMjExQzExNy42NTkgMTc3LjI0NiAxMjkuNDk5IDE3Mi40ODcgMTQxLjkyNSAxNzAuMDc1QzE0NS4zODMgMTY5LjQwNCAxNDUuOTMxIDE2OS4zMjIgMTQ5Ljk5NSAxNjguODY1QzE1NSAxNjguMzAyIDE1Ni42NjQgMTY4LjI2MSAxNzcuMDA2IDE2OC4yMDVDMTk1LjY3MiAxNjguMTUzIDE5NS44ODMgMTY4LjE0NCAyMDAuODc0IDE2Ny4xNzRDMjA4LjYzNiAxNjUuNjY3IDIxNi4yMDcgMTYyLjQ3MyAyMjIuNjI4IDE1Ny45OThDMjI4LjUzMyAxNTMuODgyIDIzNC40MDMgMTQ3Ljg5MiAyMzcuOTcgMTQyLjM0QzIzOC40MDMgMTQxLjY2NiAyMzguODA3IDE0MS4xMTIgMjM4Ljg2OCAxNDEuMTA5QzIzOC45MjkgMTQxLjEwNiAyMzkuMTY4IDE0MS40MjggMjM5LjM5OSAxNDEuODI1Wk0yNDcuNjc1IDE3Ni44MDhDMjQ3LjY3MiAxODEuNTQ5IDI0Ni43NTUgMTg4LjE3NyAyNDUuMzU5IDE5My41MzNDMjQ0Ljk1NyAxOTUuMDc3IDI0NC44NDcgMTk1LjMwOCAyNDQuMzggMTk1LjU5QzI0NC4wOSAxOTUuNzY2IDI0My4zMTggMTk2LjIzOCAyNDIuNjY0IDE5Ni42NDFDMjMwLjUzNCAyMDQuMTA4IDIxNi40MTUgMjA5LjEzNyAyMDMuMTIxIDIxMC43MjVDMjAxLjUxMSAyMTAuOTE3IDE5OS41NDQgMjExLjE2MyAxOTguNzUgMjExLjI3MUMxOTcuNzcgMjExLjQwNCAxOTAuNzU0IDIxMS41MDcgMTc2LjkyMSAyMTEuNTkxQzE2NS43MDkgMjExLjY1OCAxNTYuMzA2IDIxMS43NTYgMTU2LjAyNSAyMTEuODA3QzE1NS43NDUgMjExLjg1OSAxNTQuNzkgMjExLjk4OSAxNTMuOTAyIDIxMi4wOTdDMTQzLjc3MiAyMTMuMzI1IDEzMy4yMDggMjE3Ljg1OSAxMjUuMTU2IDIyNC40MzRDMTI0LjQzNiAyMjUuMDIyIDEyMy43NzIgMjI1LjUwMyAxMjMuNjggMjI1LjUwM0MxMjMuMTkxIDIyNS41MDMgMTE4LjA5MiAyMTkuMjc5IDExNS44OSAyMTUuOTk0QzExNC45NDQgMjE0LjU4MiAxMTQuNzM2IDIxNC4xNjEgMTE0Ljg5IDIxMy45NzJDMTE1LjIyNyAyMTMuNTU4IDExOS40MjggMjEwLjM5MSAxMjEuMiAyMDkuMjE1QzEyNy40NDEgMjA1LjA3NCAxMzQuMTA1IDIwMS45NjQgMTQwLjk5MSAxOTkuOThDMTQ1LjAwMyAxOTguODI0IDE0Ny45NDkgMTk4LjIyNyAxNTMuMDM3IDE5Ny41NDJDMTU1LjMzMiAxOTcuMjMzIDE1OC42NjcgMTk3LjE3NSAxODAuMTQ4IDE5Ny4wNzJDMTk1Ljg1OCAxOTYuOTk2IDE5Ny4xMiAxOTYuOTQ2IDIwMi4zMTggMTk2LjE5N0MyMTQuNzAxIDE5NC40MTIgMjI2LjYyNyAxODkuODU3IDIzNy4zOTggMTgyLjc5N0MyMzkuNTQ4IDE4MS4zODggMjQzLjcxMiAxNzguMjU2IDI0NS43MjIgMTc2LjUzNUMyNDYuNjU2IDE3NS43MzUgMjQ3LjQ3OCAxNzUuMDc4IDI0Ny41NDggMTc1LjA3NEMyNDcuNjE4IDE3NS4wNyAyNDcuNjc1IDE3NS44NSAyNDcuNjc1IDE3Ni44MDhaTTIzNC40MjUgMjE3LjEyOUMyMzQuNDI1IDIxNy4yOTQgMjMyLjIxOCAyMjAuMTc1IDIzMC42MTYgMjIyLjEwMkMyMjguODg1IDIyNC4xODUgMjIzLjkyOSAyMjkuMTM0IDIyMS44NjYgMjMwLjg0MUMyMTAuMzQ3IDI0MC4zNzEgMTk3LjE0MSAyNDUuOTA2IDE4Mi4yNzIgMjQ3LjQzNUMxNzkuMjIyIDI0Ny43NDggMTcxLjA4OSAyNDcuNjk4IDE2OC4xMDQgMjQ3LjM0NkMxNjAuNTU1IDI0Ni40NTggMTUzLjk3MiAyNDQuNzYzIDE0Ny40NDcgMjQyLjAyOEMxNDUuOTEzIDI0MS4zODUgMTQxLjgxNCAyMzkuMzc5IDE0MC41MDMgMjM4LjYyOUMxMzcuODA3IDIzNy4wODkgMTM0Ljg3MyAyMzUuMjExIDEzNC44NzggMjM1LjAzMUMxMzQuODg4IDIzNC42ODQgMTM5LjY4MSAyMzEuNjU0IDE0Mi4xOTUgMjMwLjQwN0MxNDYuMDU3IDIyOC40OSAxNDkuNDU3IDIyNy4zOTcgMTU0LjM5IDIyNi40ODdDMTU2LjMxMiAyMjYuMTMyIDE1Ni45MTEgMjI2LjExOSAxNzYuNDExIDIyNi4wMDFDMTg3LjQzNiAyMjUuOTM0IDE5Ni44MDEgMjI1LjgzNSAxOTcuMjIxIDIyNS43OEMxOTcuNjQyIDIyNS43MjUgMTk5LjAxOCAyMjUuNTk3IDIwMC4yNzkgMjI1LjQ5NEMyMDUuMTI2IDIyNS4xIDIxMS44NDMgMjIzLjk3NiAyMTYuOTU5IDIyMi43MDRDMjE5LjYzOSAyMjIuMDM4IDIyNC4xNTggMjIwLjc5NCAyMjQuNjU3IDIyMC41ODZDMjI0Ljg0NCAyMjAuNTA4IDIyNi4wMjkgMjIwLjA5MiAyMjcuMjkgMjE5LjY2MkMyMjguNTUxIDIxOS4yMzEgMjMwLjYxNSAyMTguNDY2IDIzMS44NzcgMjE3Ljk2MUMyMzQuMzIzIDIxNi45ODIgMjM0LjQyNSAyMTYuOTQ5IDIzNC40MjUgMjE3LjEyOVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=';
65
68
 
66
69
  protected _provider: IMartianWallet | undefined;
67
70
 
@@ -183,16 +186,16 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
183
186
  const provider = this._provider || window.martian;
184
187
  if (!wallet || !provider) throw new WalletNotConnectedError();
185
188
  const tx = await provider.generateTransaction(wallet.address || '', transactionPyld);
186
- if (!tx) throw new WalletSignTransactionError('Cannot generate transaction');
189
+ if (!tx) throw new Error('Cannot generate transaction');
187
190
  const response = await provider?.signTransaction(tx);
188
191
 
189
192
  if (!response) {
190
- throw new WalletSignTransactionError('No response');
193
+ throw new Error('No response');
191
194
  }
192
195
  const result = { hash: response } as any;
193
196
  return result as SubmitTransactionRequest;
194
197
  } catch (error: any) {
195
- this.emit('error', error);
198
+ this.emit('error', new WalletSignTransactionError(error));
196
199
  throw error;
197
200
  }
198
201
  }
@@ -205,15 +208,33 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
205
208
  const provider = this._provider || window.martian;
206
209
  if (!wallet || !provider) throw new WalletNotConnectedError();
207
210
  const tx = await provider.generateTransaction(wallet.address || '', transactionPyld);
208
- if (!tx) throw new WalletSignTransactionError('Cannot generate transaction');
211
+ if (!tx) throw new Error('Cannot generate transaction');
209
212
  const response = await provider?.signAndSubmitTransaction(tx);
210
213
 
211
214
  if (!response) {
212
- throw new WalletSignTransactionError('No response');
215
+ throw new Error('No response');
213
216
  }
214
217
  return { hash: response };
215
218
  } catch (error: any) {
216
- this.emit('error', new Error(error));
219
+ this.emit('error', new WalletSignAndSubmitMessageError(error));
220
+ throw error;
221
+ }
222
+ }
223
+
224
+ async signMessage(message: string): Promise<string> {
225
+ try {
226
+ const wallet = this._wallet;
227
+ const provider = this._provider || window.martian;
228
+ if (!wallet || !provider) throw new WalletNotConnectedError();
229
+ const response = await provider?.signMessage(message);
230
+ if (response) {
231
+ return response;
232
+ } else {
233
+ throw new Error('Sign Message failed');
234
+ }
235
+ } catch (error: any) {
236
+ const errMsg = error.message;
237
+ this.emit('error', new WalletSignMessageError(errMsg));
217
238
  throw error;
218
239
  }
219
240
  }
@@ -8,6 +8,8 @@ import {
8
8
  WalletDisconnectionError,
9
9
  WalletNotConnectedError,
10
10
  WalletNotReadyError,
11
+ WalletSignAndSubmitMessageError,
12
+ WalletSignMessageError,
11
13
  WalletSignTransactionError
12
14
  } from '../WalletProviders/errors';
13
15
  import {
@@ -35,13 +37,17 @@ interface IPontemWallet {
35
37
  connect: () => Promise<ConnectPontemAccount>;
36
38
  account(): Promise<MaybeHexString>;
37
39
  generateTransaction(sender: MaybeHexString, payload: any): Promise<any>;
38
- signAndSubmit(transaction: TransactionPayload): Promise<{
40
+ signAndSubmit(
41
+ transaction: TransactionPayload,
42
+ options?: any
43
+ ): Promise<{
39
44
  success: boolean;
40
45
  result: {
41
46
  hash: HexEncodedBytes;
42
47
  };
43
48
  }>;
44
49
  // signTransaction(transaction: TransactionPayload): Promise<HexEncodedBytes>;
50
+ signMessage(message: string): Promise<string>;
45
51
  disconnect(): Promise<void>;
46
52
  }
47
53
 
@@ -51,7 +57,7 @@ interface PontemWindow extends Window {
51
57
 
52
58
  declare const window: PontemWindow;
53
59
 
54
- export const PontemWalletName = 'PontemWallet' as WalletName<'PontemWallet'>;
60
+ export const PontemWalletName = 'Pontem' as WalletName<'Pontem'>;
55
61
 
56
62
  export interface PontemWalletAdapterConfig {
57
63
  provider?: IPontemWallet;
@@ -199,26 +205,45 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
199
205
  // const result = { hash: response } as any;
200
206
  return {} as SubmitTransactionRequest;
201
207
  } catch (error: any) {
202
- this.emit('error', error);
208
+ this.emit('error', new WalletSignTransactionError(error));
203
209
  throw error;
204
210
  }
205
211
  }
206
212
 
207
213
  async signAndSubmitTransaction(
208
- transactionPyld: TransactionPayload
214
+ transactionPyld: TransactionPayload,
215
+ options?: any
209
216
  ): Promise<{ hash: HexEncodedBytes }> {
210
217
  try {
211
218
  const wallet = this._wallet;
212
219
  const provider = this._provider || window.pontem;
213
220
  if (!wallet || !provider) throw new WalletNotConnectedError();
214
- const response = await provider?.signAndSubmit(transactionPyld);
221
+ const response = await provider?.signAndSubmit(transactionPyld, options);
215
222
 
216
223
  if (!response || !response.success) {
217
- throw new WalletSignTransactionError('No response');
224
+ throw new Error('No response');
218
225
  }
219
226
  return { hash: response.result.hash };
220
227
  } catch (error: any) {
221
- this.emit('error', new Error(error.error.message));
228
+ this.emit('error', new WalletSignAndSubmitMessageError(error.error.message));
229
+ throw error;
230
+ }
231
+ }
232
+
233
+ async signMessage(message: string): Promise<string> {
234
+ try {
235
+ const wallet = this._wallet;
236
+ const provider = this._provider || window.pontem;
237
+ if (!wallet || !provider) throw new WalletNotConnectedError();
238
+ const response = await provider?.signMessage(message);
239
+ if (response) {
240
+ return response;
241
+ } else {
242
+ throw new Error('Sign Message failed');
243
+ }
244
+ } catch (error: any) {
245
+ const errMsg = error.message;
246
+ this.emit('error', new WalletSignMessageError(errMsg));
222
247
  throw error;
223
248
  }
224
249
  }
@@ -0,0 +1,229 @@
1
+ import {
2
+ HexEncodedBytes,
3
+ SubmitTransactionRequest,
4
+ TransactionPayload
5
+ } from 'aptos/dist/generated';
6
+ import {
7
+ WalletDisconnectionError,
8
+ WalletNotConnectedError,
9
+ WalletNotReadyError,
10
+ WalletSignAndSubmitMessageError,
11
+ WalletSignMessageError,
12
+ WalletSignTransactionError
13
+ } from '../WalletProviders/errors';
14
+ import {
15
+ AccountKeys,
16
+ BaseWalletAdapter,
17
+ scopePollingDetectionStrategy,
18
+ WalletName,
19
+ WalletReadyState
20
+ } from './BaseAdapter';
21
+
22
+ interface ISpikaWallet {
23
+ connect: () => Promise<{ publicKey: string; account: string; authKey: string }>;
24
+ account: () => Promise<string>;
25
+ isConnected: () => Promise<boolean>;
26
+ signAndSubmitTransaction(transaction: any): Promise<{ hash: HexEncodedBytes }>;
27
+ signTransaction(transaction: any): Promise<SubmitTransactionRequest>;
28
+ signMessage(message: string): Promise<string>;
29
+ disconnect(): Promise<void>;
30
+ }
31
+
32
+ interface SpikaWindow extends Window {
33
+ spika?: ISpikaWallet;
34
+ }
35
+
36
+ declare const window: SpikaWindow;
37
+
38
+ export const SpikaWalletName = 'Spika' as WalletName<'Spika'>;
39
+
40
+ export interface SpikaWalletAdapterConfig {
41
+ provider?: ISpikaWallet;
42
+ // network?: WalletAdapterNetwork;
43
+ timeout?: number;
44
+ }
45
+
46
+ export class SpikaWalletAdapter extends BaseWalletAdapter {
47
+ name = SpikaWalletName;
48
+
49
+ url = 'https://chrome.google.com/webstore/detail/spika/fadkojdgchhfkdkklllhcphknohbmjmb';
50
+
51
+ icon = 'https://pbs.twimg.com/profile_images/1562544739181887488/vSqEIeyh_400x400.png';
52
+
53
+ protected _provider: ISpikaWallet | undefined;
54
+
55
+ // protected _network: WalletAdapterNetwork;
56
+ protected _timeout: number;
57
+
58
+ protected _readyState: WalletReadyState =
59
+ typeof window === 'undefined' || typeof document === 'undefined'
60
+ ? WalletReadyState.Unsupported
61
+ : WalletReadyState.NotDetected;
62
+
63
+ protected _connecting: boolean;
64
+
65
+ protected _wallet: any | null;
66
+
67
+ constructor({
68
+ // provider,
69
+ // network = WalletAdapterNetwork.Mainnet,
70
+ timeout = 10000
71
+ }: SpikaWalletAdapterConfig = {}) {
72
+ super();
73
+
74
+ this._provider = typeof window !== 'undefined' ? window.spika : undefined;
75
+ // this._network = network;
76
+ this._timeout = timeout;
77
+ this._connecting = false;
78
+ this._wallet = null;
79
+
80
+ if (typeof window !== 'undefined' && this._readyState !== WalletReadyState.Unsupported) {
81
+ scopePollingDetectionStrategy(() => {
82
+ if (window.spika) {
83
+ this._readyState = WalletReadyState.Installed;
84
+ this.emit('readyStateChange', this._readyState);
85
+ return true;
86
+ }
87
+ return false;
88
+ });
89
+ }
90
+ }
91
+
92
+ get publicAccount(): AccountKeys {
93
+ return {
94
+ publicKey: this._wallet?.publicKey || null,
95
+ address: this._wallet?.address || null,
96
+ authKey: this._wallet?.authKey || null
97
+ };
98
+ }
99
+
100
+ get connecting(): boolean {
101
+ return this._connecting;
102
+ }
103
+
104
+ get connected(): boolean {
105
+ return !!this._wallet?.isConnected;
106
+ }
107
+
108
+ get readyState(): WalletReadyState {
109
+ return this._readyState;
110
+ }
111
+
112
+ async connect(): Promise<void> {
113
+ try {
114
+ if (this.connected || this.connecting) {
115
+ return;
116
+ }
117
+
118
+ if (
119
+ !(
120
+ this._readyState === WalletReadyState.Loadable ||
121
+ this._readyState === WalletReadyState.Installed
122
+ )
123
+ )
124
+ throw new WalletNotReadyError();
125
+ this._connecting = true;
126
+
127
+ const provider = this._provider || window.spika;
128
+ const isConnected = await this._provider?.isConnected();
129
+ if (isConnected === true) {
130
+ await provider?.disconnect();
131
+ }
132
+
133
+ const response = await provider?.connect();
134
+ if (response?.publicKey !== undefined) {
135
+ this._wallet = {
136
+ publicKey: response?.publicKey,
137
+ address: response?.account,
138
+ authKey: response?.authKey,
139
+ isConnected: true
140
+ };
141
+ } else {
142
+ this._wallet = {
143
+ isConnected: false
144
+ };
145
+ }
146
+
147
+ this.emit('connect', this._wallet.publicKey);
148
+ } catch (error: any) {
149
+ this.emit('error', error);
150
+ throw error;
151
+ } finally {
152
+ this._connecting = false;
153
+ }
154
+ }
155
+
156
+ async disconnect(): Promise<void> {
157
+ const wallet = this._wallet;
158
+ if (wallet) {
159
+ this._wallet = null;
160
+
161
+ try {
162
+ const provider = this._provider || window.spika;
163
+ await provider?.disconnect();
164
+ } catch (error: any) {
165
+ this.emit('error', new WalletDisconnectionError(error?.message, error));
166
+ }
167
+ }
168
+
169
+ this.emit('disconnect');
170
+ }
171
+
172
+ async signTransaction(transaction: TransactionPayload): Promise<SubmitTransactionRequest> {
173
+ try {
174
+ const wallet = this._wallet;
175
+ const provider = this._provider || window.spika;
176
+ if (!wallet || !provider) throw new WalletNotConnectedError();
177
+
178
+ const response = await provider?.signTransaction(transaction);
179
+ if (response) {
180
+ return response;
181
+ } else {
182
+ throw new Error('Sign Transaction failed');
183
+ }
184
+ } catch (error: any) {
185
+ const errMsg = error.message;
186
+ this.emit('error', new WalletSignTransactionError(errMsg));
187
+ throw error;
188
+ }
189
+ }
190
+
191
+ async signAndSubmitTransaction(
192
+ transaction: TransactionPayload
193
+ ): Promise<{ hash: HexEncodedBytes }> {
194
+ try {
195
+ const wallet = this._wallet;
196
+ const provider = this._provider || window.spika;
197
+ if (!wallet || !provider) throw new WalletNotConnectedError();
198
+
199
+ const response = await provider?.signAndSubmitTransaction(transaction);
200
+ if (response) {
201
+ return response;
202
+ } else {
203
+ throw new Error('Transaction failed');
204
+ }
205
+ } catch (error: any) {
206
+ const errMsg = error.message;
207
+ this.emit('error', new WalletSignAndSubmitMessageError(errMsg));
208
+ throw error;
209
+ }
210
+ }
211
+
212
+ async signMessage(message: string): Promise<string> {
213
+ try {
214
+ const wallet = this._wallet;
215
+ const provider = this._provider || window.spika;
216
+ if (!wallet || !provider) throw new WalletNotConnectedError();
217
+ const response = await provider?.signMessage(message);
218
+ if (response) {
219
+ return response;
220
+ } else {
221
+ throw new Error('Sign Message failed');
222
+ }
223
+ } catch (error: any) {
224
+ const errMsg = error.message;
225
+ this.emit('error', new WalletSignMessageError(errMsg));
226
+ throw error;
227
+ }
228
+ }
229
+ }
@@ -3,7 +3,7 @@ export * from './BaseAdapter';
3
3
  export * from './HippoExtensionWallet';
4
4
  export * from './HippoWallet';
5
5
  export * from './MartianWallet';
6
- export * from './MultiMaskWallet';
7
6
  export * from './FewchaWallet';
8
7
  export * from './PontemWallet';
9
8
  // export * from './NightlyWallet';
9
+ export * from './SpikaWallet';