@meshconnect/web-link-sdk 3.0.12 → 3.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Link.js +169 -203
- package/package.json +5 -5
- package/utils/connectors/evm/chainConfigs.d.ts +2 -0
- package/utils/connectors/evm/chainConfigs.js +115 -0
- package/utils/connectors/evm/chainSwitching.d.ts +15 -0
- package/utils/connectors/evm/chainSwitching.js +242 -0
- package/utils/connectors/evm/index.d.ts +8 -0
- package/utils/connectors/evm/index.js +8 -0
- package/utils/connectors/evm/provider.d.ts +6 -0
- package/utils/connectors/evm/provider.js +13 -0
- package/utils/connectors/evm/signing.d.ts +1 -0
- package/utils/connectors/evm/signing.js +78 -0
- package/utils/connectors/evm/transactions.d.ts +9 -0
- package/utils/connectors/evm/transactions.js +201 -0
- package/utils/connectors/evm/types.d.ts +58 -0
- package/utils/connectors/evm/types.js +1 -0
- package/utils/connectors/evm/walletConnection.d.ts +20 -0
- package/utils/connectors/evm/walletConnection.js +161 -0
- package/utils/connectors/evm/walletDiscovery.d.ts +10 -0
- package/utils/connectors/evm/walletDiscovery.js +55 -0
- package/utils/connectors/solana/connection.d.ts +3 -0
- package/utils/connectors/solana/connection.js +94 -0
- package/utils/connectors/solana/index.d.ts +5 -0
- package/utils/connectors/solana/index.js +5 -0
- package/utils/connectors/solana/providerDiscovery.d.ts +3 -0
- package/utils/connectors/solana/providerDiscovery.js +75 -0
- package/utils/connectors/solana/signing.d.ts +1 -0
- package/utils/connectors/solana/signing.js +59 -0
- package/utils/connectors/solana/transaction.d.ts +2 -0
- package/utils/connectors/solana/transaction.js +158 -0
- package/utils/connectors/solana/types.d.ts +68 -0
- package/utils/connectors/solana/types.js +8 -0
- package/utils/event-types.d.ts +10 -2
- package/utils/event-types.js +2 -1
- package/utils/types.d.ts +38 -29
- package/utils/version.d.ts +1 -1
- package/utils/version.js +1 -1
- package/utils/wallet/EVMWalletStrategy.d.ts +23 -0
- package/utils/wallet/EVMWalletStrategy.js +205 -0
- package/utils/wallet/SolanaWalletStrategy.d.ts +29 -0
- package/utils/wallet/SolanaWalletStrategy.js +194 -0
- package/utils/wallet/WalletStrategy.d.ts +45 -0
- package/utils/wallet/WalletStrategy.js +25 -0
- package/utils/wallet/WalletStrategyFactory.d.ts +15 -0
- package/utils/wallet/WalletStrategyFactory.js +31 -0
- package/utils/wallet/index.d.ts +4 -0
- package/utils/wallet/index.js +4 -0
- package/utils/wallet-browser-event-types.d.ts +16 -2
- package/utils/wagmiCoreConnectorsUtils.d.ts +0 -11
- package/utils/wagmiCoreConnectorsUtils.js +0 -396
package/Link.js
CHANGED
@@ -49,7 +49,7 @@ import { addPopup, iframeId, removePopup } from './utils/popup';
|
|
49
49
|
import { isLinkEventTypeKey } from './utils/event-types';
|
50
50
|
import { isWalletBrowserEventTypeKey } from './utils/wallet-browser-event-types';
|
51
51
|
import { sdkSpecs } from './utils/sdk-specs';
|
52
|
-
import {
|
52
|
+
import { WalletStrategyFactory } from './utils/wallet';
|
53
53
|
var currentOptions;
|
54
54
|
var possibleOrigins = new Set([
|
55
55
|
'https://web.meshconnect.com',
|
@@ -77,85 +77,71 @@ function sendMessageToIframe(message) {
|
|
77
77
|
}
|
78
78
|
function handleLinkEvent(event) {
|
79
79
|
return __awaiter(this, void 0, void 0, function () {
|
80
|
-
var
|
81
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l
|
82
|
-
return __generator(this, function (
|
83
|
-
switch (
|
84
|
-
case
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
case
|
123
|
-
{
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
return [3 /*break*/, 9];
|
131
|
-
}
|
132
|
-
_o.label = 4;
|
133
|
-
case 4:
|
134
|
-
{
|
135
|
-
payload = (_h = event.data) === null || _h === void 0 ? void 0 : _h.payload;
|
136
|
-
(_j = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onExit) === null || _j === void 0 ? void 0 : _j.call(currentOptions, payload === null || payload === void 0 ? void 0 : payload.errorMessage, payload);
|
137
|
-
removePopup();
|
138
|
-
return [3 /*break*/, 9];
|
139
|
-
}
|
140
|
-
_o.label = 5;
|
141
|
-
case 5:
|
142
|
-
{
|
143
|
-
if (event.data.link) {
|
144
|
-
w = 700;
|
145
|
-
h = 800;
|
146
|
-
left = screen.width / 2 - w / 2;
|
147
|
-
top_1 = screen.height / 2 - h / 2;
|
148
|
-
(_k = window
|
149
|
-
.open(event.data.link, '_blank', "popup,noopener,noreferrer,resizable,scrollbars,width=".concat(w, ",height=").concat(h, ",top=").concat(top_1, ",left=").concat(left))) === null || _k === void 0 ? void 0 : _k.focus();
|
150
|
-
}
|
151
|
-
return [3 /*break*/, 9];
|
80
|
+
var payload, payload, payload, payload, w, h, left, top_1, walletFactory, allProviders;
|
81
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
82
|
+
return __generator(this, function (_m) {
|
83
|
+
switch (event.data.type) {
|
84
|
+
case 'brokerageAccountAccessToken': {
|
85
|
+
payload = {
|
86
|
+
accessToken: event.data.payload
|
87
|
+
};
|
88
|
+
(_a = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _a === void 0 ? void 0 : _a.call(currentOptions, {
|
89
|
+
type: 'integrationConnected',
|
90
|
+
payload: payload
|
91
|
+
});
|
92
|
+
(_b = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onIntegrationConnected) === null || _b === void 0 ? void 0 : _b.call(currentOptions, payload);
|
93
|
+
break;
|
94
|
+
}
|
95
|
+
case 'delayedAuthentication': {
|
96
|
+
payload = {
|
97
|
+
delayedAuth: event.data.payload
|
98
|
+
};
|
99
|
+
(_c = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _c === void 0 ? void 0 : _c.call(currentOptions, {
|
100
|
+
type: 'integrationConnected',
|
101
|
+
payload: payload
|
102
|
+
});
|
103
|
+
(_d = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onIntegrationConnected) === null || _d === void 0 ? void 0 : _d.call(currentOptions, payload);
|
104
|
+
break;
|
105
|
+
}
|
106
|
+
case 'transferFinished': {
|
107
|
+
payload = event.data.payload;
|
108
|
+
(_e = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _e === void 0 ? void 0 : _e.call(currentOptions, {
|
109
|
+
type: 'transferCompleted',
|
110
|
+
payload: payload
|
111
|
+
});
|
112
|
+
(_f = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onTransferFinished) === null || _f === void 0 ? void 0 : _f.call(currentOptions, payload);
|
113
|
+
break;
|
114
|
+
}
|
115
|
+
case 'close':
|
116
|
+
case 'done': {
|
117
|
+
payload = (_g = event.data) === null || _g === void 0 ? void 0 : _g.payload;
|
118
|
+
(_h = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onExit) === null || _h === void 0 ? void 0 : _h.call(currentOptions, payload === null || payload === void 0 ? void 0 : payload.errorMessage, payload);
|
119
|
+
removePopup();
|
120
|
+
break;
|
121
|
+
}
|
122
|
+
case 'oauthLinkOpen': {
|
123
|
+
if (event.data.link) {
|
124
|
+
w = 700;
|
125
|
+
h = 800;
|
126
|
+
left = screen.width / 2 - w / 2;
|
127
|
+
top_1 = screen.height / 2 - h / 2;
|
128
|
+
(_j = window
|
129
|
+
.open(event.data.link, '_blank', "popup,noopener,noreferrer,resizable,scrollbars,width=".concat(w, ",height=").concat(h, ",top=").concat(top_1, ",left=").concat(left))) === null || _j === void 0 ? void 0 : _j.focus();
|
152
130
|
}
|
153
|
-
|
154
|
-
|
131
|
+
break;
|
132
|
+
}
|
133
|
+
case 'loaded': {
|
155
134
|
sendMessageToIframe({
|
156
135
|
type: 'meshSDKSpecs',
|
157
136
|
payload: __assign({}, sdkSpecs)
|
158
137
|
});
|
138
|
+
walletFactory = WalletStrategyFactory.getInstance();
|
139
|
+
allProviders = walletFactory.getAllProviders();
|
140
|
+
console.log('allProviders', allProviders);
|
141
|
+
sendMessageToIframe({
|
142
|
+
type: 'SDKinjectedWalletProviders',
|
143
|
+
payload: allProviders
|
144
|
+
});
|
159
145
|
if (currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.accessTokens) {
|
160
146
|
sendMessageToIframe({
|
161
147
|
type: 'frontAccessTokens',
|
@@ -168,36 +154,28 @@ function handleLinkEvent(event) {
|
|
168
154
|
payload: currentOptions.transferDestinationTokens
|
169
155
|
});
|
170
156
|
}
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
payload: injectedConnectors
|
178
|
-
});
|
179
|
-
}
|
180
|
-
(_l = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _l === void 0 ? void 0 : _l.call(currentOptions, { type: 'pageLoaded' });
|
181
|
-
return [3 /*break*/, 9];
|
182
|
-
case 8:
|
183
|
-
{
|
184
|
-
if (isLinkEventTypeKey(event.data.type)) {
|
185
|
-
(_m = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _m === void 0 ? void 0 : _m.call(currentOptions, event.data);
|
186
|
-
}
|
187
|
-
return [3 /*break*/, 9];
|
157
|
+
(_k = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _k === void 0 ? void 0 : _k.call(currentOptions, { type: 'pageLoaded' });
|
158
|
+
break;
|
159
|
+
}
|
160
|
+
default: {
|
161
|
+
if (isLinkEventTypeKey(event.data.type)) {
|
162
|
+
(_l = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _l === void 0 ? void 0 : _l.call(currentOptions, event.data);
|
188
163
|
}
|
189
|
-
|
190
|
-
|
164
|
+
break;
|
165
|
+
}
|
191
166
|
}
|
167
|
+
return [2 /*return*/];
|
192
168
|
});
|
193
169
|
});
|
194
170
|
}
|
195
171
|
function handleWalletBrowserEvent(event) {
|
196
172
|
return __awaiter(this, void 0, void 0, function () {
|
197
|
-
var _a, payload, result, error_1, payload, result, error_2, payload, result, error_3, payload, result, error_4, payload,
|
198
|
-
|
199
|
-
|
173
|
+
var walletFactory, _a, payload, networkType, strategy, result, error_1, payload, networkType, strategy, result, error_2, payload, networkType, strategy, result, error_3, payload, networkType, strategy, result, error_4, payload, strategy, result, responseType, error_5, errorType, payload, networkType, strategy, error_6;
|
174
|
+
var _b;
|
175
|
+
return __generator(this, function (_c) {
|
176
|
+
switch (_c.label) {
|
200
177
|
case 0:
|
178
|
+
walletFactory = WalletStrategyFactory.getInstance();
|
201
179
|
_a = event.data.type;
|
202
180
|
switch (_a) {
|
203
181
|
case 'walletBrowserInjectedWalletSelected': return [3 /*break*/, 1];
|
@@ -205,177 +183,166 @@ function handleWalletBrowserEvent(event) {
|
|
205
183
|
case 'walletBrowserChainSwitchRequest': return [3 /*break*/, 11];
|
206
184
|
case 'walletBrowserNativeTransferRequest': return [3 /*break*/, 16];
|
207
185
|
case 'walletBrowserNonNativeTransferRequest': return [3 /*break*/, 21];
|
208
|
-
case 'walletBrowserNativeSmartDeposit': return [3 /*break*/,
|
209
|
-
case 'walletBrowserNonNativeSmartDeposit': return [3 /*break*/,
|
210
|
-
case 'walletBrowserDisconnect': return [3 /*break*/,
|
186
|
+
case 'walletBrowserNativeSmartDeposit': return [3 /*break*/, 21];
|
187
|
+
case 'walletBrowserNonNativeSmartDeposit': return [3 /*break*/, 21];
|
188
|
+
case 'walletBrowserDisconnect': return [3 /*break*/, 26];
|
211
189
|
}
|
212
|
-
return [3 /*break*/,
|
190
|
+
return [3 /*break*/, 34];
|
213
191
|
case 1:
|
214
192
|
payload = event.data.payload;
|
215
|
-
|
193
|
+
_c.label = 2;
|
216
194
|
case 2:
|
217
|
-
|
218
|
-
|
195
|
+
_c.trys.push([2, 4, , 5]);
|
196
|
+
networkType = (((_b = payload.networkType) === null || _b === void 0 ? void 0 : _b.includes('solana')) ? 'solana' : 'evm');
|
197
|
+
strategy = walletFactory.getStrategy(networkType);
|
198
|
+
return [4 /*yield*/, strategy.connect(payload)];
|
219
199
|
case 3:
|
220
|
-
result =
|
221
|
-
if (result instanceof Error) {
|
222
|
-
throw result;
|
223
|
-
}
|
200
|
+
result = _c.sent();
|
224
201
|
sendMessageToIframe({
|
225
202
|
type: 'SDKinjectedConnectionCompleted',
|
226
203
|
payload: {
|
227
204
|
accounts: result.accounts,
|
228
|
-
chainId: result.chainId
|
205
|
+
chainId: result.chainId,
|
206
|
+
networkType: networkType
|
229
207
|
}
|
230
208
|
});
|
231
209
|
return [3 /*break*/, 5];
|
232
210
|
case 4:
|
233
|
-
error_1 =
|
211
|
+
error_1 = _c.sent();
|
212
|
+
console.error('Connection error:', error_1);
|
234
213
|
handleErrorAndSendMessage(error_1, 'SDKinjectedConnectionCompleted');
|
235
214
|
return [3 /*break*/, 5];
|
236
|
-
case 5: return [3 /*break*/,
|
215
|
+
case 5: return [3 /*break*/, 34];
|
237
216
|
case 6:
|
238
217
|
payload = event.data.payload;
|
239
|
-
|
218
|
+
_c.label = 7;
|
240
219
|
case 7:
|
241
|
-
|
242
|
-
|
220
|
+
_c.trys.push([7, 9, , 10]);
|
221
|
+
networkType = (!payload.address.startsWith('0x') ? 'solana' : 'evm');
|
222
|
+
strategy = walletFactory.getStrategy(networkType);
|
223
|
+
return [4 /*yield*/, strategy.signMessage(payload)];
|
243
224
|
case 8:
|
244
|
-
result =
|
245
|
-
if (result instanceof Error) {
|
246
|
-
throw result;
|
247
|
-
}
|
225
|
+
result = _c.sent();
|
248
226
|
sendMessageToIframe({
|
249
227
|
type: 'SDKsignRequestCompleted',
|
250
228
|
payload: result
|
251
229
|
});
|
252
230
|
return [3 /*break*/, 10];
|
253
231
|
case 9:
|
254
|
-
error_2 =
|
232
|
+
error_2 = _c.sent();
|
255
233
|
handleErrorAndSendMessage(error_2, 'SDKsignRequestCompleted');
|
256
234
|
return [3 /*break*/, 10];
|
257
|
-
case 10: return [3 /*break*/,
|
235
|
+
case 10: return [3 /*break*/, 34];
|
258
236
|
case 11:
|
259
237
|
payload = event.data.payload;
|
260
|
-
|
238
|
+
_c.label = 12;
|
261
239
|
case 12:
|
262
|
-
|
263
|
-
|
240
|
+
_c.trys.push([12, 14, , 15]);
|
241
|
+
networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
|
242
|
+
strategy = walletFactory.getStrategy(networkType);
|
243
|
+
return [4 /*yield*/, strategy.switchChain(payload)];
|
264
244
|
case 13:
|
265
|
-
result =
|
266
|
-
if (result instanceof Error) {
|
267
|
-
throw result;
|
268
|
-
}
|
245
|
+
result = _c.sent();
|
269
246
|
sendMessageToIframe({
|
270
247
|
type: 'SDKswitchChainCompleted',
|
271
|
-
payload:
|
248
|
+
payload: {
|
249
|
+
chainId: result.chainId,
|
250
|
+
accounts: result.accounts,
|
251
|
+
networkType: networkType
|
252
|
+
}
|
272
253
|
});
|
273
254
|
return [3 /*break*/, 15];
|
274
255
|
case 14:
|
275
|
-
error_3 =
|
256
|
+
error_3 = _c.sent();
|
257
|
+
console.error('Chain switch failed:', error_3);
|
276
258
|
handleErrorAndSendMessage(error_3, 'SDKswitchChainCompleted');
|
277
259
|
return [3 /*break*/, 15];
|
278
|
-
case 15: return [3 /*break*/,
|
260
|
+
case 15: return [3 /*break*/, 34];
|
279
261
|
case 16:
|
280
262
|
payload = event.data.payload;
|
281
|
-
|
263
|
+
_c.label = 17;
|
282
264
|
case 17:
|
283
|
-
|
284
|
-
|
265
|
+
_c.trys.push([17, 19, , 20]);
|
266
|
+
networkType = (payload.network === 'solana' ? 'solana' : 'evm');
|
267
|
+
strategy = walletFactory.getStrategy(networkType);
|
268
|
+
return [4 /*yield*/, strategy.sendNativeTransfer(payload)];
|
285
269
|
case 18:
|
286
|
-
result =
|
287
|
-
if (result instanceof Error) {
|
288
|
-
throw result;
|
289
|
-
}
|
270
|
+
result = _c.sent();
|
290
271
|
sendMessageToIframe({
|
291
272
|
type: 'SDKnativeTransferCompleted',
|
292
273
|
payload: result
|
293
274
|
});
|
294
275
|
return [3 /*break*/, 20];
|
295
276
|
case 19:
|
296
|
-
error_4 =
|
277
|
+
error_4 = _c.sent();
|
297
278
|
handleErrorAndSendMessage(error_4, 'SDKnativeTransferCompleted');
|
298
279
|
return [3 /*break*/, 20];
|
299
|
-
case 20: return [3 /*break*/,
|
280
|
+
case 20: return [3 /*break*/, 34];
|
300
281
|
case 21:
|
301
282
|
payload = event.data.payload;
|
302
|
-
|
283
|
+
_c.label = 22;
|
303
284
|
case 22:
|
304
|
-
|
305
|
-
|
285
|
+
_c.trys.push([22, 24, , 25]);
|
286
|
+
strategy = walletFactory.getStrategy('evm');
|
287
|
+
return [4 /*yield*/, strategy.sendSmartContractInteraction(payload)];
|
306
288
|
case 23:
|
307
|
-
result =
|
308
|
-
|
309
|
-
|
310
|
-
|
289
|
+
result = _c.sent();
|
290
|
+
responseType = event.data.type === 'walletBrowserNonNativeTransferRequest'
|
291
|
+
? 'SDKnonNativeTransferCompleted'
|
292
|
+
: event.data.type === 'walletBrowserNativeSmartDeposit'
|
293
|
+
? 'SDKnativeSmartDepositCompleted'
|
294
|
+
: 'SDKnonNativeSmartDepositCompleted';
|
311
295
|
sendMessageToIframe({
|
312
|
-
type:
|
313
|
-
payload:
|
296
|
+
type: responseType,
|
297
|
+
payload: {
|
298
|
+
txHash: result
|
299
|
+
}
|
314
300
|
});
|
315
301
|
return [3 /*break*/, 25];
|
316
302
|
case 24:
|
317
|
-
error_5 =
|
318
|
-
|
303
|
+
error_5 = _c.sent();
|
304
|
+
errorType = event.data.type === 'walletBrowserNonNativeTransferRequest'
|
305
|
+
? 'SDKnonNativeTransferCompleted'
|
306
|
+
: event.data.type === 'walletBrowserNativeSmartDeposit'
|
307
|
+
? 'SDKnativeSmartDepositCompleted'
|
308
|
+
: 'SDKnonNativeSmartDepositCompleted';
|
309
|
+
handleErrorAndSendMessage(error_5, errorType);
|
319
310
|
return [3 /*break*/, 25];
|
320
|
-
case 25: return [3 /*break*/,
|
311
|
+
case 25: return [3 /*break*/, 34];
|
321
312
|
case 26:
|
322
313
|
payload = event.data.payload;
|
323
|
-
|
314
|
+
_c.label = 27;
|
324
315
|
case 27:
|
325
|
-
|
326
|
-
|
316
|
+
_c.trys.push([27, 32, , 33]);
|
317
|
+
if (!(payload === null || payload === void 0 ? void 0 : payload.networkType)) return [3 /*break*/, 29];
|
318
|
+
networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
|
319
|
+
strategy = walletFactory.getStrategy(networkType);
|
320
|
+
return [4 /*yield*/, strategy.disconnect(payload)];
|
327
321
|
case 28:
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
322
|
+
_c.sent();
|
323
|
+
return [3 /*break*/, 31];
|
324
|
+
case 29:
|
325
|
+
// Disconnect from all if no specific network type
|
326
|
+
return [4 /*yield*/, Promise.all([
|
327
|
+
walletFactory.getStrategy('solana').disconnect(payload),
|
328
|
+
walletFactory.getStrategy('evm').disconnect(payload)
|
329
|
+
])];
|
330
|
+
case 30:
|
331
|
+
// Disconnect from all if no specific network type
|
332
|
+
_c.sent();
|
333
|
+
_c.label = 31;
|
334
|
+
case 31:
|
332
335
|
sendMessageToIframe({
|
333
|
-
type: '
|
334
|
-
payload: {
|
335
|
-
txHash: result
|
336
|
-
}
|
336
|
+
type: 'SDKdisconnectSuccess'
|
337
337
|
});
|
338
|
-
return [3 /*break*/,
|
339
|
-
case 29:
|
340
|
-
error_6 = _b.sent();
|
341
|
-
handleErrorAndSendMessage(error_6, 'SDKnativeSmartDepositCompleted');
|
342
|
-
return [3 /*break*/, 30];
|
343
|
-
case 30: return [3 /*break*/, 37];
|
344
|
-
case 31:
|
345
|
-
payload = event.data.payload;
|
346
|
-
_b.label = 32;
|
338
|
+
return [3 /*break*/, 33];
|
347
339
|
case 32:
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
type: 'SDKnonNativeSmartDepositCompleted',
|
355
|
-
payload: {
|
356
|
-
txHash: result
|
357
|
-
}
|
358
|
-
});
|
359
|
-
}
|
360
|
-
else {
|
361
|
-
throw new Error('Transfer failed');
|
362
|
-
}
|
363
|
-
return [3 /*break*/, 35];
|
364
|
-
case 34:
|
365
|
-
error_7 = _b.sent();
|
366
|
-
handleErrorAndSendMessage(error_7, 'SDKnonNativeSmartDepositCompleted');
|
367
|
-
return [3 /*break*/, 35];
|
368
|
-
case 35: return [3 /*break*/, 37];
|
369
|
-
case 36:
|
370
|
-
{
|
371
|
-
disconnectAllAccounts();
|
372
|
-
sendMessageToIframe({
|
373
|
-
type: 'SDKdisconnectSuccess'
|
374
|
-
});
|
375
|
-
return [3 /*break*/, 37];
|
376
|
-
}
|
377
|
-
_b.label = 37;
|
378
|
-
case 37: return [2 /*return*/];
|
340
|
+
error_6 = _c.sent();
|
341
|
+
console.error('Error during disconnect:', error_6);
|
342
|
+
handleErrorAndSendMessage(error_6, 'SDKdisconnectSuccess');
|
343
|
+
return [3 /*break*/, 33];
|
344
|
+
case 33: return [3 /*break*/, 34];
|
345
|
+
case 34: return [2 /*return*/];
|
379
346
|
}
|
380
347
|
});
|
381
348
|
});
|
@@ -435,7 +402,6 @@ export var createLink = function (options) {
|
|
435
402
|
removePopup();
|
436
403
|
window.removeEventListener('message', eventsListener);
|
437
404
|
(_a = options.onExit) === null || _a === void 0 ? void 0 : _a.call(options);
|
438
|
-
disconnectAllAccounts();
|
439
405
|
};
|
440
406
|
return {
|
441
407
|
openLink: openLink,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@meshconnect/web-link-sdk",
|
3
|
-
"version": "3.0.
|
3
|
+
"version": "3.1.0-rc.1",
|
4
4
|
"description": "A client-side JS library for integrating with Mesh Connect",
|
5
5
|
"exports": "./index.js",
|
6
6
|
"license": "MIT",
|
@@ -23,9 +23,9 @@
|
|
23
23
|
},
|
24
24
|
"dependencies": {
|
25
25
|
"@meshconnect/node-api": "^2.0.15",
|
26
|
-
"@
|
27
|
-
"
|
28
|
-
"
|
26
|
+
"@solana/web3.js": "^1.91.1",
|
27
|
+
"bs58": "^5.0.0",
|
28
|
+
"ethers": "^6.11.1"
|
29
29
|
},
|
30
30
|
"jest": {
|
31
31
|
"preset": "ts-jest",
|
@@ -50,7 +50,7 @@
|
|
50
50
|
]
|
51
51
|
},
|
52
52
|
"transformIgnorePatterns": [
|
53
|
-
"/node_modules/(?!(@
|
53
|
+
"/node_modules/(?!(@solana/web3.js|uuid|jayson|superstruct|@noble|@meshconnect|ethers)/)"
|
54
54
|
],
|
55
55
|
"testEnvironmentOptions": {
|
56
56
|
"url": "http://localhost/"
|
@@ -0,0 +1,115 @@
|
|
1
|
+
// Chain configurations
|
2
|
+
var chainConfigs = {
|
3
|
+
43114: {
|
4
|
+
// Avalanche
|
5
|
+
name: 'Avalanche',
|
6
|
+
nativeCurrency: {
|
7
|
+
decimals: 18,
|
8
|
+
name: 'Avalanche',
|
9
|
+
symbol: 'AVAX'
|
10
|
+
},
|
11
|
+
rpcUrls: {
|
12
|
+
default: { http: ['https://avalanche-mainnet.infura.io'] }
|
13
|
+
},
|
14
|
+
blockExplorers: {
|
15
|
+
default: {
|
16
|
+
name: 'SnowTrace',
|
17
|
+
url: 'https://snowtrace.io'
|
18
|
+
}
|
19
|
+
}
|
20
|
+
},
|
21
|
+
42161: {
|
22
|
+
// Arbitrum
|
23
|
+
name: 'Arbitrum One',
|
24
|
+
nativeCurrency: {
|
25
|
+
decimals: 18,
|
26
|
+
name: 'Ether',
|
27
|
+
symbol: 'ETH'
|
28
|
+
},
|
29
|
+
rpcUrls: {
|
30
|
+
default: { http: ['https://arb1.arbitrum.io/rpc'] }
|
31
|
+
},
|
32
|
+
blockExplorers: {
|
33
|
+
default: {
|
34
|
+
name: 'Arbiscan',
|
35
|
+
url: 'https://arbiscan.io'
|
36
|
+
}
|
37
|
+
}
|
38
|
+
},
|
39
|
+
10: {
|
40
|
+
// Optimism
|
41
|
+
name: 'OP Mainnet',
|
42
|
+
nativeCurrency: {
|
43
|
+
decimals: 18,
|
44
|
+
name: 'Ether',
|
45
|
+
symbol: 'ETH'
|
46
|
+
},
|
47
|
+
rpcUrls: {
|
48
|
+
default: { http: ['https://mainnet.optimism.io'] }
|
49
|
+
},
|
50
|
+
blockExplorers: {
|
51
|
+
default: {
|
52
|
+
name: 'Optimism Explorer',
|
53
|
+
url: 'https://optimistic.etherscan.io'
|
54
|
+
}
|
55
|
+
}
|
56
|
+
},
|
57
|
+
8453: {
|
58
|
+
// Base
|
59
|
+
name: 'Base',
|
60
|
+
nativeCurrency: {
|
61
|
+
decimals: 18,
|
62
|
+
name: 'Ether',
|
63
|
+
symbol: 'ETH'
|
64
|
+
},
|
65
|
+
rpcUrls: {
|
66
|
+
default: { http: ['https://mainnet.base.org'] }
|
67
|
+
},
|
68
|
+
blockExplorers: {
|
69
|
+
default: {
|
70
|
+
name: 'Basescan',
|
71
|
+
url: 'https://basescan.org'
|
72
|
+
}
|
73
|
+
}
|
74
|
+
},
|
75
|
+
137: {
|
76
|
+
// Polygon
|
77
|
+
name: 'Polygon',
|
78
|
+
nativeCurrency: {
|
79
|
+
decimals: 18,
|
80
|
+
name: 'MATIC',
|
81
|
+
symbol: 'MATIC'
|
82
|
+
},
|
83
|
+
rpcUrls: {
|
84
|
+
default: { http: ['https://polygon-rpc.com'] }
|
85
|
+
},
|
86
|
+
blockExplorers: {
|
87
|
+
default: {
|
88
|
+
name: 'PolygonScan',
|
89
|
+
url: 'https://polygonscan.com'
|
90
|
+
}
|
91
|
+
}
|
92
|
+
},
|
93
|
+
56: {
|
94
|
+
// BSC
|
95
|
+
name: 'BNB Smart Chain',
|
96
|
+
nativeCurrency: {
|
97
|
+
decimals: 18,
|
98
|
+
name: 'BNB',
|
99
|
+
symbol: 'BNB'
|
100
|
+
},
|
101
|
+
rpcUrls: {
|
102
|
+
default: { http: ['https://rpc.ankr.com/bsc'] }
|
103
|
+
},
|
104
|
+
blockExplorers: {
|
105
|
+
default: {
|
106
|
+
name: 'BscScan',
|
107
|
+
url: 'https://bscscan.com'
|
108
|
+
}
|
109
|
+
}
|
110
|
+
}
|
111
|
+
};
|
112
|
+
// Helper function to get chain configuration
|
113
|
+
export var getChainConfiguration = function (chainId) {
|
114
|
+
return chainConfigs[chainId];
|
115
|
+
};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { EVMProvider } from './types';
|
2
|
+
/**
|
3
|
+
* Switches the current EVM chain
|
4
|
+
*/
|
5
|
+
export declare const switchEVMChain: (chainId: number, provider?: EVMProvider) => Promise<{
|
6
|
+
chainId: number;
|
7
|
+
accounts: string[];
|
8
|
+
} | Error>;
|
9
|
+
/**
|
10
|
+
* Gets the current chain switch status
|
11
|
+
*/
|
12
|
+
export declare const getChainSwitchStatus: () => {
|
13
|
+
isChainSwitching: boolean;
|
14
|
+
chainSwitchError: null;
|
15
|
+
};
|