@meshconnect/web-link-sdk 3.3.2 → 3.3.4
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 +5 -317
- package/package.json +3 -7
- package/utils/types.d.ts +0 -93
- package/utils/version.d.ts +1 -1
- package/utils/version.js +1 -1
- 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/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 -300
- 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,362 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
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);
|
|
12
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
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;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
import { PublicKey, SystemProgram, TransactionMessage, VersionedTransaction, TransactionInstruction } from '@meshconnect/solana-web3.js';
|
|
38
|
-
import { getSolanaProvider } from './providerDiscovery';
|
|
39
|
-
var TOKEN_PROGRAM_ID = new PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA');
|
|
40
|
-
var TOKEN_2022_PROGRAM_ID = new PublicKey('TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb');
|
|
41
|
-
var ASSOCIATED_TOKEN_PROGRAM_ID = new PublicKey('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL');
|
|
42
|
-
var isUserRejection = function (error) {
|
|
43
|
-
if (!error || typeof error !== 'object')
|
|
44
|
-
return false;
|
|
45
|
-
var err = error;
|
|
46
|
-
var message = (err.message || '').toLowerCase();
|
|
47
|
-
return (message.includes('user rejected') ||
|
|
48
|
-
message.includes('declined') ||
|
|
49
|
-
message.includes('cancelled') ||
|
|
50
|
-
message.includes('denied') ||
|
|
51
|
-
err.code === 4001);
|
|
52
|
-
};
|
|
53
|
-
export function getAssociatedTokenAddress(mint_1, owner_1) {
|
|
54
|
-
return __awaiter(this, arguments, void 0, function (mint, owner, programId) {
|
|
55
|
-
var address;
|
|
56
|
-
if (programId === void 0) { programId = TOKEN_PROGRAM_ID.toBase58(); }
|
|
57
|
-
return __generator(this, function (_a) {
|
|
58
|
-
switch (_a.label) {
|
|
59
|
-
case 0: return [4 /*yield*/, PublicKey.findProgramAddress([owner.toBuffer(), new PublicKey(programId).toBuffer(), mint.toBuffer()], ASSOCIATED_TOKEN_PROGRAM_ID)];
|
|
60
|
-
case 1:
|
|
61
|
-
address = (_a.sent())[0];
|
|
62
|
-
return [2 /*return*/, address];
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
function createTokenAccountInstruction(payer, associatedToken, owner, mint, programId) {
|
|
68
|
-
if (programId === void 0) { programId = TOKEN_PROGRAM_ID; }
|
|
69
|
-
var keys = [
|
|
70
|
-
{ pubkey: payer, isSigner: true, isWritable: true },
|
|
71
|
-
{ pubkey: associatedToken, isSigner: false, isWritable: true },
|
|
72
|
-
{ pubkey: owner, isSigner: false, isWritable: false },
|
|
73
|
-
{ pubkey: mint, isSigner: false, isWritable: false },
|
|
74
|
-
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
75
|
-
{ pubkey: programId, isSigner: false, isWritable: false }
|
|
76
|
-
];
|
|
77
|
-
return new TransactionInstruction({
|
|
78
|
-
keys: keys,
|
|
79
|
-
programId: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
80
|
-
data: Buffer.alloc(0)
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
export function createTransferCheckedInstruction(fromTokenAccount, toTokenAccount, owner, amount, decimals, tokenMint) {
|
|
84
|
-
if (decimals === void 0) { decimals = 9; }
|
|
85
|
-
var data = Buffer.alloc(10);
|
|
86
|
-
data[0] = 12; // TransferChecked instruction enum
|
|
87
|
-
data.writeBigUInt64LE(amount, 1); // 8-byte amount
|
|
88
|
-
data[9] = decimals; // single-byte decimal
|
|
89
|
-
var programId = TOKEN_2022_PROGRAM_ID;
|
|
90
|
-
return new TransactionInstruction({
|
|
91
|
-
keys: [
|
|
92
|
-
{ pubkey: fromTokenAccount, isSigner: false, isWritable: true },
|
|
93
|
-
{ pubkey: tokenMint, isSigner: false, isWritable: false },
|
|
94
|
-
{ pubkey: toTokenAccount, isSigner: false, isWritable: true },
|
|
95
|
-
{ pubkey: owner, isSigner: true, isWritable: false }
|
|
96
|
-
],
|
|
97
|
-
programId: programId,
|
|
98
|
-
data: data
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
export function createSPLTransferInstruction(_a) {
|
|
102
|
-
var fromTokenAccount = _a.fromTokenAccount, toTokenAccount = _a.toTokenAccount, owner = _a.owner, amount = _a.amount;
|
|
103
|
-
var data = Buffer.alloc(9);
|
|
104
|
-
data[0] = 3; // Transfer instruction
|
|
105
|
-
data.writeBigUInt64LE(amount, 1);
|
|
106
|
-
return new TransactionInstruction({
|
|
107
|
-
keys: [
|
|
108
|
-
{ pubkey: fromTokenAccount, isSigner: false, isWritable: true },
|
|
109
|
-
{ pubkey: toTokenAccount, isSigner: false, isWritable: true },
|
|
110
|
-
{ pubkey: owner, isSigner: true, isWritable: false }
|
|
111
|
-
],
|
|
112
|
-
programId: TOKEN_PROGRAM_ID,
|
|
113
|
-
data: data
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
export function createTransferTransaction(config) {
|
|
117
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
118
|
-
var instructions, fromPubkey, messageV0;
|
|
119
|
-
return __generator(this, function (_a) {
|
|
120
|
-
switch (_a.label) {
|
|
121
|
-
case 0: return [4 /*yield*/, createTransferInstructions(config)];
|
|
122
|
-
case 1:
|
|
123
|
-
instructions = _a.sent();
|
|
124
|
-
fromPubkey = new PublicKey(config.fromAddress);
|
|
125
|
-
messageV0 = new TransactionMessage({
|
|
126
|
-
payerKey: fromPubkey,
|
|
127
|
-
recentBlockhash: config.blockhash,
|
|
128
|
-
instructions: instructions
|
|
129
|
-
}).compileToV0Message();
|
|
130
|
-
return [2 /*return*/, new VersionedTransaction(messageV0)];
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
function createTransferInstructions(config) {
|
|
136
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
137
|
-
var fromPubkey, toPubkey, instructions, tokenMintPubkey, fromTokenAccount, toTokenAccount;
|
|
138
|
-
return __generator(this, function (_a) {
|
|
139
|
-
switch (_a.label) {
|
|
140
|
-
case 0:
|
|
141
|
-
fromPubkey = new PublicKey(config.fromAddress);
|
|
142
|
-
toPubkey = new PublicKey(config.toAddress);
|
|
143
|
-
instructions = [];
|
|
144
|
-
if (!!config.tokenMint) return [3 /*break*/, 1];
|
|
145
|
-
instructions.push(SystemProgram.transfer({
|
|
146
|
-
fromPubkey: fromPubkey,
|
|
147
|
-
toPubkey: toPubkey,
|
|
148
|
-
lamports: Number(config.amount)
|
|
149
|
-
}));
|
|
150
|
-
return [3 /*break*/, 4];
|
|
151
|
-
case 1:
|
|
152
|
-
tokenMintPubkey = new PublicKey(config.tokenMint);
|
|
153
|
-
return [4 /*yield*/, getAssociatedTokenAddress(tokenMintPubkey, fromPubkey, config.tokenProgram)];
|
|
154
|
-
case 2:
|
|
155
|
-
fromTokenAccount = _a.sent();
|
|
156
|
-
return [4 /*yield*/, getAssociatedTokenAddress(tokenMintPubkey, toPubkey, config.tokenProgram)];
|
|
157
|
-
case 3:
|
|
158
|
-
toTokenAccount = _a.sent();
|
|
159
|
-
if (config.createATA) {
|
|
160
|
-
instructions.push(createTokenAccountInstruction(fromPubkey, toTokenAccount, toPubkey, tokenMintPubkey, config.tokenProgram
|
|
161
|
-
? new PublicKey(config.tokenProgram)
|
|
162
|
-
: TOKEN_PROGRAM_ID));
|
|
163
|
-
}
|
|
164
|
-
if (config.tokenProgram === TOKEN_2022_PROGRAM_ID.toBase58()) {
|
|
165
|
-
instructions.push(createTransferCheckedInstruction(fromTokenAccount, toTokenAccount, fromPubkey, BigInt(config.amount), config.tokenDecimals, tokenMintPubkey));
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
instructions.push(createSPLTransferInstruction({
|
|
169
|
-
fromTokenAccount: fromTokenAccount,
|
|
170
|
-
toTokenAccount: toTokenAccount,
|
|
171
|
-
owner: fromPubkey,
|
|
172
|
-
amount: BigInt(config.amount)
|
|
173
|
-
}));
|
|
174
|
-
}
|
|
175
|
-
_a.label = 4;
|
|
176
|
-
case 4: return [2 /*return*/, instructions];
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
export function handleManualSignAndSend(transaction, provider) {
|
|
182
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
183
|
-
var signature, signedTransaction, signature, error_1;
|
|
184
|
-
var _a;
|
|
185
|
-
return __generator(this, function (_b) {
|
|
186
|
-
switch (_b.label) {
|
|
187
|
-
case 0:
|
|
188
|
-
_b.trys.push([0, 6, , 7]);
|
|
189
|
-
if (!provider.signAndSendTransaction) return [3 /*break*/, 2];
|
|
190
|
-
return [4 /*yield*/, provider.signAndSendTransaction(transaction)];
|
|
191
|
-
case 1:
|
|
192
|
-
signature = (_b.sent()).signature;
|
|
193
|
-
return [2 /*return*/, signature];
|
|
194
|
-
case 2: return [4 /*yield*/, provider.signTransaction(transaction)];
|
|
195
|
-
case 3:
|
|
196
|
-
signedTransaction = _b.sent();
|
|
197
|
-
if (!provider.sendTransaction) {
|
|
198
|
-
throw new Error('Provider does not support sendTransaction');
|
|
199
|
-
}
|
|
200
|
-
return [4 /*yield*/, provider.sendTransaction(signedTransaction)];
|
|
201
|
-
case 4:
|
|
202
|
-
signature = _b.sent();
|
|
203
|
-
return [2 /*return*/, signature];
|
|
204
|
-
case 5: return [3 /*break*/, 7];
|
|
205
|
-
case 6:
|
|
206
|
-
error_1 = _b.sent();
|
|
207
|
-
console.error('Error in handleManualSignAndSend:', error_1);
|
|
208
|
-
if (error_1 instanceof Error && ((_a = error_1.message) === null || _a === void 0 ? void 0 : _a.includes('User rejected'))) {
|
|
209
|
-
throw new Error('Transaction was rejected by user');
|
|
210
|
-
}
|
|
211
|
-
throw error_1;
|
|
212
|
-
case 7: return [2 /*return*/];
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
export function getTransferInstructions(instructions) {
|
|
218
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
219
|
-
var result, _loop_1, instrIndex;
|
|
220
|
-
return __generator(this, function (_a) {
|
|
221
|
-
result = [];
|
|
222
|
-
_loop_1 = function (instrIndex) {
|
|
223
|
-
var ix = instructions[instrIndex];
|
|
224
|
-
var programId = new PublicKey(ix.programId);
|
|
225
|
-
var keys = ix.accounts.map(function (meta, accountIndex) {
|
|
226
|
-
if (!meta.pubKey) {
|
|
227
|
-
throw new Error("Account at instruction ".concat(instrIndex, ", index ").concat(accountIndex, " has no pubKey and is not fillable"));
|
|
228
|
-
}
|
|
229
|
-
var resolvedPubkey = new PublicKey(meta.pubKey);
|
|
230
|
-
return {
|
|
231
|
-
pubkey: resolvedPubkey,
|
|
232
|
-
isSigner: meta.isSigner,
|
|
233
|
-
isWritable: meta.isWritable
|
|
234
|
-
};
|
|
235
|
-
});
|
|
236
|
-
result.push(new TransactionInstruction({
|
|
237
|
-
keys: keys,
|
|
238
|
-
programId: programId,
|
|
239
|
-
data: Buffer.from(ix.data, 'base64')
|
|
240
|
-
}));
|
|
241
|
-
};
|
|
242
|
-
for (instrIndex = 0; instrIndex < instructions.length; instrIndex++) {
|
|
243
|
-
_loop_1(instrIndex);
|
|
244
|
-
}
|
|
245
|
-
return [2 /*return*/, result];
|
|
246
|
-
});
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
export var sendSOLTransaction = function (config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
250
|
-
var provider, transaction, isManualWallet, signature, error_2, error_3;
|
|
251
|
-
return __generator(this, function (_a) {
|
|
252
|
-
switch (_a.label) {
|
|
253
|
-
case 0:
|
|
254
|
-
_a.trys.push([0, 8, , 9]);
|
|
255
|
-
provider = getSolanaProvider(config.walletName);
|
|
256
|
-
return [4 /*yield*/, createTransferTransaction(config)];
|
|
257
|
-
case 1:
|
|
258
|
-
transaction = _a.sent();
|
|
259
|
-
isManualWallet = provider.isTrust ||
|
|
260
|
-
provider.isTrustWallet ||
|
|
261
|
-
config.walletName.toLowerCase().includes('trust');
|
|
262
|
-
if (!isManualWallet) return [3 /*break*/, 3];
|
|
263
|
-
return [4 /*yield*/, handleManualSignAndSend(transaction, provider)];
|
|
264
|
-
case 2: return [2 /*return*/, _a.sent()];
|
|
265
|
-
case 3:
|
|
266
|
-
if (!provider.signAndSendTransaction) return [3 /*break*/, 7];
|
|
267
|
-
_a.label = 4;
|
|
268
|
-
case 4:
|
|
269
|
-
_a.trys.push([4, 6, , 7]);
|
|
270
|
-
return [4 /*yield*/, provider.signAndSendTransaction(transaction)
|
|
271
|
-
// @TODO: validate that signature was a successful tx
|
|
272
|
-
];
|
|
273
|
-
case 5:
|
|
274
|
-
signature = (_a.sent()).signature;
|
|
275
|
-
// @TODO: validate that signature was a successful tx
|
|
276
|
-
return [2 /*return*/, signature];
|
|
277
|
-
case 6:
|
|
278
|
-
error_2 = _a.sent();
|
|
279
|
-
if (isUserRejection(error_2)) {
|
|
280
|
-
throw new Error('Transaction was rejected by user');
|
|
281
|
-
}
|
|
282
|
-
return [2 /*return*/, handleManualSignAndSend(transaction, provider)];
|
|
283
|
-
case 7: return [2 /*return*/, handleManualSignAndSend(transaction, provider)];
|
|
284
|
-
case 8:
|
|
285
|
-
error_3 = _a.sent();
|
|
286
|
-
if (isUserRejection(error_3)) {
|
|
287
|
-
throw new Error('Transaction was rejected by user');
|
|
288
|
-
}
|
|
289
|
-
throw error_3 instanceof Error
|
|
290
|
-
? error_3
|
|
291
|
-
: new Error("Failed to send SOL transaction with ".concat(config.walletName, " wallet"));
|
|
292
|
-
case 9: return [2 /*return*/];
|
|
293
|
-
}
|
|
294
|
-
});
|
|
295
|
-
}); };
|
|
296
|
-
export var sendSOLTransactionWithInstructions = function (payload, transferConfig) { return __awaiter(void 0, void 0, void 0, function () {
|
|
297
|
-
var walletName, instructions, fromPubkey, transferInstructions, transaction, error_4;
|
|
298
|
-
return __generator(this, function (_a) {
|
|
299
|
-
switch (_a.label) {
|
|
300
|
-
case 0:
|
|
301
|
-
walletName = payload.transactionInstructions.walletName || 'Phantom';
|
|
302
|
-
_a.label = 1;
|
|
303
|
-
case 1:
|
|
304
|
-
_a.trys.push([1, 5, , 6]);
|
|
305
|
-
return [4 /*yield*/, getTransferInstructions(payload.transactionInstructions.instructions)];
|
|
306
|
-
case 2:
|
|
307
|
-
instructions = _a.sent();
|
|
308
|
-
fromPubkey = new PublicKey(transferConfig.fromAddress);
|
|
309
|
-
return [4 /*yield*/, createTransferInstructions(transferConfig)];
|
|
310
|
-
case 3:
|
|
311
|
-
transferInstructions = _a.sent();
|
|
312
|
-
instructions.push.apply(instructions, transferInstructions);
|
|
313
|
-
transaction = new VersionedTransaction(new TransactionMessage({
|
|
314
|
-
payerKey: fromPubkey,
|
|
315
|
-
recentBlockhash: payload.transactionInstructions.blockhash,
|
|
316
|
-
instructions: instructions
|
|
317
|
-
}).compileToV0Message());
|
|
318
|
-
return [4 /*yield*/, sendSolanaTransfer(walletName, transaction)];
|
|
319
|
-
case 4: return [2 /*return*/, _a.sent()];
|
|
320
|
-
case 5:
|
|
321
|
-
error_4 = _a.sent();
|
|
322
|
-
if (isUserRejection(error_4)) {
|
|
323
|
-
throw new Error('Transaction was rejected by user');
|
|
324
|
-
}
|
|
325
|
-
throw error_4 instanceof Error
|
|
326
|
-
? error_4
|
|
327
|
-
: new Error("Failed to send SOL transaction with ".concat(walletName, " wallet"));
|
|
328
|
-
case 6: return [2 /*return*/];
|
|
329
|
-
}
|
|
330
|
-
});
|
|
331
|
-
}); };
|
|
332
|
-
export var sendSolanaTransfer = function (walletName, transaction) { return __awaiter(void 0, void 0, void 0, function () {
|
|
333
|
-
var provider, isManualWallet, signature, error_5;
|
|
334
|
-
return __generator(this, function (_a) {
|
|
335
|
-
switch (_a.label) {
|
|
336
|
-
case 0:
|
|
337
|
-
provider = getSolanaProvider(walletName);
|
|
338
|
-
isManualWallet = provider.isTrust ||
|
|
339
|
-
provider.isTrustWallet ||
|
|
340
|
-
walletName.includes('trust');
|
|
341
|
-
if (!isManualWallet) return [3 /*break*/, 2];
|
|
342
|
-
return [4 /*yield*/, handleManualSignAndSend(transaction, provider)];
|
|
343
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
344
|
-
case 2:
|
|
345
|
-
if (!provider.signAndSendTransaction) return [3 /*break*/, 6];
|
|
346
|
-
_a.label = 3;
|
|
347
|
-
case 3:
|
|
348
|
-
_a.trys.push([3, 5, , 6]);
|
|
349
|
-
return [4 /*yield*/, provider.signAndSendTransaction(transaction)];
|
|
350
|
-
case 4:
|
|
351
|
-
signature = (_a.sent()).signature;
|
|
352
|
-
return [2 /*return*/, signature];
|
|
353
|
-
case 5:
|
|
354
|
-
error_5 = _a.sent();
|
|
355
|
-
if (isUserRejection(error_5)) {
|
|
356
|
-
throw new Error('Transaction was rejected by user');
|
|
357
|
-
}
|
|
358
|
-
return [2 /*return*/, handleManualSignAndSend(transaction, provider)];
|
|
359
|
-
case 6: return [2 /*return*/, handleManualSignAndSend(transaction, provider)];
|
|
360
|
-
}
|
|
361
|
-
});
|
|
362
|
-
}); };
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { Transaction, VersionedTransaction } from '@meshconnect/solana-web3.js';
|
|
2
|
-
export declare enum SolanaWalletType {
|
|
3
|
-
PHANTOM = "phantom",
|
|
4
|
-
SOLFLARE = "solflare",
|
|
5
|
-
TRUST = "trustwallet",
|
|
6
|
-
EXODUS = "exodus",
|
|
7
|
-
UNKNOWN = "unknown"
|
|
8
|
-
}
|
|
9
|
-
export interface SolanaConnectResult {
|
|
10
|
-
accounts: string[];
|
|
11
|
-
chainId: string;
|
|
12
|
-
isConnected: boolean;
|
|
13
|
-
}
|
|
14
|
-
export interface SolanaProvider {
|
|
15
|
-
connect(options?: {
|
|
16
|
-
onlyIfTrusted?: boolean;
|
|
17
|
-
}): Promise<{
|
|
18
|
-
publicKey: {
|
|
19
|
-
toString(): string;
|
|
20
|
-
toBase58(): string;
|
|
21
|
-
};
|
|
22
|
-
}>;
|
|
23
|
-
disconnect(): Promise<void>;
|
|
24
|
-
walletType?: SolanaWalletType;
|
|
25
|
-
isConnected?: boolean;
|
|
26
|
-
publicKey?: {
|
|
27
|
-
toString(): string;
|
|
28
|
-
toBase58(): string;
|
|
29
|
-
};
|
|
30
|
-
on(event: 'connect' | 'disconnect' | 'accountChanged', callback: (publicKey?: any) => void): void;
|
|
31
|
-
signMessage(message: Uint8Array): Promise<{
|
|
32
|
-
signature: Uint8Array;
|
|
33
|
-
}>;
|
|
34
|
-
signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction>;
|
|
35
|
-
signAndSendTransaction?(transaction: Transaction | VersionedTransaction): Promise<{
|
|
36
|
-
signature: string;
|
|
37
|
-
}>;
|
|
38
|
-
sendTransaction?(transaction: Transaction | VersionedTransaction): Promise<string>;
|
|
39
|
-
isPhantom?: boolean;
|
|
40
|
-
isSolflare?: boolean;
|
|
41
|
-
isTrust?: boolean;
|
|
42
|
-
isTrustWallet?: boolean;
|
|
43
|
-
isExodus?: boolean;
|
|
44
|
-
}
|
|
45
|
-
export interface WindowWithSolanaProviders extends Window {
|
|
46
|
-
solana?: SolanaProvider;
|
|
47
|
-
phantom?: {
|
|
48
|
-
solana?: SolanaProvider;
|
|
49
|
-
};
|
|
50
|
-
exodus?: {
|
|
51
|
-
solana?: SolanaProvider;
|
|
52
|
-
};
|
|
53
|
-
trustwallet?: {
|
|
54
|
-
solana?: SolanaProvider;
|
|
55
|
-
};
|
|
56
|
-
solflare?: SolanaProvider;
|
|
57
|
-
[key: string]: {
|
|
58
|
-
solana?: SolanaProvider;
|
|
59
|
-
} | SolanaProvider | undefined | any;
|
|
60
|
-
}
|
|
61
|
-
export interface TransactionConfig {
|
|
62
|
-
toAddress: string;
|
|
63
|
-
amount: bigint;
|
|
64
|
-
fromAddress: string;
|
|
65
|
-
blockhash: string;
|
|
66
|
-
walletName: string;
|
|
67
|
-
tokenMint?: string;
|
|
68
|
-
createATA?: boolean;
|
|
69
|
-
tokenProgram?: string;
|
|
70
|
-
tokenDecimals?: number;
|
|
71
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export var SolanaWalletType;
|
|
2
|
-
(function (SolanaWalletType) {
|
|
3
|
-
SolanaWalletType["PHANTOM"] = "phantom";
|
|
4
|
-
SolanaWalletType["SOLFLARE"] = "solflare";
|
|
5
|
-
SolanaWalletType["TRUST"] = "trustwallet";
|
|
6
|
-
SolanaWalletType["EXODUS"] = "exodus";
|
|
7
|
-
SolanaWalletType["UNKNOWN"] = "unknown";
|
|
8
|
-
})(SolanaWalletType || (SolanaWalletType = {}));
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { BaseWalletStrategy } from './WalletStrategy';
|
|
2
|
-
import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, TransactionBatchPayload, WalletCapabilitiesPayload } from '../types';
|
|
3
|
-
export declare class EVMWalletStrategy extends BaseWalletStrategy {
|
|
4
|
-
sendTransactionWithInstructions(): Promise<string>;
|
|
5
|
-
connect(payload: WalletBrowserPayload): Promise<{
|
|
6
|
-
accounts: string[];
|
|
7
|
-
chainId: number;
|
|
8
|
-
isConnected: boolean;
|
|
9
|
-
}>;
|
|
10
|
-
disconnect(payload: DisconnectPayload): Promise<void>;
|
|
11
|
-
signMessage(payload: SignRequestPayload): Promise<string>;
|
|
12
|
-
switchChain(payload: ChainSwitchPayload): Promise<{
|
|
13
|
-
chainId: number;
|
|
14
|
-
accounts: string[];
|
|
15
|
-
}>;
|
|
16
|
-
sendNativeTransfer(payload: TransferPayload): Promise<string>;
|
|
17
|
-
sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
|
18
|
-
sendNativeSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
|
19
|
-
sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
|
|
20
|
-
getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
|
|
21
|
-
atomic: {
|
|
22
|
-
status: string;
|
|
23
|
-
};
|
|
24
|
-
}>;
|
|
25
|
-
getProviders(): {
|
|
26
|
-
icon: string | undefined;
|
|
27
|
-
id: string;
|
|
28
|
-
name: string;
|
|
29
|
-
type: string;
|
|
30
|
-
}[];
|
|
31
|
-
}
|