@manahippo/aptos-wallet-adapter 0.4.5 → 0.4.7
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 +4 -2
- package/dist/WalletAdapters/AptosSnap.d.ts +15 -9
- package/dist/WalletAdapters/AptosSnap.d.ts.map +1 -1
- package/dist/WalletAdapters/AptosSnap.js +41 -2
- package/dist/WalletAdapters/AptosSnap.js.map +1 -1
- package/dist/WalletAdapters/BaseAdapter.d.ts +25 -8
- package/dist/WalletAdapters/BaseAdapter.d.ts.map +1 -1
- package/dist/WalletAdapters/BaseAdapter.js +7 -1
- package/dist/WalletAdapters/BaseAdapter.js.map +1 -1
- package/dist/WalletAdapters/FewchaWallet.d.ts +11 -5
- package/dist/WalletAdapters/FewchaWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/FewchaWallet.js +54 -3
- package/dist/WalletAdapters/FewchaWallet.js.map +1 -1
- package/dist/WalletAdapters/FletchWallet.d.ts +11 -5
- package/dist/WalletAdapters/FletchWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/FletchWallet.js +41 -2
- package/dist/WalletAdapters/FletchWallet.js.map +1 -1
- package/dist/WalletAdapters/HippoExtensionWallet.d.ts +11 -6
- package/dist/WalletAdapters/HippoExtensionWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/HippoExtensionWallet.js +41 -2
- package/dist/WalletAdapters/HippoExtensionWallet.js.map +1 -1
- package/dist/WalletAdapters/HippoWallet.d.ts +11 -6
- package/dist/WalletAdapters/HippoWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/HippoWallet.js +33 -2
- package/dist/WalletAdapters/HippoWallet.js.map +1 -1
- package/dist/WalletAdapters/HyperPayWallet.d.ts +13 -8
- package/dist/WalletAdapters/HyperPayWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/HyperPayWallet.js +39 -0
- package/dist/WalletAdapters/HyperPayWallet.js.map +1 -1
- package/dist/WalletAdapters/MartianWallet.d.ts +19 -8
- package/dist/WalletAdapters/MartianWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/MartianWallet.js +63 -2
- package/dist/WalletAdapters/MartianWallet.js.map +1 -1
- package/dist/WalletAdapters/NightlyWallet.d.ts +8 -2
- package/dist/WalletAdapters/NightlyWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/NightlyWallet.js +44 -7
- package/dist/WalletAdapters/NightlyWallet.js.map +1 -1
- package/dist/WalletAdapters/PetraWallet.d.ts +25 -11
- package/dist/WalletAdapters/PetraWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/PetraWallet.js +66 -2
- package/dist/WalletAdapters/PetraWallet.js.map +1 -1
- package/dist/WalletAdapters/PontemWallet.d.ts +17 -9
- package/dist/WalletAdapters/PontemWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/PontemWallet.js +65 -2
- package/dist/WalletAdapters/PontemWallet.js.map +1 -1
- package/dist/WalletAdapters/RiseWallet.d.ts +12 -7
- package/dist/WalletAdapters/RiseWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/RiseWallet.js +41 -2
- package/dist/WalletAdapters/RiseWallet.js.map +1 -1
- package/dist/WalletAdapters/SpikaWallet.d.ts +12 -6
- package/dist/WalletAdapters/SpikaWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/SpikaWallet.js +41 -2
- package/dist/WalletAdapters/SpikaWallet.js.map +1 -1
- package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
- package/dist/WalletProviders/WalletProvider.js +45 -6
- package/dist/WalletProviders/WalletProvider.js.map +1 -1
- package/dist/WalletProviders/errors.d.ts +9 -0
- package/dist/WalletProviders/errors.d.ts.map +1 -1
- package/dist/WalletProviders/errors.js +22 -1
- package/dist/WalletProviders/errors.js.map +1 -1
- package/dist/WalletProviders/useWallet.d.ts +6 -5
- package/dist/WalletProviders/useWallet.d.ts.map +1 -1
- package/dist/WalletProviders/useWallet.js.map +1 -1
- package/dist/utilities/util.d.ts +2 -2
- package/dist/utilities/util.d.ts.map +1 -1
- package/dist/utilities/util.js.map +1 -1
- package/package.json +2 -2
- package/src/WalletAdapters/AptosSnap.ts +58 -20
- package/src/WalletAdapters/BaseAdapter.ts +29 -8
- package/src/WalletAdapters/FewchaWallet.ts +72 -10
- package/src/WalletAdapters/FletchWallet.ts +226 -182
- package/src/WalletAdapters/HippoExtensionWallet.ts +50 -8
- package/src/WalletAdapters/HippoWallet.ts +51 -10
- package/src/WalletAdapters/HyperPayWallet.ts +53 -8
- package/src/WalletAdapters/MartianWallet.ts +86 -10
- package/src/WalletAdapters/NightlyWallet.ts +54 -10
- package/src/WalletAdapters/PetraWallet.ts +91 -11
- package/src/WalletAdapters/PontemWallet.ts +87 -11
- package/src/WalletAdapters/RiseWallet.ts +51 -9
- package/src/WalletAdapters/SpikaWallet.ts +54 -8
- package/src/WalletProviders/WalletProvider.tsx +57 -8
- package/src/WalletProviders/errors.ts +11 -0
- package/src/WalletProviders/useWallet.ts +6 -4
- package/src/utilities/util.ts +3 -3
@@ -1,12 +1,20 @@
|
|
1
|
-
import { MaybeHexString } from 'aptos';
|
2
|
-
import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
|
1
|
+
import { MaybeHexString, Types } from 'aptos';
|
3
2
|
import { WEBWALLET_URL } from '../config/aptosConstants';
|
4
3
|
import {
|
4
|
+
WalletAccountChangeError,
|
5
|
+
WalletNetworkChangeError,
|
5
6
|
WalletNotConnectedError,
|
6
7
|
WalletNotReadyError,
|
7
8
|
WalletSignAndSubmitMessageError
|
8
9
|
} from '../WalletProviders/errors';
|
9
|
-
import {
|
10
|
+
import {
|
11
|
+
AccountKeys,
|
12
|
+
BaseWalletAdapter,
|
13
|
+
NetworkInfo,
|
14
|
+
WalletAdapterNetwork,
|
15
|
+
WalletName,
|
16
|
+
WalletReadyState
|
17
|
+
} from './BaseAdapter';
|
10
18
|
|
11
19
|
export const HippoWalletName = 'Hippo Web' as WalletName<'Hippo Web'>;
|
12
20
|
|
@@ -25,7 +33,12 @@ export class HippoWalletAdapter extends BaseWalletAdapter {
|
|
25
33
|
|
26
34
|
protected _provider: string | undefined;
|
27
35
|
|
28
|
-
|
36
|
+
protected _network: WalletAdapterNetwork;
|
37
|
+
|
38
|
+
protected _chainId: string;
|
39
|
+
|
40
|
+
protected _api: string;
|
41
|
+
|
29
42
|
protected _timeout: number;
|
30
43
|
|
31
44
|
protected _readyState: WalletReadyState = WalletReadyState.Installed;
|
@@ -36,13 +49,13 @@ export class HippoWalletAdapter extends BaseWalletAdapter {
|
|
36
49
|
|
37
50
|
constructor({
|
38
51
|
// provider = WEBWALLET_URL,
|
39
|
-
// network = WalletAdapterNetwork.
|
52
|
+
// network = WalletAdapterNetwork.Testnet,
|
40
53
|
timeout = 10000
|
41
54
|
}: HippoWalletAdapterConfig = {}) {
|
42
55
|
super();
|
43
56
|
|
44
57
|
this._provider = WEBWALLET_URL || 'https://hippo-wallet-test.web.app';
|
45
|
-
|
58
|
+
this._network = undefined;
|
46
59
|
this._timeout = timeout;
|
47
60
|
this._connecting = false;
|
48
61
|
this._wallet = null;
|
@@ -57,6 +70,14 @@ export class HippoWalletAdapter extends BaseWalletAdapter {
|
|
57
70
|
};
|
58
71
|
}
|
59
72
|
|
73
|
+
get network(): NetworkInfo {
|
74
|
+
return {
|
75
|
+
name: this._network,
|
76
|
+
api: this._api,
|
77
|
+
chainId: this._chainId
|
78
|
+
};
|
79
|
+
}
|
80
|
+
|
60
81
|
get connecting(): boolean {
|
61
82
|
return this._connecting;
|
62
83
|
}
|
@@ -137,7 +158,7 @@ export class HippoWalletAdapter extends BaseWalletAdapter {
|
|
137
158
|
this.emit('disconnect');
|
138
159
|
}
|
139
160
|
|
140
|
-
async signTransaction(transaction: TransactionPayload): Promise<Uint8Array> {
|
161
|
+
async signTransaction(transaction: Types.TransactionPayload): Promise<Uint8Array> {
|
141
162
|
try {
|
142
163
|
const request = new URLSearchParams({
|
143
164
|
request: JSON.stringify({
|
@@ -165,8 +186,8 @@ export class HippoWalletAdapter extends BaseWalletAdapter {
|
|
165
186
|
}
|
166
187
|
|
167
188
|
async signAndSubmitTransaction(
|
168
|
-
transaction: TransactionPayload
|
169
|
-
): Promise<{ hash: HexEncodedBytes }> {
|
189
|
+
transaction: Types.TransactionPayload
|
190
|
+
): Promise<{ hash: Types.HexEncodedBytes }> {
|
170
191
|
try {
|
171
192
|
const request = new URLSearchParams({
|
172
193
|
request: JSON.stringify({
|
@@ -185,7 +206,7 @@ export class HippoWalletAdapter extends BaseWalletAdapter {
|
|
185
206
|
this.once('success', resolve);
|
186
207
|
this.once('error', reject);
|
187
208
|
});
|
188
|
-
return promise as { hash: HexEncodedBytes };
|
209
|
+
return promise as { hash: Types.HexEncodedBytes };
|
189
210
|
} catch (error: any) {
|
190
211
|
this.emit('error', error);
|
191
212
|
throw error;
|
@@ -218,6 +239,26 @@ export class HippoWalletAdapter extends BaseWalletAdapter {
|
|
218
239
|
}
|
219
240
|
}
|
220
241
|
|
242
|
+
async onAccountChange(): Promise<void> {
|
243
|
+
try {
|
244
|
+
//To be implemented
|
245
|
+
} catch (error: any) {
|
246
|
+
const errMsg = error.message;
|
247
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
248
|
+
throw error;
|
249
|
+
}
|
250
|
+
}
|
251
|
+
|
252
|
+
async onNetworkChange(): Promise<void> {
|
253
|
+
try {
|
254
|
+
//To be implemented
|
255
|
+
} catch (error: any) {
|
256
|
+
const errMsg = error.message;
|
257
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
258
|
+
throw error;
|
259
|
+
}
|
260
|
+
}
|
261
|
+
|
221
262
|
private _beforeUnload = (): void => {
|
222
263
|
void this.disconnect();
|
223
264
|
};
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import { MaybeHexString } from 'aptos';
|
2
|
-
import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
|
1
|
+
import { MaybeHexString, Types } from 'aptos';
|
3
2
|
import {
|
3
|
+
WalletAccountChangeError,
|
4
4
|
WalletDisconnectionError,
|
5
|
+
WalletNetworkChangeError,
|
5
6
|
WalletNotConnectedError,
|
6
7
|
WalletNotReadyError,
|
7
8
|
WalletSignAndSubmitMessageError,
|
@@ -11,7 +12,9 @@ import {
|
|
11
12
|
import {
|
12
13
|
AccountKeys,
|
13
14
|
BaseWalletAdapter,
|
15
|
+
NetworkInfo,
|
14
16
|
scopePollingDetectionStrategy,
|
17
|
+
WalletAdapterNetwork,
|
15
18
|
WalletName,
|
16
19
|
WalletReadyState
|
17
20
|
} from './BaseAdapter';
|
@@ -34,8 +37,8 @@ interface IHyperPayWallet {
|
|
34
37
|
account(): Promise<HyperPayAccount>;
|
35
38
|
isConnected(): Promise<boolean>;
|
36
39
|
generateTransaction(sender: MaybeHexString, payload: any, options?: any): Promise<any>;
|
37
|
-
signAndSubmitTransaction(transaction: TransactionPayload): Promise<HexEncodedBytes>;
|
38
|
-
signTransaction(transaction: TransactionPayload): Promise<Uint8Array>;
|
40
|
+
signAndSubmitTransaction(transaction: Types.TransactionPayload): Promise<Types.HexEncodedBytes>;
|
41
|
+
signTransaction(transaction: Types.TransactionPayload): Promise<Uint8Array>;
|
39
42
|
signMessage(message: string): Promise<{ signature: string }>;
|
40
43
|
disconnect(): Promise<void>;
|
41
44
|
}
|
@@ -64,7 +67,12 @@ export class HyperPayWalletAdapter extends BaseWalletAdapter {
|
|
64
67
|
|
65
68
|
protected _provider: IHyperPayWallet | undefined;
|
66
69
|
|
67
|
-
|
70
|
+
protected _network: WalletAdapterNetwork;
|
71
|
+
|
72
|
+
protected _chainId: string;
|
73
|
+
|
74
|
+
protected _api: string;
|
75
|
+
|
68
76
|
protected _timeout: number;
|
69
77
|
|
70
78
|
protected _readyState: WalletReadyState =
|
@@ -109,6 +117,14 @@ export class HyperPayWalletAdapter extends BaseWalletAdapter {
|
|
109
117
|
};
|
110
118
|
}
|
111
119
|
|
120
|
+
get network(): NetworkInfo {
|
121
|
+
return {
|
122
|
+
name: this._network,
|
123
|
+
api: this._api,
|
124
|
+
chainId: this._chainId
|
125
|
+
};
|
126
|
+
}
|
127
|
+
|
112
128
|
get connecting(): boolean {
|
113
129
|
return this._connecting;
|
114
130
|
}
|
@@ -176,7 +192,10 @@ export class HyperPayWalletAdapter extends BaseWalletAdapter {
|
|
176
192
|
this.emit('disconnect');
|
177
193
|
}
|
178
194
|
|
179
|
-
async signTransaction(
|
195
|
+
async signTransaction(
|
196
|
+
transactionPyld: Types.TransactionPayload,
|
197
|
+
options?: any
|
198
|
+
): Promise<Uint8Array> {
|
180
199
|
try {
|
181
200
|
const wallet = this._wallet;
|
182
201
|
const provider = this._provider || window.hyperpay;
|
@@ -196,9 +215,9 @@ export class HyperPayWalletAdapter extends BaseWalletAdapter {
|
|
196
215
|
}
|
197
216
|
|
198
217
|
async signAndSubmitTransaction(
|
199
|
-
transactionPyld: TransactionPayload,
|
218
|
+
transactionPyld: Types.TransactionPayload,
|
200
219
|
options?: any
|
201
|
-
): Promise<{ hash: HexEncodedBytes }> {
|
220
|
+
): Promise<{ hash: Types.HexEncodedBytes }> {
|
202
221
|
try {
|
203
222
|
const wallet = this._wallet;
|
204
223
|
const provider = this._provider || window.hyperpay;
|
@@ -234,4 +253,30 @@ export class HyperPayWalletAdapter extends BaseWalletAdapter {
|
|
234
253
|
throw error;
|
235
254
|
}
|
236
255
|
}
|
256
|
+
|
257
|
+
async onAccountChange(): Promise<void> {
|
258
|
+
try {
|
259
|
+
const wallet = this._wallet;
|
260
|
+
const provider = this._provider || window.hyperpay;
|
261
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
262
|
+
//To be implemented
|
263
|
+
} catch (error: any) {
|
264
|
+
const errMsg = error.message;
|
265
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
266
|
+
throw error;
|
267
|
+
}
|
268
|
+
}
|
269
|
+
|
270
|
+
async onNetworkChange(): Promise<void> {
|
271
|
+
try {
|
272
|
+
const wallet = this._wallet;
|
273
|
+
const provider = this._provider || window.hyperpay;
|
274
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
275
|
+
//To be implemented
|
276
|
+
} catch (error: any) {
|
277
|
+
const errMsg = error.message;
|
278
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
279
|
+
throw error;
|
280
|
+
}
|
281
|
+
}
|
237
282
|
}
|
@@ -1,7 +1,9 @@
|
|
1
|
-
import { MaybeHexString } from 'aptos';
|
2
|
-
import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
|
1
|
+
import { MaybeHexString, Types } from 'aptos';
|
3
2
|
import {
|
3
|
+
WalletAccountChangeError,
|
4
4
|
WalletDisconnectionError,
|
5
|
+
WalletGetNetworkError,
|
6
|
+
WalletNetworkChangeError,
|
5
7
|
WalletNotConnectedError,
|
6
8
|
WalletNotReadyError,
|
7
9
|
WalletSignAndSubmitMessageError,
|
@@ -11,9 +13,11 @@ import {
|
|
11
13
|
import {
|
12
14
|
AccountKeys,
|
13
15
|
BaseWalletAdapter,
|
16
|
+
NetworkInfo,
|
14
17
|
scopePollingDetectionStrategy,
|
15
18
|
SignMessagePayload,
|
16
19
|
SignMessageResponse,
|
20
|
+
WalletAdapterNetwork,
|
17
21
|
WalletName,
|
18
22
|
WalletReadyState
|
19
23
|
} from './BaseAdapter';
|
@@ -36,10 +40,14 @@ interface IMartianWallet {
|
|
36
40
|
account(): Promise<MartianAccount>;
|
37
41
|
isConnected(): Promise<boolean>;
|
38
42
|
generateTransaction(sender: MaybeHexString, payload: any, options?: any): Promise<any>;
|
39
|
-
signAndSubmitTransaction(transaction: TransactionPayload): Promise<HexEncodedBytes>;
|
40
|
-
signTransaction(transaction: TransactionPayload): Promise<Uint8Array>;
|
43
|
+
signAndSubmitTransaction(transaction: Types.TransactionPayload): Promise<Types.HexEncodedBytes>;
|
44
|
+
signTransaction(transaction: Types.TransactionPayload): Promise<Uint8Array>;
|
41
45
|
signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
|
42
46
|
disconnect(): Promise<void>;
|
47
|
+
getChainId(): Promise<{ chainId: number }>;
|
48
|
+
network(): Promise<WalletAdapterNetwork>;
|
49
|
+
onAccountChange: (listenr: (newAddress: string) => void) => void;
|
50
|
+
onNetworkChange: (listenr: (network: string) => void) => void;
|
43
51
|
}
|
44
52
|
|
45
53
|
interface MartianWindow extends Window {
|
@@ -66,7 +74,12 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
|
|
66
74
|
|
67
75
|
protected _provider: IMartianWallet | undefined;
|
68
76
|
|
69
|
-
|
77
|
+
protected _network: WalletAdapterNetwork;
|
78
|
+
|
79
|
+
protected _chainId: string;
|
80
|
+
|
81
|
+
protected _api: string;
|
82
|
+
|
70
83
|
protected _timeout: number;
|
71
84
|
|
72
85
|
protected _readyState: WalletReadyState =
|
@@ -80,13 +93,13 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
|
|
80
93
|
|
81
94
|
constructor({
|
82
95
|
// provider,
|
83
|
-
// network = WalletAdapterNetwork.
|
96
|
+
// network = WalletAdapterNetwork.Testnet,
|
84
97
|
timeout = 10000
|
85
98
|
}: MartianWalletAdapterConfig = {}) {
|
86
99
|
super();
|
87
100
|
|
88
101
|
this._provider = typeof window !== 'undefined' ? window.martian : undefined;
|
89
|
-
|
102
|
+
this._network = undefined;
|
90
103
|
this._timeout = timeout;
|
91
104
|
this._connecting = false;
|
92
105
|
this._wallet = null;
|
@@ -111,6 +124,14 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
|
|
111
124
|
};
|
112
125
|
}
|
113
126
|
|
127
|
+
get network(): NetworkInfo {
|
128
|
+
return {
|
129
|
+
name: this._network,
|
130
|
+
api: this._api,
|
131
|
+
chainId: this._chainId
|
132
|
+
};
|
133
|
+
}
|
134
|
+
|
114
135
|
get connecting(): boolean {
|
115
136
|
return this._connecting;
|
116
137
|
}
|
@@ -152,6 +173,20 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
|
|
152
173
|
...walletAccount,
|
153
174
|
isConnected: true
|
154
175
|
};
|
176
|
+
|
177
|
+
try {
|
178
|
+
const name = await provider?.network();
|
179
|
+
const { chainId } = await provider?.getChainId();
|
180
|
+
const api = null;
|
181
|
+
|
182
|
+
this._network = name;
|
183
|
+
this._chainId = chainId.toString();
|
184
|
+
this._api = api;
|
185
|
+
} catch (error: any) {
|
186
|
+
const errMsg = error.message;
|
187
|
+
this.emit('error', new WalletGetNetworkError(errMsg));
|
188
|
+
throw error;
|
189
|
+
}
|
155
190
|
}
|
156
191
|
this.emit('connect', this._wallet?.address || '');
|
157
192
|
} catch (error: any) {
|
@@ -178,7 +213,10 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
|
|
178
213
|
this.emit('disconnect');
|
179
214
|
}
|
180
215
|
|
181
|
-
async signTransaction(
|
216
|
+
async signTransaction(
|
217
|
+
transactionPyld: Types.TransactionPayload,
|
218
|
+
options?: any
|
219
|
+
): Promise<Uint8Array> {
|
182
220
|
try {
|
183
221
|
const wallet = this._wallet;
|
184
222
|
const provider = this._provider || window.martian;
|
@@ -198,9 +236,9 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
|
|
198
236
|
}
|
199
237
|
|
200
238
|
async signAndSubmitTransaction(
|
201
|
-
transactionPyld: TransactionPayload,
|
239
|
+
transactionPyld: Types.TransactionPayload,
|
202
240
|
options?: any
|
203
|
-
): Promise<{ hash: HexEncodedBytes }> {
|
241
|
+
): Promise<{ hash: Types.HexEncodedBytes }> {
|
204
242
|
try {
|
205
243
|
const wallet = this._wallet;
|
206
244
|
const provider = this._provider || window.martian;
|
@@ -239,4 +277,42 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
|
|
239
277
|
throw error;
|
240
278
|
}
|
241
279
|
}
|
280
|
+
|
281
|
+
async onAccountChange(): Promise<void> {
|
282
|
+
try {
|
283
|
+
const wallet = this._wallet;
|
284
|
+
const provider = this._provider || window.martian;
|
285
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
286
|
+
await provider?.onAccountChange((newAccount: string) => {
|
287
|
+
console.log('account Changed >>>', newAccount);
|
288
|
+
this._wallet = {
|
289
|
+
...this._wallet,
|
290
|
+
address: newAccount
|
291
|
+
};
|
292
|
+
this.emit('accountChange', newAccount);
|
293
|
+
});
|
294
|
+
} catch (error: any) {
|
295
|
+
const errMsg = error.message;
|
296
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
297
|
+
throw error;
|
298
|
+
}
|
299
|
+
}
|
300
|
+
|
301
|
+
async onNetworkChange(): Promise<void> {
|
302
|
+
try {
|
303
|
+
const wallet = this._wallet;
|
304
|
+
const provider = this._provider || window.martian;
|
305
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
306
|
+
const handleNetworkChange = async (newNetwork: WalletAdapterNetwork) => {
|
307
|
+
console.log('network Changed >>>', newNetwork);
|
308
|
+
this._network = newNetwork;
|
309
|
+
this.emit('networkChange', this._network);
|
310
|
+
};
|
311
|
+
await provider?.onNetworkChange(handleNetworkChange);
|
312
|
+
} catch (error: any) {
|
313
|
+
const errMsg = error.message;
|
314
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
315
|
+
throw error;
|
316
|
+
}
|
317
|
+
}
|
242
318
|
}
|
@@ -2,9 +2,10 @@ export const NightlyWallet = () => {};
|
|
2
2
|
|
3
3
|
import { PendingTransaction, TransactionPayload } from 'aptos/src/generated';
|
4
4
|
import * as SHA3 from 'js-sha3';
|
5
|
-
import { aptosClient } from '../config/aptosConstants';
|
6
5
|
import {
|
6
|
+
WalletAccountChangeError,
|
7
7
|
WalletDisconnectionError,
|
8
|
+
WalletNetworkChangeError,
|
8
9
|
WalletNotConnectedError,
|
9
10
|
WalletNotReadyError,
|
10
11
|
WalletSignMessageError,
|
@@ -13,7 +14,9 @@ import {
|
|
13
14
|
import {
|
14
15
|
AccountKeys,
|
15
16
|
BaseWalletAdapter,
|
17
|
+
NetworkInfo,
|
16
18
|
scopePollingDetectionStrategy,
|
19
|
+
WalletAdapterNetwork,
|
17
20
|
WalletName,
|
18
21
|
WalletReadyState
|
19
22
|
} from './BaseAdapter';
|
@@ -57,7 +60,10 @@ interface AptosNightly {
|
|
57
60
|
constructor(eventMap: Map<string, (data: any) => any>);
|
58
61
|
connect(onDisconnect?: () => void, eagerConnect?: boolean): Promise<AptosPublicKey>;
|
59
62
|
disconnect(): Promise<void>;
|
60
|
-
signTransaction: (
|
63
|
+
signTransaction: (
|
64
|
+
transaction: TransactionPayload,
|
65
|
+
submit: boolean
|
66
|
+
) => Promise<Uint8Array | PendingTransaction>;
|
61
67
|
signAllTransactions: (transaction: TransactionPayload[]) => Promise<Uint8Array[]>;
|
62
68
|
signMessage(msg: string): Promise<Uint8Array>;
|
63
69
|
}
|
@@ -88,7 +94,12 @@ export class NightlyWalletAdapter extends BaseWalletAdapter {
|
|
88
94
|
|
89
95
|
protected _provider: AptosNightly | undefined;
|
90
96
|
|
91
|
-
|
97
|
+
protected _network: WalletAdapterNetwork;
|
98
|
+
|
99
|
+
protected _chainId: string;
|
100
|
+
|
101
|
+
protected _api: string;
|
102
|
+
|
92
103
|
protected _timeout: number;
|
93
104
|
|
94
105
|
protected _readyState: WalletReadyState =
|
@@ -107,13 +118,13 @@ export class NightlyWalletAdapter extends BaseWalletAdapter {
|
|
107
118
|
|
108
119
|
constructor({
|
109
120
|
// provider,
|
110
|
-
// network = WalletAdapterNetwork.
|
121
|
+
// network = WalletAdapterNetwork.Testnet,
|
111
122
|
timeout = 10000
|
112
123
|
}: NightlyWalletAdapterConfig = {}) {
|
113
124
|
super();
|
114
125
|
|
115
126
|
this._provider = window.nightly?.aptos;
|
116
|
-
|
127
|
+
this._network = undefined;
|
117
128
|
this._timeout = timeout;
|
118
129
|
this._connecting = false;
|
119
130
|
this._wallet = null;
|
@@ -138,6 +149,14 @@ export class NightlyWalletAdapter extends BaseWalletAdapter {
|
|
138
149
|
};
|
139
150
|
}
|
140
151
|
|
152
|
+
get network(): NetworkInfo {
|
153
|
+
return {
|
154
|
+
name: this._network,
|
155
|
+
api: this._api,
|
156
|
+
chainId: this._chainId
|
157
|
+
};
|
158
|
+
}
|
159
|
+
|
141
160
|
get connecting(): boolean {
|
142
161
|
return this._connecting;
|
143
162
|
}
|
@@ -205,9 +224,9 @@ export class NightlyWalletAdapter extends BaseWalletAdapter {
|
|
205
224
|
|
206
225
|
try {
|
207
226
|
const provider = this._provider || window.nightly?.aptos;
|
208
|
-
const response = await provider?.signTransaction(payload);
|
227
|
+
const response = await provider?.signTransaction(payload, false);
|
209
228
|
if (response) {
|
210
|
-
return response;
|
229
|
+
return response as Uint8Array;
|
211
230
|
} else {
|
212
231
|
throw new Error('Transaction failed');
|
213
232
|
}
|
@@ -249,10 +268,9 @@ export class NightlyWalletAdapter extends BaseWalletAdapter {
|
|
249
268
|
|
250
269
|
try {
|
251
270
|
const provider = this._provider || window.nightly?.aptos;
|
252
|
-
const response = await provider?.signTransaction(tx);
|
253
|
-
const result = await aptosClient.submitSignedBCSTransaction(response);
|
271
|
+
const response = await provider?.signTransaction(tx, true);
|
254
272
|
if (response) {
|
255
|
-
return
|
273
|
+
return response as PendingTransaction;
|
256
274
|
} else {
|
257
275
|
throw new Error('Transaction failed');
|
258
276
|
}
|
@@ -283,4 +301,30 @@ export class NightlyWalletAdapter extends BaseWalletAdapter {
|
|
283
301
|
throw error;
|
284
302
|
}
|
285
303
|
}
|
304
|
+
|
305
|
+
async onAccountChange(): Promise<void> {
|
306
|
+
try {
|
307
|
+
const wallet = this._wallet;
|
308
|
+
const provider = this._provider || window.nightly.aptos;
|
309
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
310
|
+
//To be implemented
|
311
|
+
} catch (error: any) {
|
312
|
+
const errMsg = error.message;
|
313
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
314
|
+
throw error;
|
315
|
+
}
|
316
|
+
}
|
317
|
+
|
318
|
+
async onNetworkChange(): Promise<void> {
|
319
|
+
try {
|
320
|
+
const wallet = this._wallet;
|
321
|
+
const provider = this._provider || window.nightly.aptos;
|
322
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
323
|
+
//To be implemented
|
324
|
+
} catch (error: any) {
|
325
|
+
const errMsg = error.message;
|
326
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
327
|
+
throw error;
|
328
|
+
}
|
329
|
+
}
|
286
330
|
}
|