@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,6 +1,9 @@
|
|
1
|
-
import {
|
1
|
+
import { Types } from 'aptos';
|
2
2
|
import {
|
3
|
+
WalletAccountChangeError,
|
3
4
|
WalletDisconnectionError,
|
5
|
+
WalletGetNetworkError,
|
6
|
+
WalletNetworkChangeError,
|
4
7
|
WalletNotConnectedError,
|
5
8
|
WalletNotReadyError,
|
6
9
|
WalletSignAndSubmitMessageError,
|
@@ -10,9 +13,11 @@ import {
|
|
10
13
|
import {
|
11
14
|
AccountKeys,
|
12
15
|
BaseWalletAdapter,
|
16
|
+
NetworkInfo,
|
13
17
|
scopePollingDetectionStrategy,
|
14
18
|
SignMessagePayload,
|
15
19
|
SignMessageResponse,
|
20
|
+
WalletAdapterNetwork,
|
16
21
|
WalletName,
|
17
22
|
WalletReadyState
|
18
23
|
} from './BaseAdapter';
|
@@ -23,17 +28,23 @@ interface IApotsErrorResult {
|
|
23
28
|
message: string;
|
24
29
|
}
|
25
30
|
|
31
|
+
type AddressInfo = { address: string; publicKey: string; authKey?: string };
|
32
|
+
|
26
33
|
interface IAptosWallet {
|
27
|
-
connect: () => Promise<
|
28
|
-
account: () => Promise<
|
34
|
+
connect: () => Promise<AddressInfo>;
|
35
|
+
account: () => Promise<AddressInfo>;
|
29
36
|
isConnected: () => Promise<boolean>;
|
30
37
|
signAndSubmitTransaction(
|
31
38
|
transaction: any,
|
32
39
|
options?: any
|
33
|
-
): Promise<{ hash: HexEncodedBytes } | IApotsErrorResult>;
|
40
|
+
): Promise<{ hash: Types.HexEncodedBytes } | IApotsErrorResult>;
|
34
41
|
signTransaction(transaction: any, options?: any): Promise<Uint8Array | IApotsErrorResult>;
|
35
42
|
signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
|
36
43
|
disconnect(): Promise<void>;
|
44
|
+
network(): Promise<WalletAdapterNetwork>;
|
45
|
+
requestId: Promise<number>;
|
46
|
+
onAccountChange: (listener: (newAddress: AddressInfo) => void) => void;
|
47
|
+
onNetworkChange: (listener: (network: { networkName: string }) => void) => void;
|
37
48
|
}
|
38
49
|
|
39
50
|
interface AptosWindow extends Window {
|
@@ -60,7 +71,12 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
|
|
60
71
|
|
61
72
|
protected _provider: IAptosWallet | undefined;
|
62
73
|
|
63
|
-
|
74
|
+
protected _network: WalletAdapterNetwork;
|
75
|
+
|
76
|
+
protected _chainId: string;
|
77
|
+
|
78
|
+
protected _api: string;
|
79
|
+
|
64
80
|
protected _timeout: number;
|
65
81
|
|
66
82
|
protected _readyState: WalletReadyState =
|
@@ -74,13 +90,13 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
|
|
74
90
|
|
75
91
|
constructor({
|
76
92
|
// provider,
|
77
|
-
// network = WalletAdapterNetwork.
|
93
|
+
// network = WalletAdapterNetwork.Testnet,
|
78
94
|
timeout = 10000
|
79
95
|
}: AptosWalletAdapterConfig = {}) {
|
80
96
|
super();
|
81
97
|
|
82
98
|
this._provider = typeof window !== 'undefined' ? window.aptos : undefined;
|
83
|
-
|
99
|
+
this._network = undefined;
|
84
100
|
this._timeout = timeout;
|
85
101
|
this._connecting = false;
|
86
102
|
this._wallet = null;
|
@@ -105,6 +121,14 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
|
|
105
121
|
};
|
106
122
|
}
|
107
123
|
|
124
|
+
get network(): NetworkInfo {
|
125
|
+
return {
|
126
|
+
name: this._network,
|
127
|
+
api: this._api,
|
128
|
+
chainId: this._chainId
|
129
|
+
};
|
130
|
+
}
|
131
|
+
|
108
132
|
get connecting(): boolean {
|
109
133
|
return this._connecting;
|
110
134
|
}
|
@@ -142,6 +166,20 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
|
|
142
166
|
isConnected: true
|
143
167
|
};
|
144
168
|
|
169
|
+
try {
|
170
|
+
const name = await provider?.network();
|
171
|
+
const chainId = null;
|
172
|
+
const api = null;
|
173
|
+
|
174
|
+
this._network = name;
|
175
|
+
this._chainId = chainId;
|
176
|
+
this._api = api;
|
177
|
+
} catch (error: any) {
|
178
|
+
const errMsg = error.message;
|
179
|
+
this.emit('error', new WalletGetNetworkError(errMsg));
|
180
|
+
throw error;
|
181
|
+
}
|
182
|
+
|
145
183
|
this.emit('connect', this._wallet.publicKey);
|
146
184
|
} catch (error: any) {
|
147
185
|
this.emit('error', error);
|
@@ -167,7 +205,7 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
|
|
167
205
|
this.emit('disconnect');
|
168
206
|
}
|
169
207
|
|
170
|
-
async signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array> {
|
208
|
+
async signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array> {
|
171
209
|
try {
|
172
210
|
const wallet = this._wallet;
|
173
211
|
const provider = this._provider || window.aptos;
|
@@ -186,9 +224,9 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
|
|
186
224
|
}
|
187
225
|
|
188
226
|
async signAndSubmitTransaction(
|
189
|
-
transaction: TransactionPayload,
|
227
|
+
transaction: Types.TransactionPayload,
|
190
228
|
options?: any
|
191
|
-
): Promise<{ hash: HexEncodedBytes }> {
|
229
|
+
): Promise<{ hash: Types.HexEncodedBytes }> {
|
192
230
|
try {
|
193
231
|
const wallet = this._wallet;
|
194
232
|
const provider = this._provider || window.aptos;
|
@@ -198,7 +236,7 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
|
|
198
236
|
if ((response as IApotsErrorResult).code) {
|
199
237
|
throw new Error((response as IApotsErrorResult).message);
|
200
238
|
}
|
201
|
-
return response as { hash: HexEncodedBytes };
|
239
|
+
return response as { hash: Types.HexEncodedBytes };
|
202
240
|
} catch (error: any) {
|
203
241
|
const errMsg = error.message;
|
204
242
|
this.emit('error', new WalletSignAndSubmitMessageError(errMsg));
|
@@ -226,4 +264,46 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
|
|
226
264
|
throw error;
|
227
265
|
}
|
228
266
|
}
|
267
|
+
|
268
|
+
async onAccountChange(): Promise<void> {
|
269
|
+
try {
|
270
|
+
const wallet = this._wallet;
|
271
|
+
const provider = this._provider || window.aptos;
|
272
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
273
|
+
const handleAccountChange = async (newAccount: AddressInfo) => {
|
274
|
+
console.log('account Changed >>>', newAccount);
|
275
|
+
// Petra extension currently didn't return the new Account
|
276
|
+
this._wallet = {
|
277
|
+
...this._wallet,
|
278
|
+
publicKey: newAccount.publicKey || this._wallet?.publicKey,
|
279
|
+
authKey: newAccount.authKey || this._wallet?.authKey,
|
280
|
+
address: newAccount.address || this._wallet?.address
|
281
|
+
};
|
282
|
+
this.emit('accountChange', newAccount.publicKey);
|
283
|
+
};
|
284
|
+
await provider?.onAccountChange(handleAccountChange);
|
285
|
+
} catch (error: any) {
|
286
|
+
const errMsg = error.message;
|
287
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
288
|
+
throw error;
|
289
|
+
}
|
290
|
+
}
|
291
|
+
|
292
|
+
async onNetworkChange(): Promise<void> {
|
293
|
+
try {
|
294
|
+
const wallet = this._wallet;
|
295
|
+
const provider = this._provider || window.aptos;
|
296
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
297
|
+
const handleNetworkChange = async (newNetwork: { networkName: WalletAdapterNetwork }) => {
|
298
|
+
console.log('network Changed >>>', newNetwork);
|
299
|
+
this._network = newNetwork.networkName;
|
300
|
+
this.emit('networkChange', this._network);
|
301
|
+
};
|
302
|
+
await provider?.onNetworkChange(handleNetworkChange);
|
303
|
+
} catch (error: any) {
|
304
|
+
const errMsg = error.message;
|
305
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
306
|
+
throw error;
|
307
|
+
}
|
308
|
+
}
|
229
309
|
}
|
@@ -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';
|
@@ -37,21 +41,24 @@ interface IPontemWallet {
|
|
37
41
|
publicKey(): Promise<MaybeHexString>;
|
38
42
|
generateTransaction(sender: MaybeHexString, payload: any): Promise<any>;
|
39
43
|
signAndSubmit(
|
40
|
-
transaction: TransactionPayload,
|
44
|
+
transaction: Types.TransactionPayload,
|
41
45
|
options?: any
|
42
46
|
): Promise<{
|
43
47
|
success: boolean;
|
44
48
|
result: {
|
45
|
-
hash: HexEncodedBytes;
|
49
|
+
hash: Types.HexEncodedBytes;
|
46
50
|
};
|
47
51
|
}>;
|
48
52
|
isConnected(): Promise<boolean>;
|
49
|
-
signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array>;
|
53
|
+
signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array>;
|
50
54
|
signMessage(message: SignMessagePayload): Promise<{
|
51
55
|
success: boolean;
|
52
56
|
result: SignMessageResponse;
|
53
57
|
}>;
|
54
58
|
disconnect(): Promise<void>;
|
59
|
+
network(): Promise<NetworkInfo>;
|
60
|
+
onChangeAccount(listener: (address: string) => void): Promise<void>;
|
61
|
+
onChangeNetwork(listener: (network: NetworkInfo) => void): Promise<void>;
|
55
62
|
}
|
56
63
|
|
57
64
|
interface PontemWindow extends Window {
|
@@ -78,7 +85,12 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
|
|
78
85
|
|
79
86
|
protected _provider: IPontemWallet | undefined;
|
80
87
|
|
81
|
-
|
88
|
+
protected _network: WalletAdapterNetwork;
|
89
|
+
|
90
|
+
protected _chainId: string;
|
91
|
+
|
92
|
+
protected _api: string;
|
93
|
+
|
82
94
|
protected _timeout: number;
|
83
95
|
|
84
96
|
protected _readyState: WalletReadyState =
|
@@ -92,13 +104,13 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
|
|
92
104
|
|
93
105
|
constructor({
|
94
106
|
// provider,
|
95
|
-
// network = WalletAdapterNetwork.
|
107
|
+
// network = WalletAdapterNetwork.Testnet,
|
96
108
|
timeout = 10000
|
97
109
|
}: PontemWalletAdapterConfig = {}) {
|
98
110
|
super();
|
99
111
|
|
100
112
|
this._provider = typeof window !== 'undefined' ? window.pontem : undefined;
|
101
|
-
|
113
|
+
this._network = undefined;
|
102
114
|
this._timeout = timeout;
|
103
115
|
this._connecting = false;
|
104
116
|
this._wallet = null;
|
@@ -123,6 +135,14 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
|
|
123
135
|
};
|
124
136
|
}
|
125
137
|
|
138
|
+
get network(): NetworkInfo {
|
139
|
+
return {
|
140
|
+
name: this._network,
|
141
|
+
api: this._api,
|
142
|
+
chainId: this._chainId
|
143
|
+
};
|
144
|
+
}
|
145
|
+
|
126
146
|
get connecting(): boolean {
|
127
147
|
return this._connecting;
|
128
148
|
}
|
@@ -166,7 +186,19 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
|
|
166
186
|
publicKey,
|
167
187
|
isConnected: true
|
168
188
|
};
|
189
|
+
|
190
|
+
try {
|
191
|
+
const networkInfo = await provider?.network();
|
192
|
+
this._network = networkInfo.name;
|
193
|
+
this._chainId = networkInfo.chainId;
|
194
|
+
this._api = networkInfo.api;
|
195
|
+
} catch (error: any) {
|
196
|
+
const errMsg = error.message;
|
197
|
+
this.emit('error', new WalletGetNetworkError(errMsg));
|
198
|
+
throw error;
|
199
|
+
}
|
169
200
|
}
|
201
|
+
|
170
202
|
this.emit('connect', this._wallet?.address || '');
|
171
203
|
} catch (error: any) {
|
172
204
|
this.emit('error', new Error('User has rejected the connection'));
|
@@ -192,7 +224,10 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
|
|
192
224
|
this.emit('disconnect');
|
193
225
|
}
|
194
226
|
|
195
|
-
async signTransaction(
|
227
|
+
async signTransaction(
|
228
|
+
transactionPyld: Types.TransactionPayload,
|
229
|
+
options?: any
|
230
|
+
): Promise<Uint8Array> {
|
196
231
|
try {
|
197
232
|
const wallet = this._wallet;
|
198
233
|
const provider = this._provider || window.pontem;
|
@@ -207,9 +242,9 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
|
|
207
242
|
}
|
208
243
|
|
209
244
|
async signAndSubmitTransaction(
|
210
|
-
transactionPyld: TransactionPayload,
|
245
|
+
transactionPyld: Types.TransactionPayload,
|
211
246
|
options?: any
|
212
|
-
): Promise<{ hash: HexEncodedBytes }> {
|
247
|
+
): Promise<{ hash: Types.HexEncodedBytes }> {
|
213
248
|
try {
|
214
249
|
const wallet = this._wallet;
|
215
250
|
const provider = this._provider || window.pontem;
|
@@ -243,4 +278,45 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
|
|
243
278
|
throw error;
|
244
279
|
}
|
245
280
|
}
|
281
|
+
|
282
|
+
async onAccountChange(): Promise<void> {
|
283
|
+
try {
|
284
|
+
const wallet = this._wallet;
|
285
|
+
const provider = this._provider || window.pontem;
|
286
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
287
|
+
const handleAccountChange = async (newAccount: string) => {
|
288
|
+
console.log('account Changed >>>', newAccount);
|
289
|
+
this._wallet = {
|
290
|
+
...this._wallet,
|
291
|
+
address: newAccount || this._wallet?.address
|
292
|
+
};
|
293
|
+
this.emit('accountChange', newAccount);
|
294
|
+
};
|
295
|
+
await provider?.onChangeAccount(handleAccountChange);
|
296
|
+
} catch (error: any) {
|
297
|
+
const errMsg = error.message;
|
298
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
299
|
+
throw error;
|
300
|
+
}
|
301
|
+
}
|
302
|
+
|
303
|
+
async onNetworkChange(): Promise<void> {
|
304
|
+
try {
|
305
|
+
const wallet = this._wallet;
|
306
|
+
const provider = this._provider || window.pontem;
|
307
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
308
|
+
const handleNetworkChange = async (network: NetworkInfo) => {
|
309
|
+
console.log('network Changed >>>', network);
|
310
|
+
this._network = network.name;
|
311
|
+
this._api = network.api;
|
312
|
+
this._chainId = network.chainId;
|
313
|
+
this.emit('networkChange', this._network);
|
314
|
+
};
|
315
|
+
await provider?.onChangeNetwork(handleNetworkChange);
|
316
|
+
} catch (error: any) {
|
317
|
+
const errMsg = error.message;
|
318
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
319
|
+
throw error;
|
320
|
+
}
|
321
|
+
}
|
246
322
|
}
|
@@ -1,6 +1,8 @@
|
|
1
|
-
import {
|
1
|
+
import { MaybeHexString, Types } from 'aptos';
|
2
2
|
import {
|
3
|
+
WalletAccountChangeError,
|
3
4
|
WalletDisconnectionError,
|
5
|
+
WalletNetworkChangeError,
|
4
6
|
WalletNotConnectedError,
|
5
7
|
WalletNotReadyError,
|
6
8
|
WalletSignMessageError,
|
@@ -9,13 +11,14 @@ import {
|
|
9
11
|
import {
|
10
12
|
AccountKeys,
|
11
13
|
BaseWalletAdapter,
|
14
|
+
NetworkInfo,
|
12
15
|
scopePollingDetectionStrategy,
|
13
16
|
SignMessagePayload,
|
14
17
|
SignMessageResponse,
|
18
|
+
WalletAdapterNetwork,
|
15
19
|
WalletName,
|
16
20
|
WalletReadyState
|
17
21
|
} from './BaseAdapter';
|
18
|
-
import { MaybeHexString } from 'aptos';
|
19
22
|
|
20
23
|
interface RiseAccount {
|
21
24
|
address: MaybeHexString;
|
@@ -28,7 +31,7 @@ interface IRiseWallet {
|
|
28
31
|
connect: () => Promise<{ address: string }>;
|
29
32
|
account(): Promise<RiseAccount>;
|
30
33
|
isConnected: () => Promise<boolean>;
|
31
|
-
signAndSubmitTransaction(transaction: any): Promise<{ hash: HexEncodedBytes }>;
|
34
|
+
signAndSubmitTransaction(transaction: any): Promise<{ hash: Types.HexEncodedBytes }>;
|
32
35
|
signTransaction(transaction: any, options?: any): Promise<Uint8Array>;
|
33
36
|
signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
|
34
37
|
disconnect(): Promise<void>;
|
@@ -57,7 +60,12 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
57
60
|
|
58
61
|
protected _provider: IRiseWallet | undefined;
|
59
62
|
|
60
|
-
|
63
|
+
protected _network: WalletAdapterNetwork;
|
64
|
+
|
65
|
+
protected _chainId: string;
|
66
|
+
|
67
|
+
protected _api: string;
|
68
|
+
|
61
69
|
protected _timeout: number;
|
62
70
|
|
63
71
|
protected _readyState: WalletReadyState =
|
@@ -71,13 +79,13 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
71
79
|
|
72
80
|
constructor({
|
73
81
|
// provider,
|
74
|
-
// network = WalletAdapterNetwork.
|
82
|
+
// network = WalletAdapterNetwork.Testnet,
|
75
83
|
timeout = 10000
|
76
84
|
}: RiseWalletAdapterConfig = {}) {
|
77
85
|
super();
|
78
86
|
|
79
87
|
this._provider = typeof window !== 'undefined' ? window.rise : undefined;
|
80
|
-
|
88
|
+
this._network = undefined;
|
81
89
|
this._timeout = timeout;
|
82
90
|
this._connecting = false;
|
83
91
|
this._wallet = null;
|
@@ -102,6 +110,14 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
102
110
|
};
|
103
111
|
}
|
104
112
|
|
113
|
+
get network(): NetworkInfo {
|
114
|
+
return {
|
115
|
+
name: this._network,
|
116
|
+
api: this._api,
|
117
|
+
chainId: this._chainId
|
118
|
+
};
|
119
|
+
}
|
120
|
+
|
105
121
|
get connecting(): boolean {
|
106
122
|
return this._connecting;
|
107
123
|
}
|
@@ -175,7 +191,7 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
175
191
|
this.emit('disconnect');
|
176
192
|
}
|
177
193
|
|
178
|
-
async signTransaction(transaction: TransactionPayload): Promise<Uint8Array> {
|
194
|
+
async signTransaction(transaction: Types.TransactionPayload): Promise<Uint8Array> {
|
179
195
|
try {
|
180
196
|
const wallet = this._wallet;
|
181
197
|
const provider = this._provider || window.rise;
|
@@ -195,8 +211,8 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
195
211
|
}
|
196
212
|
|
197
213
|
async signAndSubmitTransaction(
|
198
|
-
transaction: TransactionPayload
|
199
|
-
): Promise<{ hash: HexEncodedBytes }> {
|
214
|
+
transaction: Types.TransactionPayload
|
215
|
+
): Promise<{ hash: Types.HexEncodedBytes }> {
|
200
216
|
try {
|
201
217
|
const wallet = this._wallet;
|
202
218
|
const provider = this._provider || window.rise;
|
@@ -235,4 +251,30 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
235
251
|
throw error;
|
236
252
|
}
|
237
253
|
}
|
254
|
+
|
255
|
+
async onAccountChange(): Promise<void> {
|
256
|
+
try {
|
257
|
+
const wallet = this._wallet;
|
258
|
+
const provider = this._provider || window.rise;
|
259
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
260
|
+
//To be implemented
|
261
|
+
} catch (error: any) {
|
262
|
+
const errMsg = error.message;
|
263
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
264
|
+
throw error;
|
265
|
+
}
|
266
|
+
}
|
267
|
+
|
268
|
+
async onNetworkChange(): Promise<void> {
|
269
|
+
try {
|
270
|
+
const wallet = this._wallet;
|
271
|
+
const provider = this._provider || window.rise;
|
272
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
273
|
+
//To be implemented
|
274
|
+
} catch (error: any) {
|
275
|
+
const errMsg = error.message;
|
276
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
277
|
+
throw error;
|
278
|
+
}
|
279
|
+
}
|
238
280
|
}
|
@@ -1,6 +1,8 @@
|
|
1
|
-
import {
|
1
|
+
import { Types } from 'aptos';
|
2
2
|
import {
|
3
|
+
WalletAccountChangeError,
|
3
4
|
WalletDisconnectionError,
|
5
|
+
WalletNetworkChangeError,
|
4
6
|
WalletNotConnectedError,
|
5
7
|
WalletNotReadyError,
|
6
8
|
WalletSignAndSubmitMessageError,
|
@@ -10,7 +12,9 @@ import {
|
|
10
12
|
import {
|
11
13
|
AccountKeys,
|
12
14
|
BaseWalletAdapter,
|
15
|
+
NetworkInfo,
|
13
16
|
scopePollingDetectionStrategy,
|
17
|
+
WalletAdapterNetwork,
|
14
18
|
WalletName,
|
15
19
|
WalletReadyState
|
16
20
|
} from './BaseAdapter';
|
@@ -19,7 +23,10 @@ interface ISpikaWallet {
|
|
19
23
|
connect: () => Promise<{ publicKey: string; account: string; authKey: string }>;
|
20
24
|
account: () => Promise<string>;
|
21
25
|
isConnected: () => Promise<boolean>;
|
22
|
-
signAndSubmitTransaction(
|
26
|
+
signAndSubmitTransaction(
|
27
|
+
transaction: any,
|
28
|
+
options?: any
|
29
|
+
): Promise<{ hash: Types.HexEncodedBytes }>;
|
23
30
|
signTransaction(transaction: any, options?: any): Promise<Uint8Array>;
|
24
31
|
signMessage(message: string): Promise<string>;
|
25
32
|
disconnect(): Promise<void>;
|
@@ -48,7 +55,12 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
|
|
48
55
|
|
49
56
|
protected _provider: ISpikaWallet | undefined;
|
50
57
|
|
51
|
-
|
58
|
+
protected _network: WalletAdapterNetwork;
|
59
|
+
|
60
|
+
protected _chainId: string;
|
61
|
+
|
62
|
+
protected _api: string;
|
63
|
+
|
52
64
|
protected _timeout: number;
|
53
65
|
|
54
66
|
protected _readyState: WalletReadyState =
|
@@ -62,13 +74,13 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
|
|
62
74
|
|
63
75
|
constructor({
|
64
76
|
// provider,
|
65
|
-
// network = WalletAdapterNetwork.
|
77
|
+
// network = WalletAdapterNetwork.Testnet,
|
66
78
|
timeout = 10000
|
67
79
|
}: SpikaWalletAdapterConfig = {}) {
|
68
80
|
super();
|
69
81
|
|
70
82
|
this._provider = typeof window !== 'undefined' ? window.spika : undefined;
|
71
|
-
|
83
|
+
this._network = undefined;
|
72
84
|
this._timeout = timeout;
|
73
85
|
this._connecting = false;
|
74
86
|
this._wallet = null;
|
@@ -93,6 +105,14 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
|
|
93
105
|
};
|
94
106
|
}
|
95
107
|
|
108
|
+
get network(): NetworkInfo {
|
109
|
+
return {
|
110
|
+
name: this._network,
|
111
|
+
api: this._api,
|
112
|
+
chainId: this._chainId
|
113
|
+
};
|
114
|
+
}
|
115
|
+
|
96
116
|
get connecting(): boolean {
|
97
117
|
return this._connecting;
|
98
118
|
}
|
@@ -166,7 +186,7 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
|
|
166
186
|
this.emit('disconnect');
|
167
187
|
}
|
168
188
|
|
169
|
-
async signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array> {
|
189
|
+
async signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array> {
|
170
190
|
try {
|
171
191
|
const wallet = this._wallet;
|
172
192
|
const provider = this._provider || window.spika;
|
@@ -186,9 +206,9 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
|
|
186
206
|
}
|
187
207
|
|
188
208
|
async signAndSubmitTransaction(
|
189
|
-
transaction: TransactionPayload,
|
209
|
+
transaction: Types.TransactionPayload,
|
190
210
|
options?: any
|
191
|
-
): Promise<{ hash: HexEncodedBytes }> {
|
211
|
+
): Promise<{ hash: Types.HexEncodedBytes }> {
|
192
212
|
try {
|
193
213
|
const wallet = this._wallet;
|
194
214
|
const provider = this._provider || window.spika;
|
@@ -224,4 +244,30 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
|
|
224
244
|
throw error;
|
225
245
|
}
|
226
246
|
}
|
247
|
+
|
248
|
+
async onAccountChange(): Promise<void> {
|
249
|
+
try {
|
250
|
+
const wallet = this._wallet;
|
251
|
+
const provider = this._provider || window.spika;
|
252
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
253
|
+
//To be implemented
|
254
|
+
} catch (error: any) {
|
255
|
+
const errMsg = error.message;
|
256
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
257
|
+
throw error;
|
258
|
+
}
|
259
|
+
}
|
260
|
+
|
261
|
+
async onNetworkChange(): Promise<void> {
|
262
|
+
try {
|
263
|
+
const wallet = this._wallet;
|
264
|
+
const provider = this._provider || window.spika;
|
265
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
266
|
+
//To be implemented
|
267
|
+
} catch (error: any) {
|
268
|
+
const errMsg = error.message;
|
269
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
270
|
+
throw error;
|
271
|
+
}
|
272
|
+
}
|
227
273
|
}
|