@manahippo/aptos-wallet-adapter 0.4.2 → 0.4.4
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +8 -2
- package/dist/WalletAdapters/AptosSnap.d.ts +42 -0
- package/dist/WalletAdapters/AptosSnap.d.ts.map +1 -0
- package/dist/WalletAdapters/AptosSnap.js +185 -0
- package/dist/WalletAdapters/AptosSnap.js.map +1 -0
- package/dist/WalletAdapters/FletchWallet.d.ts +57 -0
- package/dist/WalletAdapters/FletchWallet.d.ts.map +1 -0
- package/dist/WalletAdapters/FletchWallet.js +178 -0
- package/dist/WalletAdapters/FletchWallet.js.map +1 -0
- package/dist/WalletAdapters/HyperPayWallet.d.ts +56 -0
- package/dist/WalletAdapters/HyperPayWallet.d.ts.map +1 -0
- package/dist/WalletAdapters/HyperPayWallet.js +180 -0
- package/dist/WalletAdapters/HyperPayWallet.js.map +1 -0
- package/dist/WalletAdapters/PetraWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/PetraWallet.js +1 -1
- package/dist/WalletAdapters/PetraWallet.js.map +1 -1
- package/dist/WalletAdapters/PontemWallet.d.ts +4 -6
- package/dist/WalletAdapters/PontemWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/PontemWallet.js +4 -5
- package/dist/WalletAdapters/PontemWallet.js.map +1 -1
- package/dist/WalletAdapters/RiseWallet.d.ts +51 -0
- package/dist/WalletAdapters/RiseWallet.d.ts.map +1 -0
- package/dist/WalletAdapters/RiseWallet.js +189 -0
- package/dist/WalletAdapters/RiseWallet.js.map +1 -0
- package/dist/WalletAdapters/index.d.ts +4 -0
- package/dist/WalletAdapters/index.d.ts.map +1 -1
- package/dist/WalletAdapters/index.js +4 -0
- package/dist/WalletAdapters/index.js.map +1 -1
- package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
- package/dist/WalletProviders/WalletProvider.js +12 -5
- package/dist/WalletProviders/WalletProvider.js.map +1 -1
- package/package.json +3 -2
- package/src/WalletAdapters/AptosSnap.ts +235 -0
- package/src/WalletAdapters/FletchWallet.ts +223 -0
- package/src/WalletAdapters/HyperPayWallet.ts +237 -0
- package/src/WalletAdapters/PetraWallet.ts +2 -1
- package/src/WalletAdapters/PontemWallet.ts +8 -9
- package/src/WalletAdapters/RiseWallet.ts +238 -0
- package/src/WalletAdapters/index.ts +4 -0
- package/src/WalletProviders/WalletProvider.tsx +14 -7
@@ -71,6 +71,7 @@ const WalletProvider = ({ children, wallets: adapters, autoConnect = false, onEr
|
|
71
71
|
(0, react_1.useEffect)(() => {
|
72
72
|
const selectedWallet = wallets.find((wAdapter) => wAdapter.adapter.name === name);
|
73
73
|
if (selectedWallet) {
|
74
|
+
console.log('selectedWallets', selectedWallet);
|
74
75
|
setState({
|
75
76
|
wallet: selectedWallet,
|
76
77
|
adapter: selectedWallet.adapter,
|
@@ -135,12 +136,18 @@ const WalletProvider = ({ children, wallets: adapters, autoConnect = false, onEr
|
|
135
136
|
}, [adapter]);
|
136
137
|
// If autoConnect is enabled, try to connect when the adapter changes and is ready
|
137
138
|
(0, react_1.useEffect)(() => {
|
138
|
-
if (isConnecting.current ||
|
139
|
-
connected ||
|
140
|
-
!autoConnect ||
|
141
|
-
!adapter ||
|
142
|
-
!(readyState === BaseAdapter_1.WalletReadyState.Installed || readyState === BaseAdapter_1.WalletReadyState.Loadable))
|
139
|
+
if (isConnecting.current || connected || !autoConnect || !adapter)
|
143
140
|
return;
|
141
|
+
// Handle wallet not installed in Auto-connect mode
|
142
|
+
if (!(readyState === BaseAdapter_1.WalletReadyState.Installed || readyState === BaseAdapter_1.WalletReadyState.Loadable)) {
|
143
|
+
// Clear the selected wallet
|
144
|
+
setName(null);
|
145
|
+
if (typeof window !== 'undefined') {
|
146
|
+
window.open(adapter.url, '_blank');
|
147
|
+
}
|
148
|
+
handleError(new errors_1.WalletNotReadyError());
|
149
|
+
return;
|
150
|
+
}
|
144
151
|
(function () {
|
145
152
|
return __awaiter(this, void 0, void 0, function* () {
|
146
153
|
isConnecting.current = true;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProviders/WalletProvider.tsx"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProviders/WalletProvider.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@manahippo/aptos-wallet-adapter",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.4",
|
4
4
|
"main": "dist/index.js",
|
5
5
|
"typings": "dist/index.d.ts",
|
6
6
|
"files": [
|
@@ -25,10 +25,11 @@
|
|
25
25
|
},
|
26
26
|
"dependencies": {
|
27
27
|
"@fewcha/web3": "^0.1.28",
|
28
|
+
"@keystonehq/aptossnap-adapter": "^0.2.7",
|
28
29
|
"@types/jest": "^27.0.1",
|
29
30
|
"@types/node": "^18.7.6",
|
30
31
|
"@types/react": "^18.0.17",
|
31
|
-
"aptos": "1.3.14",
|
32
|
+
"aptos": "^1.3.14",
|
32
33
|
"eventemitter3": "^4.0.7"
|
33
34
|
}
|
34
35
|
}
|
@@ -0,0 +1,235 @@
|
|
1
|
+
import {
|
2
|
+
TransactionPayload,
|
3
|
+
HexEncodedBytes,
|
4
|
+
EntryFunctionPayload,
|
5
|
+
PendingTransaction
|
6
|
+
} from 'aptos/src/generated';
|
7
|
+
import {
|
8
|
+
WalletDisconnectionError,
|
9
|
+
WalletNotConnectedError,
|
10
|
+
WalletNotReadyError,
|
11
|
+
WalletSignAndSubmitMessageError,
|
12
|
+
WalletSignMessageError,
|
13
|
+
WalletSignTransactionError
|
14
|
+
} from '../WalletProviders/errors';
|
15
|
+
import {
|
16
|
+
AccountKeys,
|
17
|
+
BaseWalletAdapter,
|
18
|
+
scopePollingDetectionStrategy,
|
19
|
+
WalletName,
|
20
|
+
WalletReadyState,
|
21
|
+
SignMessagePayload,
|
22
|
+
SignMessageResponse
|
23
|
+
} from './BaseAdapter';
|
24
|
+
import { AptosNetwork, PublicAccount } from '@keystonehq/aptossnap-adapter/build/types';
|
25
|
+
import WalletAdapter from '@keystonehq/aptossnap-adapter';
|
26
|
+
|
27
|
+
interface IAptosSnap {
|
28
|
+
connect: () => Promise<PublicAccount>;
|
29
|
+
account: () => Promise<PublicAccount>;
|
30
|
+
isConnected: () => Promise<boolean>;
|
31
|
+
signAndSubmitTransaction(
|
32
|
+
transaction: EntryFunctionPayload,
|
33
|
+
options?: any
|
34
|
+
): Promise<PendingTransaction>;
|
35
|
+
signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
|
36
|
+
disconnect(): Promise<void>;
|
37
|
+
signTransaction(transaction: EntryFunctionPayload): Promise<Uint8Array>;
|
38
|
+
}
|
39
|
+
|
40
|
+
interface SnapWindow extends Window {
|
41
|
+
snap?: IAptosSnap;
|
42
|
+
}
|
43
|
+
|
44
|
+
declare const window: SnapWindow;
|
45
|
+
|
46
|
+
export const AptosSnapName = 'Snap' as WalletName<'Snap'>;
|
47
|
+
|
48
|
+
export interface AptosSnapAdapterConfig {
|
49
|
+
provider?: IAptosSnap;
|
50
|
+
network: AptosNetwork;
|
51
|
+
timeout?: number;
|
52
|
+
}
|
53
|
+
|
54
|
+
export class AptosSnapAdapter extends BaseWalletAdapter {
|
55
|
+
name = AptosSnapName;
|
56
|
+
|
57
|
+
url =
|
58
|
+
'https://chrome.google.com/webstore/detail/metamask-flask-developmen/ljfoeinjpaedjfecbmggjgodbgkmjkjk';
|
59
|
+
|
60
|
+
icon = 'https://metamask.zendesk.com/hc/article_attachments/6974707389467/mceclip1.png';
|
61
|
+
|
62
|
+
protected _provider: IAptosSnap | undefined;
|
63
|
+
|
64
|
+
// protected _network: WalletAdapterNetwork;
|
65
|
+
protected _timeout: number;
|
66
|
+
|
67
|
+
protected _readyState: WalletReadyState =
|
68
|
+
typeof window === 'undefined' || typeof document === 'undefined'
|
69
|
+
? WalletReadyState.Unsupported
|
70
|
+
: WalletReadyState.NotDetected;
|
71
|
+
|
72
|
+
protected _connecting: boolean;
|
73
|
+
|
74
|
+
protected _wallet: any | null;
|
75
|
+
|
76
|
+
constructor(
|
77
|
+
{
|
78
|
+
// provider,
|
79
|
+
network,
|
80
|
+
timeout = 10000
|
81
|
+
}: AptosSnapAdapterConfig = { network: 'devnet' }
|
82
|
+
) {
|
83
|
+
super();
|
84
|
+
//@ts-ignore
|
85
|
+
this._provider = new WalletAdapter({ network }, 'npm:@keystonehq/aptossnap');
|
86
|
+
// this._network = network;
|
87
|
+
this._timeout = timeout;
|
88
|
+
this._connecting = false;
|
89
|
+
this._wallet = null;
|
90
|
+
if (typeof window !== 'undefined' && this._readyState !== WalletReadyState.Unsupported) {
|
91
|
+
scopePollingDetectionStrategy(() => {
|
92
|
+
if (window.ethereum) {
|
93
|
+
this._readyState = WalletReadyState.Installed;
|
94
|
+
return true;
|
95
|
+
}
|
96
|
+
return false;
|
97
|
+
});
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
get publicAccount(): AccountKeys {
|
102
|
+
return {
|
103
|
+
publicKey: this._wallet?.publicKey || null,
|
104
|
+
address: this._wallet?.address || null,
|
105
|
+
authKey: this._wallet?.authKey || null
|
106
|
+
};
|
107
|
+
}
|
108
|
+
|
109
|
+
get connecting(): boolean {
|
110
|
+
return this._connecting;
|
111
|
+
}
|
112
|
+
|
113
|
+
get connected(): boolean {
|
114
|
+
return !!this._wallet?.isConnected;
|
115
|
+
}
|
116
|
+
|
117
|
+
get readyState(): WalletReadyState {
|
118
|
+
return this._readyState;
|
119
|
+
}
|
120
|
+
|
121
|
+
async connect(): Promise<void> {
|
122
|
+
try {
|
123
|
+
if (this.connected || this.connecting) return;
|
124
|
+
if (
|
125
|
+
!(
|
126
|
+
this._readyState === WalletReadyState.Loadable ||
|
127
|
+
this._readyState === WalletReadyState.Installed
|
128
|
+
)
|
129
|
+
)
|
130
|
+
throw new WalletNotReadyError();
|
131
|
+
this._connecting = true;
|
132
|
+
const provider = this._provider;
|
133
|
+
const isConnected = await provider?.isConnected();
|
134
|
+
if (isConnected) {
|
135
|
+
await provider?.disconnect();
|
136
|
+
}
|
137
|
+
const response = await provider?.connect();
|
138
|
+
this._wallet = {
|
139
|
+
...response,
|
140
|
+
isConnected: true
|
141
|
+
};
|
142
|
+
|
143
|
+
this.emit('connect', this._wallet.publicKey);
|
144
|
+
} catch (error: any) {
|
145
|
+
this.emit('error', error);
|
146
|
+
throw error;
|
147
|
+
} finally {
|
148
|
+
this._connecting = false;
|
149
|
+
}
|
150
|
+
}
|
151
|
+
|
152
|
+
async disconnect(): Promise<void> {
|
153
|
+
const wallet = this._wallet;
|
154
|
+
const provider = this._provider;
|
155
|
+
if (wallet) {
|
156
|
+
this._wallet = null;
|
157
|
+
try {
|
158
|
+
await provider?.disconnect();
|
159
|
+
} catch (error: any) {
|
160
|
+
this.emit('error', new WalletDisconnectionError(error?.message, error));
|
161
|
+
}
|
162
|
+
}
|
163
|
+
|
164
|
+
this.emit('disconnect');
|
165
|
+
}
|
166
|
+
|
167
|
+
async signTransaction(transaction: TransactionPayload): Promise<Uint8Array> {
|
168
|
+
try {
|
169
|
+
const wallet = this._wallet;
|
170
|
+
if (!wallet) throw new WalletNotConnectedError();
|
171
|
+
|
172
|
+
try {
|
173
|
+
const provider = this._provider;
|
174
|
+
const response = await provider?.signTransaction(transaction as EntryFunctionPayload);
|
175
|
+
if (response) {
|
176
|
+
return new Uint8Array([]);
|
177
|
+
} else {
|
178
|
+
throw new Error('Transaction failed');
|
179
|
+
}
|
180
|
+
} catch (error: any) {
|
181
|
+
throw new WalletSignTransactionError(error?.message, error);
|
182
|
+
}
|
183
|
+
} catch (error: any) {
|
184
|
+
this.emit('error', error);
|
185
|
+
throw error;
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
async signAndSubmitTransaction(
|
190
|
+
transaction: TransactionPayload,
|
191
|
+
options?: any
|
192
|
+
): Promise<{ hash: HexEncodedBytes }> {
|
193
|
+
try {
|
194
|
+
const wallet = this._wallet;
|
195
|
+
if (!wallet) throw new WalletNotConnectedError();
|
196
|
+
|
197
|
+
try {
|
198
|
+
const provider = this._provider;
|
199
|
+
const response = await provider?.signAndSubmitTransaction(
|
200
|
+
transaction as EntryFunctionPayload,
|
201
|
+
options
|
202
|
+
);
|
203
|
+
if (response) {
|
204
|
+
return { hash: response.hash };
|
205
|
+
} else {
|
206
|
+
throw new Error('Transaction failed');
|
207
|
+
}
|
208
|
+
} catch (error: any) {
|
209
|
+
// console.log('transact err', error, error.message);
|
210
|
+
throw new WalletSignAndSubmitMessageError(error.message || error);
|
211
|
+
}
|
212
|
+
} catch (error: any) {
|
213
|
+
this.emit('error', error);
|
214
|
+
throw error;
|
215
|
+
}
|
216
|
+
}
|
217
|
+
|
218
|
+
async signMessage(message: SignMessagePayload): Promise<SignMessageResponse> {
|
219
|
+
try {
|
220
|
+
const wallet = this._wallet;
|
221
|
+
const provider = this._provider;
|
222
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
223
|
+
const response = await provider?.signMessage(message);
|
224
|
+
if (response) {
|
225
|
+
return response;
|
226
|
+
} else {
|
227
|
+
throw new Error('Sign Message failed');
|
228
|
+
}
|
229
|
+
} catch (error: any) {
|
230
|
+
const errMsg = error.message;
|
231
|
+
this.emit('error', new WalletSignMessageError(errMsg));
|
232
|
+
throw error;
|
233
|
+
}
|
234
|
+
}
|
235
|
+
}
|
@@ -0,0 +1,223 @@
|
|
1
|
+
import { HexEncodedBytes, TransactionPayload } from 'aptos/src/generated';
|
2
|
+
import {
|
3
|
+
WalletDisconnectionError,
|
4
|
+
WalletNotConnectedError,
|
5
|
+
WalletNotReadyError,
|
6
|
+
WalletSignAndSubmitMessageError,
|
7
|
+
WalletSignMessageError,
|
8
|
+
WalletSignTransactionError
|
9
|
+
} from '../WalletProviders/errors';
|
10
|
+
import {
|
11
|
+
AccountKeys,
|
12
|
+
BaseWalletAdapter,
|
13
|
+
scopePollingDetectionStrategy,
|
14
|
+
SignMessagePayload,
|
15
|
+
SignMessageResponse,
|
16
|
+
WalletName,
|
17
|
+
WalletReadyState
|
18
|
+
} from './BaseAdapter';
|
19
|
+
|
20
|
+
interface IFletchWallet {
|
21
|
+
connect: () => Promise<{ Address: string; PublicKey: string, code: number, error?: any }>;
|
22
|
+
account: () => Promise<string>;
|
23
|
+
isConnected: () => Promise<boolean>;
|
24
|
+
signAndSubmitTransaction(transaction: any): Promise<{ code: number, error?: any, hash: string }>;
|
25
|
+
signTransaction(payload: any): Promise<{ code: number, error?: any, tx: Uint8Array }>;
|
26
|
+
signMessage(message: SignMessagePayload): Promise<{ code: number, error?: any, signedMessage: SignMessageResponse }>;
|
27
|
+
disconnect(): Promise<void>;
|
28
|
+
}
|
29
|
+
|
30
|
+
interface AptosWindow extends Window {
|
31
|
+
fletch?: IFletchWallet;
|
32
|
+
}
|
33
|
+
|
34
|
+
declare const window: AptosWindow;
|
35
|
+
|
36
|
+
export const FletchWalletName = 'Fletch' as WalletName<'Fletch'>;
|
37
|
+
|
38
|
+
export interface FletchWalletAdapterConfig {
|
39
|
+
provider?: IFletchWallet;
|
40
|
+
// network?: WalletAdapterNetwork;
|
41
|
+
timeout?: number;
|
42
|
+
}
|
43
|
+
|
44
|
+
export class FletchWalletAdapter extends BaseWalletAdapter {
|
45
|
+
name = FletchWalletName;
|
46
|
+
|
47
|
+
url = 'http://fletchwallet.io';
|
48
|
+
|
49
|
+
icon = 'http://fletchwallet.io/img/fletch-white.svg';
|
50
|
+
|
51
|
+
protected _provider: IFletchWallet;
|
52
|
+
|
53
|
+
// protected _network: WalletAdapterNetwork;
|
54
|
+
protected _timeout: number;
|
55
|
+
|
56
|
+
protected _readyState: WalletReadyState =
|
57
|
+
typeof window === 'undefined' || typeof document === 'undefined'
|
58
|
+
? WalletReadyState.Unsupported
|
59
|
+
: WalletReadyState.NotDetected;
|
60
|
+
|
61
|
+
protected _connecting: boolean;
|
62
|
+
|
63
|
+
protected _wallet: any | null;
|
64
|
+
|
65
|
+
constructor({
|
66
|
+
// provider,
|
67
|
+
// network = WalletAdapterNetwork.Mainnet,
|
68
|
+
timeout = 10000
|
69
|
+
}: FletchWalletAdapterConfig = {}) {
|
70
|
+
super();
|
71
|
+
|
72
|
+
this._provider = typeof window !== 'undefined' ? window.fletch : undefined;
|
73
|
+
// this._network = network;
|
74
|
+
this._timeout = timeout;
|
75
|
+
this._connecting = false;
|
76
|
+
this._wallet = null;
|
77
|
+
|
78
|
+
if (typeof window !== 'undefined' && this._readyState !== WalletReadyState.Unsupported) {
|
79
|
+
scopePollingDetectionStrategy(() => {
|
80
|
+
if (window.fletch) {
|
81
|
+
this._readyState = WalletReadyState.Installed;
|
82
|
+
this.emit('readyStateChange', this._readyState);
|
83
|
+
return true;
|
84
|
+
}
|
85
|
+
return false;
|
86
|
+
});
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
get publicAccount(): AccountKeys {
|
91
|
+
return {
|
92
|
+
publicKey: this._wallet?.publicKey || null,
|
93
|
+
address: this._wallet?.address || null,
|
94
|
+
authKey: this._wallet?.authKey || null
|
95
|
+
};
|
96
|
+
}
|
97
|
+
|
98
|
+
get connecting(): boolean {
|
99
|
+
return this._connecting;
|
100
|
+
}
|
101
|
+
|
102
|
+
get connected(): boolean {
|
103
|
+
return !!this._wallet?.isConnected;
|
104
|
+
}
|
105
|
+
|
106
|
+
get readyState(): WalletReadyState {
|
107
|
+
return this._readyState;
|
108
|
+
}
|
109
|
+
|
110
|
+
async connect(): Promise<void> {
|
111
|
+
try {
|
112
|
+
if (this.connected || this.connecting) return;
|
113
|
+
if (
|
114
|
+
!(
|
115
|
+
this._readyState === WalletReadyState.Loadable ||
|
116
|
+
this._readyState === WalletReadyState.Installed
|
117
|
+
)
|
118
|
+
)
|
119
|
+
throw new WalletNotReadyError();
|
120
|
+
this._connecting = true;
|
121
|
+
|
122
|
+
const provider = this._provider || window.fletch;
|
123
|
+
const isConnected = await this._provider?.isConnected();
|
124
|
+
if (isConnected === true) {
|
125
|
+
await provider?.disconnect();
|
126
|
+
}
|
127
|
+
|
128
|
+
const response = await provider?.connect();
|
129
|
+
if (response.code != 200) {
|
130
|
+
throw response.error
|
131
|
+
}
|
132
|
+
this._wallet = {
|
133
|
+
address: response?.Address,
|
134
|
+
publicKey: response?.PublicKey,
|
135
|
+
isConnected: true
|
136
|
+
};
|
137
|
+
|
138
|
+
this.emit('connect', this._wallet.publicKey);
|
139
|
+
} catch (error: any) {
|
140
|
+
this.emit('error', error);
|
141
|
+
throw error;
|
142
|
+
} finally {
|
143
|
+
this._connecting = false;
|
144
|
+
}
|
145
|
+
}
|
146
|
+
|
147
|
+
async disconnect(): Promise<void> {
|
148
|
+
const wallet = this._wallet;
|
149
|
+
const provider = this._provider || window.fletch;
|
150
|
+
if (wallet) {
|
151
|
+
this._wallet = null;
|
152
|
+
|
153
|
+
try {
|
154
|
+
await provider?.disconnect();
|
155
|
+
} catch (error: any) {
|
156
|
+
this.emit('error', new WalletDisconnectionError(error?.message, error));
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
this.emit('disconnect');
|
161
|
+
}
|
162
|
+
|
163
|
+
async signTransaction(transaction: TransactionPayload): Promise<Uint8Array> {
|
164
|
+
try {
|
165
|
+
const wallet = this._wallet;
|
166
|
+
const provider = this._provider || window.fletch;
|
167
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
168
|
+
|
169
|
+
const response = await provider.signTransaction(transaction);
|
170
|
+
if (response.code != 200) {
|
171
|
+
throw response.error
|
172
|
+
}
|
173
|
+
return response.tx;
|
174
|
+
} catch (error: any) {
|
175
|
+
const errMsg = error.message;
|
176
|
+
this.emit('error', new WalletSignTransactionError(errMsg));
|
177
|
+
throw error;
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
async signAndSubmitTransaction(
|
182
|
+
transaction: TransactionPayload
|
183
|
+
): Promise<{ hash: HexEncodedBytes }> {
|
184
|
+
try {
|
185
|
+
const wallet = this._wallet;
|
186
|
+
const provider = this._provider || window.fletch;
|
187
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
188
|
+
const response = await provider.signAndSubmitTransaction(transaction);
|
189
|
+
if (response.code == 200) {
|
190
|
+
return { hash: response.hash };
|
191
|
+
}
|
192
|
+
|
193
|
+
throw response.error
|
194
|
+
|
195
|
+
} catch (error: any) {
|
196
|
+
const errMsg = error.message;
|
197
|
+
this.emit('error', new WalletSignAndSubmitMessageError(errMsg));
|
198
|
+
throw error;
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
async signMessage(msgPayload: SignMessagePayload): Promise<SignMessageResponse> {
|
203
|
+
try {
|
204
|
+
const wallet = this._wallet;
|
205
|
+
const provider = this._provider || window.fletch;
|
206
|
+
if (!wallet || !provider) throw new WalletNotConnectedError();
|
207
|
+
if (typeof msgPayload !== 'object' || !msgPayload.nonce) {
|
208
|
+
throw new WalletSignMessageError('Invalid signMessage Payload');
|
209
|
+
}
|
210
|
+
|
211
|
+
const response = await provider?.signMessage(msgPayload);
|
212
|
+
if (response.code == 200) {
|
213
|
+
return response.signedMessage;
|
214
|
+
}
|
215
|
+
|
216
|
+
throw response.error
|
217
|
+
} catch (error: any) {
|
218
|
+
const errMsg = error.message;
|
219
|
+
this.emit('error', new WalletSignMessageError(errMsg));
|
220
|
+
throw error;
|
221
|
+
}
|
222
|
+
}
|
223
|
+
}
|