@manahippo/aptos-wallet-adapter 1.0.5 → 1.0.6
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/dist/WalletAdapters/RiseWallet.d.ts +11 -3
- package/dist/WalletAdapters/RiseWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/RiseWallet.js +40 -16
- package/dist/WalletAdapters/RiseWallet.js.map +1 -1
- package/dist/WalletAdapters/SpacecyWallet.d.ts +79 -0
- package/dist/WalletAdapters/SpacecyWallet.d.ts.map +1 -0
- package/dist/WalletAdapters/SpacecyWallet.js +258 -0
- package/dist/WalletAdapters/SpacecyWallet.js.map +1 -0
- package/dist/WalletAdapters/index.d.ts +1 -0
- package/dist/WalletAdapters/index.d.ts.map +1 -1
- package/dist/WalletAdapters/index.js +1 -0
- package/dist/WalletAdapters/index.js.map +1 -1
- package/package.json +1 -1
- package/src/WalletAdapters/RiseWallet.ts +52 -17
- package/src/WalletAdapters/SpacecyWallet.ts +350 -0
- package/src/WalletAdapters/index.ts +1 -0
@@ -6,10 +6,13 @@ interface RiseAccount {
|
|
6
6
|
authKey: MaybeHexString;
|
7
7
|
isConnected: boolean;
|
8
8
|
}
|
9
|
+
type AddressInfo = {
|
10
|
+
address: string;
|
11
|
+
publicKey: string;
|
12
|
+
authKey?: string;
|
13
|
+
};
|
9
14
|
interface IRiseWallet {
|
10
|
-
connect: () => Promise<
|
11
|
-
address: string;
|
12
|
-
}>;
|
15
|
+
connect: () => Promise<AddressInfo>;
|
13
16
|
account(): Promise<RiseAccount>;
|
14
17
|
isConnected: () => Promise<boolean>;
|
15
18
|
signAndSubmitTransaction(transaction: any): Promise<{
|
@@ -19,6 +22,10 @@ interface IRiseWallet {
|
|
19
22
|
signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
|
20
23
|
disconnect(): Promise<void>;
|
21
24
|
network(): Promise<NetworkInfo>;
|
25
|
+
on(event: string, listener: () => any): void;
|
26
|
+
off(event: string, listener: () => any): void;
|
27
|
+
onAccountChange: (listener: (newAddress: AddressInfo) => void) => void;
|
28
|
+
onNetworkChange: (listener: (network: NetworkInfo) => void) => void;
|
22
29
|
}
|
23
30
|
export declare const RiseWalletName: WalletName<"Rise Wallet">;
|
24
31
|
export interface RiseWalletAdapterConfig {
|
@@ -52,6 +59,7 @@ export declare class RiseWalletAdapter extends BaseWalletAdapter {
|
|
52
59
|
signMessage(msgPayload: SignMessagePayload): Promise<SignMessageResponse>;
|
53
60
|
onAccountChange(): Promise<void>;
|
54
61
|
onNetworkChange(): Promise<void>;
|
62
|
+
private handleDisconnect;
|
55
63
|
}
|
56
64
|
export {};
|
57
65
|
//# sourceMappingURL=RiseWallet.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RiseWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/RiseWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAW9C,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,WAAW,EAEX,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,UAAU,WAAW;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,
|
1
|
+
{"version":3,"file":"RiseWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/RiseWallet.ts"],"names":[],"mappings":"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"}
|
@@ -25,6 +25,16 @@ class RiseWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
|
25
25
|
this._readyState = typeof window === 'undefined' || typeof document === 'undefined'
|
26
26
|
? BaseAdapter_1.WalletReadyState.Unsupported
|
27
27
|
: BaseAdapter_1.WalletReadyState.NotDetected;
|
28
|
+
this.handleDisconnect = () => {
|
29
|
+
try {
|
30
|
+
const provider = this._provider || window.rise;
|
31
|
+
provider === null || provider === void 0 ? void 0 : provider.off('disconnect', this.handleDisconnect);
|
32
|
+
this._wallet = null;
|
33
|
+
}
|
34
|
+
finally {
|
35
|
+
this.emit('disconnect');
|
36
|
+
}
|
37
|
+
};
|
28
38
|
this._provider = typeof window !== 'undefined' ? window.rise : undefined;
|
29
39
|
this._network = undefined;
|
30
40
|
this._timeout = timeout;
|
@@ -85,21 +95,18 @@ class RiseWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
|
85
95
|
if (!response) {
|
86
96
|
throw new WalletProviders_1.WalletNotConnectedError('User has rejected the request');
|
87
97
|
}
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
const errMsg = error.message;
|
99
|
-
this.emit('error', new WalletProviders_1.WalletGetNetworkError(errMsg));
|
100
|
-
throw error;
|
101
|
-
}
|
98
|
+
try {
|
99
|
+
const { chainId, api, name } = yield provider.network();
|
100
|
+
this._network = name;
|
101
|
+
this._chainId = chainId;
|
102
|
+
this._api = api;
|
103
|
+
}
|
104
|
+
catch (error) {
|
105
|
+
const errMsg = error.message;
|
106
|
+
this.emit('error', new WalletProviders_1.WalletGetNetworkError(errMsg));
|
107
|
+
throw error;
|
102
108
|
}
|
109
|
+
provider === null || provider === void 0 ? void 0 : provider.on('disconnect', this.handleDisconnect);
|
103
110
|
const account = yield (provider === null || provider === void 0 ? void 0 : provider.account());
|
104
111
|
if (account) {
|
105
112
|
const { publicKey, address, authKey } = account;
|
@@ -128,6 +135,7 @@ class RiseWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
|
128
135
|
this._wallet = null;
|
129
136
|
try {
|
130
137
|
const provider = this._provider || window.rise;
|
138
|
+
provider === null || provider === void 0 ? void 0 : provider.off('disconnect', this.handleDisconnect);
|
131
139
|
yield (provider === null || provider === void 0 ? void 0 : provider.disconnect());
|
132
140
|
}
|
133
141
|
catch (error) {
|
@@ -207,13 +215,21 @@ class RiseWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
|
207
215
|
});
|
208
216
|
}
|
209
217
|
onAccountChange() {
|
218
|
+
var _a;
|
210
219
|
return __awaiter(this, void 0, void 0, function* () {
|
211
220
|
try {
|
212
221
|
const wallet = this._wallet;
|
213
222
|
const provider = this._provider || window.rise;
|
214
223
|
if (!wallet || !provider)
|
215
224
|
throw new WalletProviders_1.WalletNotConnectedError();
|
216
|
-
|
225
|
+
const handleAccountChange = (newAccount) => __awaiter(this, void 0, void 0, function* () {
|
226
|
+
var _b, _c, _d;
|
227
|
+
if (newAccount === null || newAccount === void 0 ? void 0 : newAccount.publicKey) {
|
228
|
+
this._wallet = Object.assign(Object.assign({}, this._wallet), { publicKey: newAccount.publicKey || ((_b = this._wallet) === null || _b === void 0 ? void 0 : _b.publicKey), authKey: newAccount.authKey || ((_c = this._wallet) === null || _c === void 0 ? void 0 : _c.authKey), address: newAccount.address || ((_d = this._wallet) === null || _d === void 0 ? void 0 : _d.address) });
|
229
|
+
this.emit('accountChange', newAccount === null || newAccount === void 0 ? void 0 : newAccount.publicKey);
|
230
|
+
}
|
231
|
+
});
|
232
|
+
yield ((_a = provider === null || provider === void 0 ? void 0 : provider.onAccountChange) === null || _a === void 0 ? void 0 : _a.call(provider, handleAccountChange));
|
217
233
|
}
|
218
234
|
catch (error) {
|
219
235
|
const errMsg = error.message;
|
@@ -223,13 +239,21 @@ class RiseWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
|
223
239
|
});
|
224
240
|
}
|
225
241
|
onNetworkChange() {
|
242
|
+
var _a;
|
226
243
|
return __awaiter(this, void 0, void 0, function* () {
|
227
244
|
try {
|
228
245
|
const wallet = this._wallet;
|
229
246
|
const provider = this._provider || window.rise;
|
230
247
|
if (!wallet || !provider)
|
231
248
|
throw new WalletProviders_1.WalletNotConnectedError();
|
232
|
-
|
249
|
+
const handleNetworkChange = (newNetwork) => __awaiter(this, void 0, void 0, function* () {
|
250
|
+
const { chainId, api, name } = newNetwork;
|
251
|
+
this._network = name;
|
252
|
+
this._chainId = chainId;
|
253
|
+
this._api = api;
|
254
|
+
this.emit('networkChange', this._network);
|
255
|
+
});
|
256
|
+
yield ((_a = provider === null || provider === void 0 ? void 0 : provider.onNetworkChange) === null || _a === void 0 ? void 0 : _a.call(provider, handleNetworkChange));
|
233
257
|
}
|
234
258
|
catch (error) {
|
235
259
|
const errMsg = error.message;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RiseWallet.js","sourceRoot":"","sources":["../../src/WalletAdapters/RiseWallet.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wDAS4B;AAC5B,+CAUuB;
|
1
|
+
{"version":3,"file":"RiseWallet.js","sourceRoot":"","sources":["../../src/WalletAdapters/RiseWallet.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import { MaybeHexString, Types } from 'aptos';
|
2
|
+
import { AccountKeys, BaseWalletAdapter, NetworkInfo, SignMessagePayload, SignMessageResponse, WalletAdapterNetwork, WalletName, WalletReadyState } from './BaseAdapter';
|
3
|
+
interface ConnectSpacecyAccount {
|
4
|
+
address: MaybeHexString;
|
5
|
+
method: string;
|
6
|
+
publicKey: MaybeHexString;
|
7
|
+
status: number;
|
8
|
+
}
|
9
|
+
interface SpacecyAccount {
|
10
|
+
address: MaybeHexString;
|
11
|
+
publicKey?: MaybeHexString;
|
12
|
+
authKey?: MaybeHexString;
|
13
|
+
isConnected: boolean;
|
14
|
+
}
|
15
|
+
export interface ISpacecyWallet {
|
16
|
+
checkIsConnectedAndAccount: () => Promise<{
|
17
|
+
isConnected: boolean;
|
18
|
+
accountWallet: MaybeHexString;
|
19
|
+
}>;
|
20
|
+
connect: () => Promise<ConnectSpacecyAccount>;
|
21
|
+
account(): Promise<MaybeHexString>;
|
22
|
+
publicKey(): Promise<MaybeHexString>;
|
23
|
+
signAndSubmitTransaction(transaction: Types.TransactionPayload, options?: any): Promise<{
|
24
|
+
status: number;
|
25
|
+
data: Types.HexEncodedBytes;
|
26
|
+
method: 'signAndSubmitTransaction';
|
27
|
+
}>;
|
28
|
+
isConnected(): Promise<boolean>;
|
29
|
+
signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<{
|
30
|
+
status: number;
|
31
|
+
data: Uint8Array;
|
32
|
+
method: 'signTransaction';
|
33
|
+
}>;
|
34
|
+
signMessage(message: SignMessagePayload): Promise<{
|
35
|
+
status: number;
|
36
|
+
data: SignMessageResponse;
|
37
|
+
method: 'signMessage';
|
38
|
+
}>;
|
39
|
+
generateTransaction(sender: MaybeHexString, payload: any, options?: any): Promise<any>;
|
40
|
+
disconnect(): Promise<void>;
|
41
|
+
chainId(): Promise<void>;
|
42
|
+
network(): Promise<NetworkInfo>;
|
43
|
+
onAccountChange(listener: (address: string | undefined) => void): Promise<void>;
|
44
|
+
onNetworkChange(listener: (network: NetworkInfo) => void): Promise<void>;
|
45
|
+
}
|
46
|
+
export interface SpacecyWalletAdapterConfig {
|
47
|
+
provider?: ISpacecyWallet;
|
48
|
+
timeout?: number;
|
49
|
+
}
|
50
|
+
export declare class SpacecyWalletAdapter extends BaseWalletAdapter {
|
51
|
+
name: WalletName<"Spacecy">;
|
52
|
+
url: string;
|
53
|
+
icon: string;
|
54
|
+
protected _provider: ISpacecyWallet | undefined;
|
55
|
+
protected _network: WalletAdapterNetwork | undefined;
|
56
|
+
protected _chainId: string | undefined;
|
57
|
+
protected _api: string | undefined;
|
58
|
+
protected _timeout: number;
|
59
|
+
protected _readyState: WalletReadyState;
|
60
|
+
protected _connecting: boolean;
|
61
|
+
protected _wallet: SpacecyAccount | null;
|
62
|
+
constructor({ timeout }?: SpacecyWalletAdapterConfig);
|
63
|
+
get publicAccount(): AccountKeys;
|
64
|
+
get network(): NetworkInfo;
|
65
|
+
get connecting(): boolean;
|
66
|
+
get connected(): boolean;
|
67
|
+
get readyState(): WalletReadyState;
|
68
|
+
connect(): Promise<void>;
|
69
|
+
disconnect(): Promise<void>;
|
70
|
+
signTransaction(transactionPyld: Types.TransactionPayload, options?: any): Promise<Uint8Array>;
|
71
|
+
signAndSubmitTransaction(transactionPyld: Types.TransactionPayload, options?: any): Promise<{
|
72
|
+
hash: Types.HexEncodedBytes;
|
73
|
+
}>;
|
74
|
+
signMessage(msgPayload: SignMessagePayload): Promise<SignMessageResponse>;
|
75
|
+
onAccountChange(): Promise<void>;
|
76
|
+
onNetworkChange(): Promise<void>;
|
77
|
+
}
|
78
|
+
export {};
|
79
|
+
//# sourceMappingURL=SpacecyWallet.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SpacecyWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/SpacecyWallet.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,258 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.SpacecyWalletAdapter = void 0;
|
13
|
+
const errors_1 = require("../WalletProviders/errors");
|
14
|
+
const BaseAdapter_1 = require("./BaseAdapter");
|
15
|
+
const SpacecyWalletName = 'Spacecy';
|
16
|
+
class SpacecyWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
17
|
+
constructor({
|
18
|
+
// provider,
|
19
|
+
// network = WalletAdapterNetwork.Testnet,
|
20
|
+
timeout = 10000 } = {}) {
|
21
|
+
super();
|
22
|
+
this.name = SpacecyWalletName;
|
23
|
+
this.url = 'https://chrome.google.com/webstore/detail/spacecy-wallet/mkchoaaiifodcflmbaphdgeidocajadp?hl=en-US';
|
24
|
+
this.icon = 'https://spacecywallet.com/favicon.ico';
|
25
|
+
this._readyState = typeof window === 'undefined' || typeof document === 'undefined'
|
26
|
+
? BaseAdapter_1.WalletReadyState.Unsupported
|
27
|
+
: BaseAdapter_1.WalletReadyState.NotDetected;
|
28
|
+
this._provider = typeof window !== 'undefined' ? window.spacecy : undefined;
|
29
|
+
this._network = undefined;
|
30
|
+
this._timeout = timeout;
|
31
|
+
this._connecting = false;
|
32
|
+
this._wallet = null;
|
33
|
+
if (typeof window !== 'undefined' && this._readyState !== BaseAdapter_1.WalletReadyState.Unsupported) {
|
34
|
+
(0, BaseAdapter_1.scopePollingDetectionStrategy)(() => {
|
35
|
+
if (window.spacecy) {
|
36
|
+
this._readyState = BaseAdapter_1.WalletReadyState.Installed;
|
37
|
+
this.emit('readyStateChange', this._readyState);
|
38
|
+
return true;
|
39
|
+
}
|
40
|
+
return false;
|
41
|
+
});
|
42
|
+
}
|
43
|
+
}
|
44
|
+
get publicAccount() {
|
45
|
+
var _a, _b, _c;
|
46
|
+
return {
|
47
|
+
publicKey: ((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.publicKey) || null,
|
48
|
+
address: ((_b = this._wallet) === null || _b === void 0 ? void 0 : _b.address) || null,
|
49
|
+
authKey: ((_c = this._wallet) === null || _c === void 0 ? void 0 : _c.authKey) || null
|
50
|
+
};
|
51
|
+
}
|
52
|
+
get network() {
|
53
|
+
return {
|
54
|
+
name: this._network,
|
55
|
+
api: this._api,
|
56
|
+
chainId: this._chainId
|
57
|
+
};
|
58
|
+
}
|
59
|
+
get connecting() {
|
60
|
+
return this._connecting;
|
61
|
+
}
|
62
|
+
get connected() {
|
63
|
+
var _a;
|
64
|
+
return !!((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.isConnected);
|
65
|
+
}
|
66
|
+
get readyState() {
|
67
|
+
return this._readyState;
|
68
|
+
}
|
69
|
+
connect() {
|
70
|
+
var _a;
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
72
|
+
try {
|
73
|
+
if (this.connected || this.connecting)
|
74
|
+
return;
|
75
|
+
if (!(this._readyState === BaseAdapter_1.WalletReadyState.Loadable ||
|
76
|
+
this._readyState === BaseAdapter_1.WalletReadyState.Installed))
|
77
|
+
throw new errors_1.WalletNotReadyError();
|
78
|
+
this._connecting = true;
|
79
|
+
const provider = this._provider || window.spacecy;
|
80
|
+
const response = yield (provider === null || provider === void 0 ? void 0 : provider.connect());
|
81
|
+
if (!response) {
|
82
|
+
throw new errors_1.WalletNotConnectedError('No connect response');
|
83
|
+
}
|
84
|
+
const walletAccount = response.data.address;
|
85
|
+
const publicKey = response.data.publicKey;
|
86
|
+
if (walletAccount) {
|
87
|
+
this._wallet = {
|
88
|
+
address: walletAccount,
|
89
|
+
publicKey,
|
90
|
+
isConnected: true
|
91
|
+
};
|
92
|
+
try {
|
93
|
+
const networkInfo = yield (provider === null || provider === void 0 ? void 0 : provider.chainId());
|
94
|
+
if (networkInfo) {
|
95
|
+
this._network = networkInfo.data.networkName;
|
96
|
+
this._chainId = networkInfo.data.chainId;
|
97
|
+
this._api = networkInfo.data.rpcProvider;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
catch (error) {
|
101
|
+
const errMsg = error.message;
|
102
|
+
this.emit('error', new errors_1.WalletGetNetworkError(errMsg));
|
103
|
+
throw error;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
this.emit('connect', ((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.address) || '');
|
107
|
+
}
|
108
|
+
catch (error) {
|
109
|
+
this.emit('error', new Error('User has rejected the connection'));
|
110
|
+
throw error;
|
111
|
+
}
|
112
|
+
finally {
|
113
|
+
this._connecting = false;
|
114
|
+
}
|
115
|
+
});
|
116
|
+
}
|
117
|
+
disconnect() {
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
119
|
+
const wallet = this._wallet;
|
120
|
+
const provider = this._provider || window.spacecy;
|
121
|
+
if (wallet) {
|
122
|
+
this._wallet = null;
|
123
|
+
try {
|
124
|
+
yield (provider === null || provider === void 0 ? void 0 : provider.disconnect());
|
125
|
+
}
|
126
|
+
catch (error) {
|
127
|
+
this.emit('error', new errors_1.WalletDisconnectionError(error === null || error === void 0 ? void 0 : error.message, error));
|
128
|
+
}
|
129
|
+
}
|
130
|
+
this.emit('disconnect');
|
131
|
+
});
|
132
|
+
}
|
133
|
+
signTransaction(transactionPyld, options) {
|
134
|
+
return __awaiter(this, void 0, void 0, function* () {
|
135
|
+
try {
|
136
|
+
const wallet = this._wallet;
|
137
|
+
const provider = this._provider || window.spacecy;
|
138
|
+
if (!wallet || !provider)
|
139
|
+
throw new errors_1.WalletNotConnectedError();
|
140
|
+
const tx = yield provider.generateTransaction(wallet.address || '', transactionPyld, options);
|
141
|
+
if (!tx)
|
142
|
+
throw new Error('Cannot generate transaction');
|
143
|
+
const response = yield (provider === null || provider === void 0 ? void 0 : provider.signTransaction(tx.data));
|
144
|
+
if (!response) {
|
145
|
+
throw new Error('No response');
|
146
|
+
}
|
147
|
+
return response.data;
|
148
|
+
}
|
149
|
+
catch (error) {
|
150
|
+
this.emit('error', new errors_1.WalletSignTransactionError(error));
|
151
|
+
throw error;
|
152
|
+
}
|
153
|
+
});
|
154
|
+
}
|
155
|
+
signAndSubmitTransaction(transactionPyld, options) {
|
156
|
+
return __awaiter(this, void 0, void 0, function* () {
|
157
|
+
try {
|
158
|
+
const wallet = this._wallet;
|
159
|
+
const provider = this._provider || window.spacecy;
|
160
|
+
if (!wallet || !provider)
|
161
|
+
throw new errors_1.WalletNotConnectedError();
|
162
|
+
const response = yield (provider === null || provider === void 0 ? void 0 : provider.signAndSubmitTransaction(transactionPyld, options));
|
163
|
+
if (!response || response.status != 200) {
|
164
|
+
throw new Error('No response');
|
165
|
+
}
|
166
|
+
return { hash: response.data };
|
167
|
+
}
|
168
|
+
catch (error) {
|
169
|
+
this.emit('error', new errors_1.WalletSignAndSubmitMessageError(error.message));
|
170
|
+
throw error;
|
171
|
+
}
|
172
|
+
});
|
173
|
+
}
|
174
|
+
signMessage(msgPayload) {
|
175
|
+
return __awaiter(this, void 0, void 0, function* () {
|
176
|
+
try {
|
177
|
+
const wallet = this._wallet;
|
178
|
+
const provider = this._provider || window.spacecy;
|
179
|
+
if (!wallet || !provider)
|
180
|
+
throw new errors_1.WalletNotConnectedError();
|
181
|
+
if (typeof msgPayload !== 'object' || !msgPayload.nonce) {
|
182
|
+
throw new errors_1.WalletSignMessageError('Invalid signMessage Payload');
|
183
|
+
}
|
184
|
+
const response = yield (provider === null || provider === void 0 ? void 0 : provider.signMessage(msgPayload));
|
185
|
+
if (response.status == 200) {
|
186
|
+
return response.data;
|
187
|
+
}
|
188
|
+
else {
|
189
|
+
throw new Error('Sign Message failed');
|
190
|
+
}
|
191
|
+
}
|
192
|
+
catch (error) {
|
193
|
+
const errMsg = error.message;
|
194
|
+
this.emit('error', new errors_1.WalletSignMessageError(errMsg));
|
195
|
+
throw error;
|
196
|
+
}
|
197
|
+
});
|
198
|
+
}
|
199
|
+
onAccountChange() {
|
200
|
+
return __awaiter(this, void 0, void 0, function* () {
|
201
|
+
try {
|
202
|
+
const wallet = this._wallet;
|
203
|
+
const provider = this._provider || window.spacecy;
|
204
|
+
if (!wallet || !provider)
|
205
|
+
throw new errors_1.WalletNotConnectedError();
|
206
|
+
const handleAccountChange = (newAccount) => __awaiter(this, void 0, void 0, function* () {
|
207
|
+
// disconnect wallet if newAccount is undefined
|
208
|
+
if (newAccount.data == 'no account') {
|
209
|
+
if (this.connected) {
|
210
|
+
yield this.disconnect();
|
211
|
+
}
|
212
|
+
return;
|
213
|
+
}
|
214
|
+
if (newAccount.data == "") {
|
215
|
+
this._wallet = { publicKey: "", address: "", authKey: "", isConnected: false };
|
216
|
+
}
|
217
|
+
// const newPublicKey = await provider?.publicKey();
|
218
|
+
if (this._wallet != null) {
|
219
|
+
this._wallet = Object.assign(Object.assign({}, this._wallet), { address: newAccount.data == 'no account' ? undefined : newAccount.data, publicKey: undefined });
|
220
|
+
}
|
221
|
+
this.emit('accountChange', newAccount);
|
222
|
+
});
|
223
|
+
yield (provider === null || provider === void 0 ? void 0 : provider.onAccountChange(handleAccountChange));
|
224
|
+
}
|
225
|
+
catch (error) {
|
226
|
+
const errMsg = error.message;
|
227
|
+
this.emit('error', new errors_1.WalletAccountChangeError(errMsg));
|
228
|
+
throw error;
|
229
|
+
}
|
230
|
+
});
|
231
|
+
}
|
232
|
+
onNetworkChange() {
|
233
|
+
return __awaiter(this, void 0, void 0, function* () {
|
234
|
+
try {
|
235
|
+
const wallet = this._wallet;
|
236
|
+
const provider = this._provider || window.spacecy;
|
237
|
+
if (!wallet || !provider)
|
238
|
+
throw new errors_1.WalletNotConnectedError();
|
239
|
+
const handleNetworkChange = (network) => {
|
240
|
+
this._network = network.data.networkName;
|
241
|
+
this._api = network.data.rpcProvider;
|
242
|
+
this._chainId = network.data.chainId;
|
243
|
+
if (this._network) {
|
244
|
+
this.emit('networkChange', this._network);
|
245
|
+
}
|
246
|
+
};
|
247
|
+
yield (provider === null || provider === void 0 ? void 0 : provider.onNetworkChange(handleNetworkChange));
|
248
|
+
}
|
249
|
+
catch (error) {
|
250
|
+
const errMsg = error.message;
|
251
|
+
this.emit('error', new errors_1.WalletNetworkChangeError(errMsg));
|
252
|
+
throw error;
|
253
|
+
}
|
254
|
+
});
|
255
|
+
}
|
256
|
+
}
|
257
|
+
exports.SpacecyWalletAdapter = SpacecyWalletAdapter;
|
258
|
+
//# sourceMappingURL=SpacecyWallet.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SpacecyWallet.js","sourceRoot":"","sources":["../../src/WalletAdapters/SpacecyWallet.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
@@ -37,4 +37,5 @@ __exportStar(require("./FoxWallet"), exports);
|
|
37
37
|
// export * from './MsafeWallet';
|
38
38
|
__exportStar(require("./OpenBlockWallet"), exports);
|
39
39
|
__exportStar(require("./CloverWallet"), exports);
|
40
|
+
__exportStar(require("./SpacecyWallet"), exports);
|
40
41
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/WalletAdapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,yDAAuC;AACvC,gDAA8B;AAC9B,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,+CAA6B;AAC7B,gDAA8B;AAC9B,mDAAiC;AACjC,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAChC,sDAAoC;AACpC,+CAA6B;AAC7B,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,8CAA4B;AAC5B,iCAAiC;AACjC,oDAAkC;AAClC,iDAA+B"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/WalletAdapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,yDAAuC;AACvC,gDAA8B;AAC9B,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,+CAA6B;AAC7B,gDAA8B;AAC9B,mDAAiC;AACjC,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAChC,sDAAoC;AACpC,+CAA6B;AAC7B,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,8CAA4B;AAC5B,iCAAiC;AACjC,oDAAkC;AAClC,iDAA+B;AAC/B,kDAAgC"}
|
package/package.json
CHANGED
@@ -28,8 +28,10 @@ interface RiseAccount {
|
|
28
28
|
isConnected: boolean;
|
29
29
|
}
|
30
30
|
|
31
|
+
type AddressInfo = { address: string; publicKey: string; authKey?: string };
|
32
|
+
|
31
33
|
interface IRiseWallet {
|
32
|
-
connect: () => Promise<
|
34
|
+
connect: () => Promise<AddressInfo>;
|
33
35
|
account(): Promise<RiseAccount>;
|
34
36
|
isConnected: () => Promise<boolean>;
|
35
37
|
signAndSubmitTransaction(transaction: any): Promise<{ hash: Types.HexEncodedBytes }>;
|
@@ -37,6 +39,10 @@ interface IRiseWallet {
|
|
37
39
|
signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
|
38
40
|
disconnect(): Promise<void>;
|
39
41
|
network(): Promise<NetworkInfo>;
|
42
|
+
on(event: string, listener: () => any): void;
|
43
|
+
off(event: string, listener: () => any): void;
|
44
|
+
onAccountChange: (listener: (newAddress: AddressInfo) => void) => void;
|
45
|
+
onNetworkChange: (listener: (network: NetworkInfo) => void) => void;
|
40
46
|
}
|
41
47
|
|
42
48
|
interface RiseWindow extends Window {
|
@@ -156,22 +162,20 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
156
162
|
throw new WalletNotConnectedError('User has rejected the request');
|
157
163
|
}
|
158
164
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
const errMsg = error.message;
|
170
|
-
this.emit('error', new WalletGetNetworkError(errMsg));
|
171
|
-
throw error;
|
172
|
-
}
|
165
|
+
try {
|
166
|
+
const { chainId, api, name } = await provider.network();
|
167
|
+
|
168
|
+
this._network = name;
|
169
|
+
this._chainId = chainId;
|
170
|
+
this._api = api;
|
171
|
+
} catch (error: any) {
|
172
|
+
const errMsg = error.message;
|
173
|
+
this.emit('error', new WalletGetNetworkError(errMsg));
|
174
|
+
throw error;
|
173
175
|
}
|
174
176
|
|
177
|
+
provider?.on('disconnect', this.handleDisconnect);
|
178
|
+
|
175
179
|
const account = await provider?.account();
|
176
180
|
if (account) {
|
177
181
|
const { publicKey, address, authKey } = account;
|
@@ -200,6 +204,7 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
200
204
|
|
201
205
|
try {
|
202
206
|
const provider = this._provider || window.rise;
|
207
|
+
provider?.off('disconnect', this.handleDisconnect);
|
203
208
|
await provider?.disconnect();
|
204
209
|
} catch (error: any) {
|
205
210
|
this.emit('error', new WalletDisconnectionError(error?.message, error));
|
@@ -275,7 +280,18 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
275
280
|
const wallet = this._wallet;
|
276
281
|
const provider = this._provider || window.rise;
|
277
282
|
if (!wallet || !provider) throw new WalletNotConnectedError();
|
278
|
-
|
283
|
+
const handleAccountChange = async (newAccount?: AddressInfo) => {
|
284
|
+
if (newAccount?.publicKey) {
|
285
|
+
this._wallet = {
|
286
|
+
...this._wallet,
|
287
|
+
publicKey: newAccount.publicKey || this._wallet?.publicKey,
|
288
|
+
authKey: newAccount.authKey || this._wallet?.authKey,
|
289
|
+
address: newAccount.address || this._wallet?.address
|
290
|
+
};
|
291
|
+
this.emit('accountChange', newAccount?.publicKey);
|
292
|
+
}
|
293
|
+
};
|
294
|
+
await provider?.onAccountChange?.(handleAccountChange);
|
279
295
|
} catch (error: any) {
|
280
296
|
const errMsg = error.message;
|
281
297
|
this.emit('error', new WalletAccountChangeError(errMsg));
|
@@ -288,11 +304,30 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
|
|
288
304
|
const wallet = this._wallet;
|
289
305
|
const provider = this._provider || window.rise;
|
290
306
|
if (!wallet || !provider) throw new WalletNotConnectedError();
|
291
|
-
|
307
|
+
const handleNetworkChange = async (newNetwork: NetworkInfo) => {
|
308
|
+
const { chainId, api, name } = newNetwork;
|
309
|
+
this._network = name;
|
310
|
+
this._chainId = chainId;
|
311
|
+
this._api = api;
|
312
|
+
this.emit('networkChange', this._network);
|
313
|
+
};
|
314
|
+
await provider?.onNetworkChange?.(handleNetworkChange);
|
292
315
|
} catch (error: any) {
|
293
316
|
const errMsg = error.message;
|
294
317
|
this.emit('error', new WalletNetworkChangeError(errMsg));
|
295
318
|
throw error;
|
296
319
|
}
|
297
320
|
}
|
321
|
+
|
322
|
+
private handleDisconnect = () => {
|
323
|
+
try {
|
324
|
+
const provider = this._provider || window.rise;
|
325
|
+
|
326
|
+
provider?.off('disconnect', this.handleDisconnect);
|
327
|
+
|
328
|
+
this._wallet = null;
|
329
|
+
} finally {
|
330
|
+
this.emit('disconnect');
|
331
|
+
}
|
332
|
+
};
|
298
333
|
}
|
@@ -0,0 +1,350 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
import { MaybeHexString, Types } from 'aptos';
|
4
|
+
import {
|
5
|
+
WalletAccountChangeError,
|
6
|
+
WalletDisconnectionError,
|
7
|
+
WalletGetNetworkError,
|
8
|
+
WalletNetworkChangeError,
|
9
|
+
WalletNotConnectedError,
|
10
|
+
WalletNotReadyError,
|
11
|
+
WalletSignAndSubmitMessageError,
|
12
|
+
WalletSignMessageError,
|
13
|
+
WalletSignTransactionError
|
14
|
+
} from '../WalletProviders/errors';
|
15
|
+
import {
|
16
|
+
AccountKeys,
|
17
|
+
BaseWalletAdapter,
|
18
|
+
NetworkInfo,
|
19
|
+
scopePollingDetectionStrategy,
|
20
|
+
SignMessagePayload,
|
21
|
+
SignMessageResponse,
|
22
|
+
WalletAdapterNetwork,
|
23
|
+
WalletName,
|
24
|
+
WalletReadyState
|
25
|
+
} from './BaseAdapter';
|
26
|
+
interface ConnectSpacecyAccount {
|
27
|
+
address: MaybeHexString;
|
28
|
+
method: string;
|
29
|
+
publicKey: MaybeHexString;
|
30
|
+
status: number;
|
31
|
+
}
|
32
|
+
|
33
|
+
interface SpacecyAccount {
|
34
|
+
address: MaybeHexString;
|
35
|
+
publicKey?: MaybeHexString;
|
36
|
+
authKey?: MaybeHexString;
|
37
|
+
isConnected: boolean;
|
38
|
+
}
|
39
|
+
export interface ISpacecyWallet {
|
40
|
+
checkIsConnectedAndAccount: () => Promise<{ isConnected: boolean, accountWallet: MaybeHexString }>;
|
41
|
+
connect: () => Promise<ConnectSpacecyAccount>;
|
42
|
+
account(): Promise<MaybeHexString>;
|
43
|
+
publicKey(): Promise<MaybeHexString>;
|
44
|
+
signAndSubmitTransaction(
|
45
|
+
transaction: Types.TransactionPayload,
|
46
|
+
options?: any
|
47
|
+
): Promise<{
|
48
|
+
status: number;
|
49
|
+
data: Types.HexEncodedBytes;
|
50
|
+
method: 'signAndSubmitTransaction';
|
51
|
+
}>;
|
52
|
+
isConnected(): Promise<boolean>;
|
53
|
+
signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<{
|
54
|
+
status: number;
|
55
|
+
data: Uint8Array;
|
56
|
+
method: 'signTransaction';
|
57
|
+
}>
|
58
|
+
signMessage(message: SignMessagePayload): Promise<{
|
59
|
+
status: number;
|
60
|
+
data: SignMessageResponse;
|
61
|
+
method: 'signMessage';
|
62
|
+
}>;
|
63
|
+
generateTransaction(sender: MaybeHexString, payload: any, options?: any): Promise<any>;
|
64
|
+
disconnect(): Promise<void>;
|
65
|
+
chainId(): Promise<void>;
|
66
|
+
network(): Promise<NetworkInfo>;
|
67
|
+
onAccountChange(listener: (address: string | undefined) => void): Promise<void>;
|
68
|
+
onNetworkChange(listener: (network: NetworkInfo) => void): Promise<void>;
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
interface SpacecyWindow extends Window {
|
74
|
+
spacecy?: ISpacecyWallet;
|
75
|
+
}
|
76
|
+
|
77
|
+
declare const window: SpacecyWindow;
|
78
|
+
|
79
|
+
const SpacecyWalletName = 'Spacecy' as WalletName<'Spacecy'>;
|
80
|
+
|
81
|
+
export interface SpacecyWalletAdapterConfig {
|
82
|
+
provider?: ISpacecyWallet;
|
83
|
+
// network?: WalletAdapterNetwork;
|
84
|
+
timeout?: number;
|
85
|
+
}
|
86
|
+
|
87
|
+
export class SpacecyWalletAdapter extends BaseWalletAdapter {
|
88
|
+
name = SpacecyWalletName;
|
89
|
+
|
90
|
+
url = 'https://chrome.google.com/webstore/detail/spacecy-wallet/mkchoaaiifodcflmbaphdgeidocajadp?hl=en-US';
|
91
|
+
|
92
|
+
icon = 'https://spacecywallet.com/favicon.ico';
|
93
|
+
|
94
|
+
protected _provider: ISpacecyWallet | undefined;
|
95
|
+
|
96
|
+
protected _network: WalletAdapterNetwork | undefined;
|
97
|
+
|
98
|
+
protected _chainId: string | undefined;
|
99
|
+
|
100
|
+
protected _api: string | undefined;
|
101
|
+
|
102
|
+
protected _timeout: number;
|
103
|
+
|
104
|
+
protected _readyState: WalletReadyState =
|
105
|
+
typeof window === 'undefined' || typeof document === 'undefined'
|
106
|
+
? WalletReadyState.Unsupported
|
107
|
+
: WalletReadyState.NotDetected;
|
108
|
+
|
109
|
+
protected _connecting: boolean;
|
110
|
+
|
111
|
+
protected _wallet: SpacecyAccount | null;
|
112
|
+
|
113
|
+
constructor({
|
114
|
+
// provider,
|
115
|
+
// network = WalletAdapterNetwork.Testnet,
|
116
|
+
timeout = 10000
|
117
|
+
}: SpacecyWalletAdapterConfig = {}) {
|
118
|
+
super();
|
119
|
+
|
120
|
+
this._provider = typeof window !== 'undefined' ? window.spacecy : undefined;
|
121
|
+
this._network = undefined;
|
122
|
+
this._timeout = timeout;
|
123
|
+
this._connecting = false;
|
124
|
+
this._wallet = null;
|
125
|
+
|
126
|
+
if (typeof window !== 'undefined' && this._readyState !== WalletReadyState.Unsupported) {
|
127
|
+
scopePollingDetectionStrategy(() => {
|
128
|
+
if (window.spacecy) {
|
129
|
+
this._readyState = WalletReadyState.Installed;
|
130
|
+
this.emit('readyStateChange', this._readyState);
|
131
|
+
return true;
|
132
|
+
}
|
133
|
+
return false;
|
134
|
+
});
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
get publicAccount(): AccountKeys {
|
139
|
+
return {
|
140
|
+
publicKey: this._wallet?.publicKey || null,
|
141
|
+
address: this._wallet?.address || null,
|
142
|
+
authKey: this._wallet?.authKey || null
|
143
|
+
};
|
144
|
+
}
|
145
|
+
|
146
|
+
get network(): NetworkInfo {
|
147
|
+
return {
|
148
|
+
name: this._network,
|
149
|
+
api: this._api,
|
150
|
+
chainId: this._chainId
|
151
|
+
};
|
152
|
+
}
|
153
|
+
|
154
|
+
get connecting(): boolean {
|
155
|
+
return this._connecting;
|
156
|
+
}
|
157
|
+
|
158
|
+
get connected(): boolean {
|
159
|
+
return !!this._wallet?.isConnected;
|
160
|
+
}
|
161
|
+
|
162
|
+
get readyState(): WalletReadyState {
|
163
|
+
return this._readyState;
|
164
|
+
}
|
165
|
+
|
166
|
+
async connect(): Promise<void> {
|
167
|
+
try {
|
168
|
+
if (this.connected || this.connecting) return;
|
169
|
+
if (
|
170
|
+
!(
|
171
|
+
this._readyState === WalletReadyState.Loadable ||
|
172
|
+
this._readyState === WalletReadyState.Installed
|
173
|
+
)
|
174
|
+
)
|
175
|
+
throw new WalletNotReadyError();
|
176
|
+
this._connecting = true;
|
177
|
+
const provider = this._provider || window.spacecy;
|
178
|
+
const response: any = await provider?.connect()
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
if (!response) {
|
184
|
+
throw new WalletNotConnectedError('No connect response');
|
185
|
+
}
|
186
|
+
const walletAccount = response.data.address;
|
187
|
+
const publicKey = response.data.publicKey;
|
188
|
+
if (walletAccount) {
|
189
|
+
this._wallet = {
|
190
|
+
address: walletAccount,
|
191
|
+
publicKey,
|
192
|
+
isConnected: true
|
193
|
+
};
|
194
|
+
|
195
|
+
try {
|
196
|
+
const networkInfo: any = await provider?.chainId();
|
197
|
+
if (networkInfo) {
|
198
|
+
this._network = networkInfo.data.networkName;
|
199
|
+
this._chainId = networkInfo.data.chainId;
|
200
|
+
this._api = networkInfo.data.rpcProvider
|
201
|
+
}
|
202
|
+
} catch (error: any) {
|
203
|
+
const errMsg = error.message;
|
204
|
+
this.emit('error', new WalletGetNetworkError(errMsg));
|
205
|
+
throw error;
|
206
|
+
}
|
207
|
+
}
|
208
|
+
|
209
|
+
|
210
|
+
this.emit('connect', this._wallet?.address || '');
|
211
|
+
} catch (error: any) {
|
212
|
+
this.emit('error', new Error('User has rejected the connection'));
|
213
|
+
throw error;
|
214
|
+
} finally {
|
215
|
+
this._connecting = false;
|
216
|
+
}
|
217
|
+
}
|
218
|
+
|
219
|
+
async disconnect(): Promise<void> {
|
220
|
+
const wallet = this._wallet;
|
221
|
+
const provider = this._provider || window.spacecy;
|
222
|
+
if (wallet) {
|
223
|
+
this._wallet = null;
|
224
|
+
try {
|
225
|
+
await provider?.disconnect();
|
226
|
+
} catch (error: any) {
|
227
|
+
this.emit('error', new WalletDisconnectionError(error?.message, error));
|
228
|
+
}
|
229
|
+
}
|
230
|
+
this.emit('disconnect');
|
231
|
+
}
|
232
|
+
|
233
|
+
async signTransaction(
|
234
|
+
transactionPyld: Types.TransactionPayload,
|
235
|
+
options?: any
|
236
|
+
): Promise<Uint8Array> {
|
237
|
+
try {
|
238
|
+
const wallet = this._wallet;
|
239
|
+
const provider = this._provider || window.spacecy;
|
240
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
241
|
+
const tx = await provider.generateTransaction(wallet.address || '', transactionPyld, options);
|
242
|
+
if (!tx) throw new Error('Cannot generate transaction');
|
243
|
+
const response = await provider?.signTransaction(tx.data);
|
244
|
+
if (!response) {
|
245
|
+
throw new Error('No response');
|
246
|
+
}
|
247
|
+
return response.data;
|
248
|
+
} catch (error: any) {
|
249
|
+
this.emit('error', new WalletSignTransactionError(error));
|
250
|
+
throw error;
|
251
|
+
}
|
252
|
+
}
|
253
|
+
async signAndSubmitTransaction(
|
254
|
+
transactionPyld: Types.TransactionPayload,
|
255
|
+
options?: any
|
256
|
+
): Promise<{ hash: Types.HexEncodedBytes }> {
|
257
|
+
try {
|
258
|
+
const wallet = this._wallet;
|
259
|
+
const provider = this._provider || window.spacecy;
|
260
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
261
|
+
const response = await provider?.signAndSubmitTransaction(transactionPyld, options);
|
262
|
+
|
263
|
+
|
264
|
+
if (!response || response.status != 200) {
|
265
|
+
throw new Error('No response');
|
266
|
+
}
|
267
|
+
return { hash: response.data };
|
268
|
+
} catch (error: any) {
|
269
|
+
this.emit('error', new WalletSignAndSubmitMessageError(error.message));
|
270
|
+
throw error;
|
271
|
+
}
|
272
|
+
}
|
273
|
+
|
274
|
+
|
275
|
+
async signMessage(msgPayload: SignMessagePayload): Promise<SignMessageResponse> {
|
276
|
+
try {
|
277
|
+
const wallet = this._wallet;
|
278
|
+
const provider = this._provider || window.spacecy;
|
279
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
280
|
+
if (typeof msgPayload !== 'object' || !msgPayload.nonce) {
|
281
|
+
throw new WalletSignMessageError('Invalid signMessage Payload');
|
282
|
+
}
|
283
|
+
const response = await provider?.signMessage(msgPayload);
|
284
|
+
if (response.status == 200) {
|
285
|
+
return response.data;
|
286
|
+
} else {
|
287
|
+
throw new Error('Sign Message failed');
|
288
|
+
}
|
289
|
+
} catch (error: any) {
|
290
|
+
const errMsg = error.message;
|
291
|
+
this.emit('error', new WalletSignMessageError(errMsg));
|
292
|
+
throw error;
|
293
|
+
}
|
294
|
+
}
|
295
|
+
|
296
|
+
async onAccountChange(): Promise<void> {
|
297
|
+
try {
|
298
|
+
const wallet = this._wallet;
|
299
|
+
const provider = this._provider || window.spacecy;
|
300
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
301
|
+
const handleAccountChange = async (newAccount: any) => {
|
302
|
+
// disconnect wallet if newAccount is undefined
|
303
|
+
if (newAccount.data == 'no account') {
|
304
|
+
if (this.connected) {
|
305
|
+
await this.disconnect();
|
306
|
+
}
|
307
|
+
return;
|
308
|
+
}
|
309
|
+
if (newAccount.data == "") {
|
310
|
+
this._wallet = { publicKey: "", address: "", authKey: "", isConnected: false }
|
311
|
+
}
|
312
|
+
// const newPublicKey = await provider?.publicKey();
|
313
|
+
if (this._wallet != null) {
|
314
|
+
this._wallet = {
|
315
|
+
...this._wallet,
|
316
|
+
address: newAccount.data == 'no account' ? undefined : newAccount.data,
|
317
|
+
publicKey: undefined
|
318
|
+
};
|
319
|
+
}
|
320
|
+
this.emit('accountChange', newAccount);
|
321
|
+
};
|
322
|
+
await provider?.onAccountChange(handleAccountChange);
|
323
|
+
} catch (error: any) {
|
324
|
+
const errMsg = error.message;
|
325
|
+
this.emit('error', new WalletAccountChangeError(errMsg));
|
326
|
+
throw error;
|
327
|
+
}
|
328
|
+
}
|
329
|
+
|
330
|
+
async onNetworkChange(): Promise<void> {
|
331
|
+
try {
|
332
|
+
const wallet = this._wallet;
|
333
|
+
const provider = this._provider || window.spacecy;
|
334
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
335
|
+
const handleNetworkChange = (network: any) => {
|
336
|
+
this._network = network.data.networkName;
|
337
|
+
this._api = network.data.rpcProvider
|
338
|
+
this._chainId = network.data.chainId;
|
339
|
+
if (this._network) {
|
340
|
+
this.emit('networkChange', this._network);
|
341
|
+
}
|
342
|
+
};
|
343
|
+
await provider?.onNetworkChange(handleNetworkChange);
|
344
|
+
} catch (error: any) {
|
345
|
+
const errMsg = error.message;
|
346
|
+
this.emit('error', new WalletNetworkChangeError(errMsg));
|
347
|
+
throw error;
|
348
|
+
}
|
349
|
+
}
|
350
|
+
}
|