@meshconnect/web-link-sdk 3.2.14 → 3.2.15
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/jest.setup.ts +4 -0
- package/package.json +20 -8
- package/src/Link.test.ts +434 -0
- package/src/Link.ts +491 -0
- package/src/index.ts +3 -0
- package/src/utils/__snapshots__/popup.test.ts.snap +89 -0
- package/src/utils/connectors/evm/chainConfigs.ts +120 -0
- package/src/utils/connectors/evm/chainSwitching.ts +165 -0
- package/src/utils/connectors/evm/index.ts +8 -0
- package/src/utils/connectors/evm/provider.ts +22 -0
- package/src/utils/connectors/evm/signing.ts +39 -0
- package/src/utils/connectors/evm/transactions.ts +356 -0
- package/src/utils/connectors/evm/types.ts +63 -0
- package/src/utils/connectors/evm/walletConnection.ts +140 -0
- package/src/utils/connectors/evm/walletDiscovery.ts +67 -0
- package/src/utils/connectors/solana/connection.ts +69 -0
- package/src/utils/connectors/solana/index.ts +5 -0
- package/src/utils/connectors/solana/providerDiscovery.ts +153 -0
- package/src/utils/connectors/solana/signing.ts +18 -0
- package/src/utils/connectors/solana/transaction.ts +382 -0
- package/src/utils/connectors/solana/types.ts +66 -0
- package/{utils/event-types.js → src/utils/event-types.test.ts} +15 -5
- package/src/utils/event-types.ts +350 -0
- package/src/utils/popup.test.ts +50 -0
- package/src/utils/popup.ts +123 -0
- package/src/utils/sdk-specs.test.ts +18 -0
- package/src/utils/sdk-specs.ts +7 -0
- package/src/utils/style.test.ts +33 -0
- package/src/utils/style.ts +15 -0
- package/src/utils/types.ts +270 -0
- package/src/utils/version.ts +1 -0
- package/src/utils/wallet/EVMWalletStrategy.ts +176 -0
- package/src/utils/wallet/SolanaWalletStrategy.ts +207 -0
- package/src/utils/wallet/WalletStrategy.ts +99 -0
- package/src/utils/wallet/WalletStrategyFactory.ts +46 -0
- package/src/utils/wallet/__tests__/EVMWalletStrategy.test.ts +233 -0
- package/src/utils/wallet/__tests__/SolanaWalletStrategy.test.ts +253 -0
- package/src/utils/wallet/__tests__/WalletStrategy.test.ts +77 -0
- package/src/utils/wallet/__tests__/WalletStrategyFactory.test.ts +65 -0
- package/src/utils/wallet/index.ts +4 -0
- package/src/utils/wallet-browser-event-types.ts +190 -0
- package/tools/copy.js +26 -0
- package/tools/update-version.js +10 -0
- package/tsconfig.json +14 -0
- package/Link.d.ts +0 -2
- package/Link.js +0 -530
- package/index.d.ts +0 -3
- package/index.js +0 -3
- package/utils/connectors/evm/chainConfigs.d.ts +0 -2
- package/utils/connectors/evm/chainConfigs.js +0 -115
- package/utils/connectors/evm/chainSwitching.d.ts +0 -15
- package/utils/connectors/evm/chainSwitching.js +0 -242
- package/utils/connectors/evm/index.d.ts +0 -8
- package/utils/connectors/evm/index.js +0 -8
- package/utils/connectors/evm/provider.d.ts +0 -6
- package/utils/connectors/evm/provider.js +0 -13
- package/utils/connectors/evm/signing.d.ts +0 -1
- package/utils/connectors/evm/signing.js +0 -78
- package/utils/connectors/evm/transactions.d.ts +0 -28
- package/utils/connectors/evm/transactions.js +0 -381
- package/utils/connectors/evm/types.d.ts +0 -57
- package/utils/connectors/evm/types.js +0 -1
- package/utils/connectors/evm/walletConnection.d.ts +0 -20
- package/utils/connectors/evm/walletConnection.js +0 -160
- package/utils/connectors/evm/walletDiscovery.d.ts +0 -10
- package/utils/connectors/evm/walletDiscovery.js +0 -55
- package/utils/connectors/solana/connection.d.ts +0 -4
- package/utils/connectors/solana/connection.js +0 -108
- package/utils/connectors/solana/index.d.ts +0 -5
- package/utils/connectors/solana/index.js +0 -5
- package/utils/connectors/solana/providerDiscovery.d.ts +0 -3
- package/utils/connectors/solana/providerDiscovery.js +0 -127
- package/utils/connectors/solana/signing.d.ts +0 -1
- package/utils/connectors/solana/signing.js +0 -59
- package/utils/connectors/solana/transaction.d.ts +0 -17
- package/utils/connectors/solana/transaction.js +0 -362
- package/utils/connectors/solana/types.d.ts +0 -71
- package/utils/connectors/solana/types.js +0 -8
- package/utils/event-types.d.ts +0 -233
- package/utils/popup.d.ts +0 -3
- package/utils/popup.js +0 -36
- package/utils/sdk-specs.d.ts +0 -5
- package/utils/sdk-specs.js +0 -6
- package/utils/style.d.ts +0 -3
- package/utils/style.js +0 -13
- package/utils/types.d.ts +0 -234
- package/utils/types.js +0 -1
- package/utils/version.d.ts +0 -1
- package/utils/version.js +0 -1
- package/utils/wallet/EVMWalletStrategy.d.ts +0 -31
- package/utils/wallet/EVMWalletStrategy.js +0 -265
- package/utils/wallet/SolanaWalletStrategy.d.ts +0 -33
- package/utils/wallet/SolanaWalletStrategy.js +0 -293
- package/utils/wallet/WalletStrategy.d.ts +0 -61
- package/utils/wallet/WalletStrategy.js +0 -25
- package/utils/wallet/WalletStrategyFactory.d.ts +0 -15
- package/utils/wallet/WalletStrategyFactory.js +0 -31
- package/utils/wallet/index.d.ts +0 -4
- package/utils/wallet/index.js +0 -4
- package/utils/wallet-browser-event-types.d.ts +0 -116
- package/utils/wallet-browser-event-types.js +0 -17
@@ -1,293 +0,0 @@
|
|
1
|
-
var __extends = (this && this.__extends) || (function () {
|
2
|
-
var extendStatics = function (d, b) {
|
3
|
-
extendStatics = Object.setPrototypeOf ||
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
5
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
6
|
-
return extendStatics(d, b);
|
7
|
-
};
|
8
|
-
return function (d, b) {
|
9
|
-
if (typeof b !== "function" && b !== null)
|
10
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
11
|
-
extendStatics(d, b);
|
12
|
-
function __() { this.constructor = d; }
|
13
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
14
|
-
};
|
15
|
-
})();
|
16
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
17
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
18
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
19
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
20
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
21
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
22
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
23
|
-
});
|
24
|
-
};
|
25
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
26
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
27
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
28
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
29
|
-
function step(op) {
|
30
|
-
if (f) throw new TypeError("Generator is already executing.");
|
31
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
32
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
33
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
34
|
-
switch (op[0]) {
|
35
|
-
case 0: case 1: t = op; break;
|
36
|
-
case 4: _.label++; return { value: op[1], done: false };
|
37
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
38
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
39
|
-
default:
|
40
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
41
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
42
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
43
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
44
|
-
if (t[2]) _.ops.pop();
|
45
|
-
_.trys.pop(); continue;
|
46
|
-
}
|
47
|
-
op = body.call(thisArg, _);
|
48
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
49
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
50
|
-
}
|
51
|
-
};
|
52
|
-
import { BaseWalletStrategy } from './WalletStrategy';
|
53
|
-
import { connectToSolanaWallet, disconnectFromSolanaWallet, signSolanaMessage, sendSOLTransaction, findAvailableSolanaProviders, getSolanaProvider, sendSOLTransactionWithInstructions } from '../connectors/solana';
|
54
|
-
var SolanaWalletStrategy = /** @class */ (function (_super) {
|
55
|
-
__extends(SolanaWalletStrategy, _super);
|
56
|
-
function SolanaWalletStrategy() {
|
57
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
58
|
-
}
|
59
|
-
SolanaWalletStrategy.prototype.connect = function (payload) {
|
60
|
-
return __awaiter(this, void 0, void 0, function () {
|
61
|
-
var result, error_1;
|
62
|
-
return __generator(this, function (_a) {
|
63
|
-
switch (_a.label) {
|
64
|
-
case 0:
|
65
|
-
_a.trys.push([0, 2, , 3]);
|
66
|
-
return [4 /*yield*/, connectToSolanaWallet(payload)];
|
67
|
-
case 1:
|
68
|
-
result = _a.sent();
|
69
|
-
if (result instanceof Error) {
|
70
|
-
throw result;
|
71
|
-
}
|
72
|
-
return [2 /*return*/, {
|
73
|
-
accounts: result.accounts,
|
74
|
-
chainId: result.chainId,
|
75
|
-
isConnected: result.isConnected
|
76
|
-
}];
|
77
|
-
case 2:
|
78
|
-
error_1 = _a.sent();
|
79
|
-
throw this.handleError(error_1, 'connect to Solana wallet');
|
80
|
-
case 3: return [2 /*return*/];
|
81
|
-
}
|
82
|
-
});
|
83
|
-
});
|
84
|
-
};
|
85
|
-
SolanaWalletStrategy.prototype.disconnect = function (payload) {
|
86
|
-
return __awaiter(this, void 0, void 0, function () {
|
87
|
-
var result, error_2;
|
88
|
-
return __generator(this, function (_a) {
|
89
|
-
switch (_a.label) {
|
90
|
-
case 0:
|
91
|
-
_a.trys.push([0, 2, , 3]);
|
92
|
-
return [4 /*yield*/, disconnectFromSolanaWallet(payload.walletName || 'Unknown Wallet')];
|
93
|
-
case 1:
|
94
|
-
result = _a.sent();
|
95
|
-
if (result instanceof Error) {
|
96
|
-
throw result;
|
97
|
-
}
|
98
|
-
return [3 /*break*/, 3];
|
99
|
-
case 2:
|
100
|
-
error_2 = _a.sent();
|
101
|
-
throw this.handleError(error_2, 'disconnect from Solana wallet');
|
102
|
-
case 3: return [2 /*return*/];
|
103
|
-
}
|
104
|
-
});
|
105
|
-
});
|
106
|
-
};
|
107
|
-
SolanaWalletStrategy.prototype.signMessage = function (payload) {
|
108
|
-
return __awaiter(this, void 0, void 0, function () {
|
109
|
-
var result, error_3;
|
110
|
-
return __generator(this, function (_a) {
|
111
|
-
switch (_a.label) {
|
112
|
-
case 0:
|
113
|
-
_a.trys.push([0, 2, , 3]);
|
114
|
-
return [4 /*yield*/, signSolanaMessage(payload.walletName || 'Unknown Wallet', payload.message)];
|
115
|
-
case 1:
|
116
|
-
result = _a.sent();
|
117
|
-
if (result instanceof Error) {
|
118
|
-
throw result;
|
119
|
-
}
|
120
|
-
return [2 /*return*/, result];
|
121
|
-
case 2:
|
122
|
-
error_3 = _a.sent();
|
123
|
-
throw this.handleError(error_3, 'sign Solana message');
|
124
|
-
case 3: return [2 /*return*/];
|
125
|
-
}
|
126
|
-
});
|
127
|
-
});
|
128
|
-
};
|
129
|
-
/**
|
130
|
-
* @note Solana doesn't support chain switching as it's a single-chain network
|
131
|
-
* This method is implemented to satisfy the interface but will always return mainnet (101)
|
132
|
-
*/
|
133
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
134
|
-
SolanaWalletStrategy.prototype.switchChain = function (_payload) {
|
135
|
-
return __awaiter(this, void 0, void 0, function () {
|
136
|
-
return __generator(this, function (_a) {
|
137
|
-
return [2 /*return*/, {
|
138
|
-
chainId: '101',
|
139
|
-
accounts: []
|
140
|
-
}];
|
141
|
-
});
|
142
|
-
});
|
143
|
-
};
|
144
|
-
SolanaWalletStrategy.prototype.sendNativeTransfer = function (payload) {
|
145
|
-
return __awaiter(this, void 0, void 0, function () {
|
146
|
-
var result, error_4;
|
147
|
-
return __generator(this, function (_a) {
|
148
|
-
switch (_a.label) {
|
149
|
-
case 0:
|
150
|
-
_a.trys.push([0, 2, , 3]);
|
151
|
-
return [4 /*yield*/, sendSOLTransaction({
|
152
|
-
toAddress: payload.toAddress,
|
153
|
-
amount: BigInt(payload.amount * Math.pow(10, payload.decimalPlaces)),
|
154
|
-
fromAddress: payload.account,
|
155
|
-
blockhash: payload.blockhash || '',
|
156
|
-
walletName: payload.walletName || ''
|
157
|
-
})];
|
158
|
-
case 1:
|
159
|
-
result = _a.sent();
|
160
|
-
if (typeof result === 'string') {
|
161
|
-
return [2 /*return*/, result];
|
162
|
-
}
|
163
|
-
throw result;
|
164
|
-
case 2:
|
165
|
-
error_4 = _a.sent();
|
166
|
-
throw this.handleError(error_4, 'send Solana native transfer');
|
167
|
-
case 3: return [2 /*return*/];
|
168
|
-
}
|
169
|
-
});
|
170
|
-
});
|
171
|
-
};
|
172
|
-
SolanaWalletStrategy.prototype.sendSmartContractInteraction = function (payload) {
|
173
|
-
return __awaiter(this, void 0, void 0, function () {
|
174
|
-
var provider, senderAddress, _a, decimals, rawAmount, scaledAmount;
|
175
|
-
var _b;
|
176
|
-
return __generator(this, function (_c) {
|
177
|
-
switch (_c.label) {
|
178
|
-
case 0:
|
179
|
-
provider = getSolanaProvider(payload.walletName || '');
|
180
|
-
_a = payload.account;
|
181
|
-
if (_a) return [3 /*break*/, 2];
|
182
|
-
return [4 /*yield*/, ((_b = provider.publicKey) === null || _b === void 0 ? void 0 : _b.toString())];
|
183
|
-
case 1:
|
184
|
-
_a = (_c.sent());
|
185
|
-
_c.label = 2;
|
186
|
-
case 2:
|
187
|
-
senderAddress = _a;
|
188
|
-
if (!senderAddress) {
|
189
|
-
throw new Error('Sender account address is required');
|
190
|
-
}
|
191
|
-
decimals = payload.args[2] || 9;
|
192
|
-
rawAmount = payload.args[1];
|
193
|
-
scaledAmount = rawAmount;
|
194
|
-
if (!payload.blockhash) {
|
195
|
-
throw new Error('Blockhash is required for Solana transactions');
|
196
|
-
}
|
197
|
-
return [4 /*yield*/, sendSOLTransaction({
|
198
|
-
toAddress: payload.args[0],
|
199
|
-
amount: scaledAmount,
|
200
|
-
fromAddress: senderAddress,
|
201
|
-
blockhash: payload.blockhash,
|
202
|
-
walletName: payload.walletName || '',
|
203
|
-
tokenMint: payload.address,
|
204
|
-
createATA: payload.createATA || false,
|
205
|
-
tokenProgram: payload.tokenProgram,
|
206
|
-
tokenDecimals: decimals
|
207
|
-
})];
|
208
|
-
case 3: return [2 /*return*/, _c.sent()];
|
209
|
-
}
|
210
|
-
});
|
211
|
-
});
|
212
|
-
};
|
213
|
-
SolanaWalletStrategy.prototype.sendTransactionWithInstructions = function (payload) {
|
214
|
-
return __awaiter(this, void 0, void 0, function () {
|
215
|
-
var provider, senderAddress, _a, decimals, rawAmount, scaledAmount, result, error_5;
|
216
|
-
var _b;
|
217
|
-
return __generator(this, function (_c) {
|
218
|
-
switch (_c.label) {
|
219
|
-
case 0:
|
220
|
-
provider = getSolanaProvider(payload.transactionInstructions.walletName || '');
|
221
|
-
_a = payload.transferConfig.account;
|
222
|
-
if (_a) return [3 /*break*/, 2];
|
223
|
-
return [4 /*yield*/, ((_b = provider.publicKey) === null || _b === void 0 ? void 0 : _b.toString())];
|
224
|
-
case 1:
|
225
|
-
_a = (_c.sent());
|
226
|
-
_c.label = 2;
|
227
|
-
case 2:
|
228
|
-
senderAddress = _a;
|
229
|
-
if (!senderAddress) {
|
230
|
-
throw new Error('Sender account address is required');
|
231
|
-
}
|
232
|
-
decimals = payload.transferConfig.args[2] || 6 // USDC has 6 decimals
|
233
|
-
;
|
234
|
-
rawAmount = payload.transferConfig.args[1];
|
235
|
-
scaledAmount = rawAmount;
|
236
|
-
if (!payload.transactionInstructions.blockhash) {
|
237
|
-
throw new Error('Blockhash is required for Solana transactions');
|
238
|
-
}
|
239
|
-
_c.label = 3;
|
240
|
-
case 3:
|
241
|
-
_c.trys.push([3, 5, , 6]);
|
242
|
-
return [4 /*yield*/, sendSOLTransactionWithInstructions(payload, {
|
243
|
-
toAddress: payload.transferConfig.args[0],
|
244
|
-
amount: scaledAmount,
|
245
|
-
fromAddress: senderAddress,
|
246
|
-
blockhash: payload.transactionInstructions.blockhash,
|
247
|
-
walletName: payload.transactionInstructions.walletName || '',
|
248
|
-
tokenMint: payload.transferConfig.address,
|
249
|
-
createATA: payload.transferConfig.createATA || false,
|
250
|
-
tokenProgram: payload.transferConfig.tokenProgram,
|
251
|
-
tokenDecimals: decimals
|
252
|
-
})];
|
253
|
-
case 4:
|
254
|
-
result = _c.sent();
|
255
|
-
if (typeof result === 'string') {
|
256
|
-
return [2 /*return*/, result];
|
257
|
-
}
|
258
|
-
throw result;
|
259
|
-
case 5:
|
260
|
-
error_5 = _c.sent();
|
261
|
-
throw this.handleError(error_5, 'send Solana native transfer');
|
262
|
-
case 6: return [2 /*return*/];
|
263
|
-
}
|
264
|
-
});
|
265
|
-
});
|
266
|
-
};
|
267
|
-
SolanaWalletStrategy.prototype.sendNativeSmartContractInteraction = function () {
|
268
|
-
throw new Error('Method not implemented.');
|
269
|
-
};
|
270
|
-
SolanaWalletStrategy.prototype.sendTransactionBatch = function () {
|
271
|
-
throw new Error('Method not implemented.');
|
272
|
-
};
|
273
|
-
SolanaWalletStrategy.prototype.getWalletCapabilities = function () {
|
274
|
-
return __awaiter(this, void 0, void 0, function () {
|
275
|
-
return __generator(this, function (_a) {
|
276
|
-
return [2 /*return*/, {
|
277
|
-
atomic: {
|
278
|
-
status: 'ready'
|
279
|
-
}
|
280
|
-
}];
|
281
|
-
});
|
282
|
-
});
|
283
|
-
};
|
284
|
-
SolanaWalletStrategy.prototype.getProviders = function () {
|
285
|
-
var solanaProviderMap = findAvailableSolanaProviders();
|
286
|
-
return Object.keys(solanaProviderMap).map(function (id) { return ({
|
287
|
-
id: id,
|
288
|
-
type: 'solana'
|
289
|
-
}); });
|
290
|
-
};
|
291
|
-
return SolanaWalletStrategy;
|
292
|
-
}(BaseWalletStrategy));
|
293
|
-
export { SolanaWalletStrategy };
|
@@ -1,61 +0,0 @@
|
|
1
|
-
import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, TransactionBatchPayload, WalletCapabilitiesPayload, SolanaTransferWithInstructionsPayload } from '../types';
|
2
|
-
export interface WalletStrategy {
|
3
|
-
connect(payload: WalletBrowserPayload): Promise<{
|
4
|
-
accounts: string[];
|
5
|
-
chainId: string | number;
|
6
|
-
isConnected: boolean;
|
7
|
-
}>;
|
8
|
-
disconnect(payload: DisconnectPayload): Promise<void>;
|
9
|
-
signMessage(payload: SignRequestPayload): Promise<string>;
|
10
|
-
switchChain(payload: ChainSwitchPayload): Promise<{
|
11
|
-
chainId: number | string;
|
12
|
-
accounts: string[];
|
13
|
-
}>;
|
14
|
-
sendNativeTransfer(payload: TransferPayload): Promise<string>;
|
15
|
-
sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
16
|
-
sendNativeSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
17
|
-
sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
|
18
|
-
getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
|
19
|
-
atomic: {
|
20
|
-
status: string;
|
21
|
-
};
|
22
|
-
}>;
|
23
|
-
sendTransactionWithInstructions(payload: SolanaTransferWithInstructionsPayload): Promise<string>;
|
24
|
-
getProviders(): {
|
25
|
-
id: string;
|
26
|
-
type: string;
|
27
|
-
name?: string;
|
28
|
-
icon?: string;
|
29
|
-
}[];
|
30
|
-
}
|
31
|
-
export declare abstract class BaseWalletStrategy implements WalletStrategy {
|
32
|
-
abstract connect(payload: WalletBrowserPayload): Promise<{
|
33
|
-
accounts: string[];
|
34
|
-
chainId: string | number;
|
35
|
-
isConnected: boolean;
|
36
|
-
}>;
|
37
|
-
abstract disconnect(payload: DisconnectPayload): Promise<void>;
|
38
|
-
abstract signMessage(payload: SignRequestPayload): Promise<string>;
|
39
|
-
abstract switchChain(payload: ChainSwitchPayload): Promise<{
|
40
|
-
chainId: number | string;
|
41
|
-
accounts: string[];
|
42
|
-
}>;
|
43
|
-
abstract sendNativeTransfer(payload: TransferPayload): Promise<string>;
|
44
|
-
abstract sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
45
|
-
abstract sendNativeSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
46
|
-
abstract sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
|
47
|
-
abstract getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
|
48
|
-
atomic: {
|
49
|
-
status: string;
|
50
|
-
};
|
51
|
-
}>;
|
52
|
-
abstract getProviders(): {
|
53
|
-
id: string;
|
54
|
-
type: string;
|
55
|
-
name?: string;
|
56
|
-
icon?: string;
|
57
|
-
}[];
|
58
|
-
abstract sendTransactionWithInstructions(payload: SolanaTransferWithInstructionsPayload): Promise<string>;
|
59
|
-
protected handleError(error: unknown, operation: string): Error;
|
60
|
-
protected isUserRejection(error: any): boolean;
|
61
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
var BaseWalletStrategy = /** @class */ (function () {
|
2
|
-
function BaseWalletStrategy() {
|
3
|
-
}
|
4
|
-
BaseWalletStrategy.prototype.handleError = function (error, operation) {
|
5
|
-
console.error("".concat(operation, " error:"), error);
|
6
|
-
if (error instanceof Error) {
|
7
|
-
return error;
|
8
|
-
}
|
9
|
-
return new Error("Failed to ".concat(operation));
|
10
|
-
};
|
11
|
-
BaseWalletStrategy.prototype.isUserRejection = function (error) {
|
12
|
-
var _a;
|
13
|
-
if (!error)
|
14
|
-
return false;
|
15
|
-
var message = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '';
|
16
|
-
//4001 - user reject, -32603 internal error
|
17
|
-
var errorCodes = [4001, -32603];
|
18
|
-
return (message.includes('user rejected') ||
|
19
|
-
message.includes('declined') ||
|
20
|
-
message.includes('cancelled') ||
|
21
|
-
errorCodes.includes(error.code));
|
22
|
-
};
|
23
|
-
return BaseWalletStrategy;
|
24
|
-
}());
|
25
|
-
export { BaseWalletStrategy };
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import { WalletStrategy } from './WalletStrategy';
|
2
|
-
export type NetworkType = 'evm' | 'solana';
|
3
|
-
export declare class WalletStrategyFactory {
|
4
|
-
private static instance;
|
5
|
-
private strategies;
|
6
|
-
private constructor();
|
7
|
-
static getInstance(): WalletStrategyFactory;
|
8
|
-
getStrategy(networkType: NetworkType): WalletStrategy;
|
9
|
-
getAllProviders(): {
|
10
|
-
id: string;
|
11
|
-
type: string;
|
12
|
-
name?: string;
|
13
|
-
icon?: string;
|
14
|
-
}[];
|
15
|
-
}
|
@@ -1,31 +0,0 @@
|
|
1
|
-
import { EVMWalletStrategy } from './EVMWalletStrategy';
|
2
|
-
import { SolanaWalletStrategy } from './SolanaWalletStrategy';
|
3
|
-
var WalletStrategyFactory = /** @class */ (function () {
|
4
|
-
function WalletStrategyFactory() {
|
5
|
-
this.strategies = new Map();
|
6
|
-
this.strategies.set('evm', new EVMWalletStrategy());
|
7
|
-
this.strategies.set('solana', new SolanaWalletStrategy());
|
8
|
-
}
|
9
|
-
WalletStrategyFactory.getInstance = function () {
|
10
|
-
if (!WalletStrategyFactory.instance) {
|
11
|
-
WalletStrategyFactory.instance = new WalletStrategyFactory();
|
12
|
-
}
|
13
|
-
return WalletStrategyFactory.instance;
|
14
|
-
};
|
15
|
-
WalletStrategyFactory.prototype.getStrategy = function (networkType) {
|
16
|
-
var strategy = this.strategies.get(networkType);
|
17
|
-
if (!strategy) {
|
18
|
-
throw new Error("No strategy found for network type: ".concat(networkType));
|
19
|
-
}
|
20
|
-
return strategy;
|
21
|
-
};
|
22
|
-
WalletStrategyFactory.prototype.getAllProviders = function () {
|
23
|
-
var allProviders = [];
|
24
|
-
this.strategies.forEach(function (strategy) {
|
25
|
-
allProviders.push.apply(allProviders, strategy.getProviders());
|
26
|
-
});
|
27
|
-
return allProviders;
|
28
|
-
};
|
29
|
-
return WalletStrategyFactory;
|
30
|
-
}());
|
31
|
-
export { WalletStrategyFactory };
|
package/utils/wallet/index.d.ts
DELETED
package/utils/wallet/index.js
DELETED
@@ -1,116 +0,0 @@
|
|
1
|
-
import { AddressLookupTableStateDto, TransactionInstructionDto } from './types';
|
2
|
-
export type WalletBrowserEventType = WalletBrowserInjectedWalletSelected | WalletBrowserSignRequest | WalletBrowserChainSwitchRequest | WalletBrowserTransferBalanceRequest | WalletBrowserNativeTransferRequest | WalletBrowserNonNativeTransferRequest | WalletBrowserNativeSmartDeposit | WalletBrowserNonNativeSmartDeposit | WalletBrowserDisconnect | WalletBrowserTransactionBatch | WalletBrowserWalletCapabilities | WalletBrowserSolanaTransferWithInstructionsRequest;
|
3
|
-
declare const WALLET_BROWSER_EVENT_TYPE_KEYS: readonly ["walletBrowserInjectedWalletSelected", "walletBrowserSignRequest", "walletBrowserChainSwitchRequest", "walletBrowserTransferBalanceRequest", "walletBrowserNativeTransferRequest", "walletBrowserNonNativeTransferRequest", "walletBrowserNativeSmartDeposit", "walletBrowserNonNativeSmartDeposit", "walletBrowserDisconnect", "walletBrowserTransactionBatchRequest", "walletBrowserWalletCapabilities", "walletBrowserSolanaTransferWithInstructionsRequest"];
|
4
|
-
export type NetworkType = 'unknown' | 'evm' | 'solana' | 'bitcoin' | 'cardano' | 'tron' | 'avalancheX' | 'tezos' | 'dogecoin' | 'ripple' | 'stellar' | 'litecoin' | 'sui' | 'aptos' | 'tvm';
|
5
|
-
export type WalletBrowserEventTypeKeys = (typeof WALLET_BROWSER_EVENT_TYPE_KEYS)[number];
|
6
|
-
export declare function isWalletBrowserEventTypeKey(key: string): key is WalletBrowserEventTypeKeys;
|
7
|
-
interface WalletBrowserEventBase {
|
8
|
-
type: WalletBrowserEventTypeKeys;
|
9
|
-
}
|
10
|
-
export interface WalletBrowserInjectedWalletSelected extends WalletBrowserEventBase {
|
11
|
-
type: 'walletBrowserInjectedWalletSelected';
|
12
|
-
payload: {
|
13
|
-
integrationName: string;
|
14
|
-
networkType?: string;
|
15
|
-
targetChainId?: number;
|
16
|
-
};
|
17
|
-
}
|
18
|
-
export interface WalletBrowserSignRequest extends WalletBrowserEventBase {
|
19
|
-
type: 'walletBrowserSignRequest';
|
20
|
-
payload: {
|
21
|
-
address: `0x${string}`;
|
22
|
-
message: string;
|
23
|
-
walletName?: string;
|
24
|
-
networkType?: NetworkType;
|
25
|
-
};
|
26
|
-
}
|
27
|
-
export interface WalletBrowserChainSwitchRequest extends WalletBrowserEventBase {
|
28
|
-
type: 'walletBrowserChainSwitchRequest';
|
29
|
-
payload: {
|
30
|
-
chainId: number;
|
31
|
-
networkType: NetworkType;
|
32
|
-
};
|
33
|
-
}
|
34
|
-
export interface WalletBrowserTransferBalanceRequest extends WalletBrowserEventBase {
|
35
|
-
type: 'walletBrowserTransferBalanceRequest';
|
36
|
-
payload: {
|
37
|
-
account: string;
|
38
|
-
chainId: number;
|
39
|
-
};
|
40
|
-
}
|
41
|
-
export interface WalletBrowserNativeTransferRequest extends WalletBrowserEventBase {
|
42
|
-
type: 'walletBrowserNativeTransferRequest';
|
43
|
-
payload: {
|
44
|
-
toAddress: string;
|
45
|
-
amount: number;
|
46
|
-
decimalPlaces: number;
|
47
|
-
chainId: number;
|
48
|
-
account: string;
|
49
|
-
network: string;
|
50
|
-
blockhash?: string;
|
51
|
-
walletName?: string;
|
52
|
-
};
|
53
|
-
}
|
54
|
-
interface SmartContractPayload {
|
55
|
-
address: string;
|
56
|
-
abi: string;
|
57
|
-
functionName: string;
|
58
|
-
args: unknown[];
|
59
|
-
account: string;
|
60
|
-
value?: string;
|
61
|
-
}
|
62
|
-
export interface WalletBrowserNonNativeTransferRequest extends WalletBrowserEventBase {
|
63
|
-
type: 'walletBrowserNonNativeTransferRequest';
|
64
|
-
payload: SmartContractPayload;
|
65
|
-
}
|
66
|
-
export interface WalletBrowserNativeSmartDeposit extends WalletBrowserEventBase {
|
67
|
-
type: 'walletBrowserNativeSmartDeposit';
|
68
|
-
payload: SmartContractPayload;
|
69
|
-
}
|
70
|
-
export interface WalletBrowserNonNativeSmartDeposit extends WalletBrowserEventBase {
|
71
|
-
type: 'walletBrowserNonNativeSmartDeposit';
|
72
|
-
payload: SmartContractPayload;
|
73
|
-
}
|
74
|
-
export interface WalletBrowserDisconnect extends WalletBrowserEventBase {
|
75
|
-
type: 'walletBrowserDisconnect';
|
76
|
-
payload?: {
|
77
|
-
networkType?: NetworkType;
|
78
|
-
walletName?: string;
|
79
|
-
};
|
80
|
-
}
|
81
|
-
export interface WalletBrowserTransactionBatch extends WalletBrowserEventBase {
|
82
|
-
type: 'walletBrowserTransactionBatchRequest';
|
83
|
-
payload: {
|
84
|
-
version: string;
|
85
|
-
from: string;
|
86
|
-
chainId: string;
|
87
|
-
atomicRequired: boolean;
|
88
|
-
calls: {
|
89
|
-
to: string;
|
90
|
-
value: string;
|
91
|
-
data?: string;
|
92
|
-
}[];
|
93
|
-
};
|
94
|
-
}
|
95
|
-
export interface WalletBrowserWalletCapabilities extends WalletBrowserEventBase {
|
96
|
-
type: 'walletBrowserWalletCapabilities';
|
97
|
-
payload: {
|
98
|
-
from: string;
|
99
|
-
chainId: string;
|
100
|
-
};
|
101
|
-
}
|
102
|
-
export interface WalletBrowserSolanaTransferWithInstructionsRequest extends WalletBrowserEventBase {
|
103
|
-
type: 'walletBrowserSolanaTransferWithInstructionsRequest';
|
104
|
-
payload: {
|
105
|
-
transactionInstructions: {
|
106
|
-
instructions: TransactionInstructionDto[];
|
107
|
-
states: AddressLookupTableStateDto[];
|
108
|
-
account: string;
|
109
|
-
blockhash: string;
|
110
|
-
walletName?: string;
|
111
|
-
network?: string;
|
112
|
-
};
|
113
|
-
transferConfig: SmartContractPayload;
|
114
|
-
};
|
115
|
-
}
|
116
|
-
export {};
|
@@ -1,17 +0,0 @@
|
|
1
|
-
var WALLET_BROWSER_EVENT_TYPE_KEYS = [
|
2
|
-
'walletBrowserInjectedWalletSelected',
|
3
|
-
'walletBrowserSignRequest',
|
4
|
-
'walletBrowserChainSwitchRequest',
|
5
|
-
'walletBrowserTransferBalanceRequest',
|
6
|
-
'walletBrowserNativeTransferRequest',
|
7
|
-
'walletBrowserNonNativeTransferRequest',
|
8
|
-
'walletBrowserNativeSmartDeposit',
|
9
|
-
'walletBrowserNonNativeSmartDeposit',
|
10
|
-
'walletBrowserDisconnect',
|
11
|
-
'walletBrowserTransactionBatchRequest',
|
12
|
-
'walletBrowserWalletCapabilities',
|
13
|
-
'walletBrowserSolanaTransferWithInstructionsRequest'
|
14
|
-
];
|
15
|
-
export function isWalletBrowserEventTypeKey(key) {
|
16
|
-
return WALLET_BROWSER_EVENT_TYPE_KEYS.includes(key);
|
17
|
-
}
|