@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,265 +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 { connectToEVMWallet, disconnectFromEVMWallet, signEVMMessage, sendEVMTransaction, sendEVMTokenTransaction, sendNativeSmartContractTransaction, switchEVMChain, findAvailableProviders, sendEVMTransactionBatch, getWalletCapabilities } from '../connectors/evm';
|
|
54
|
-
var EVMWalletStrategy = /** @class */ (function (_super) {
|
|
55
|
-
__extends(EVMWalletStrategy, _super);
|
|
56
|
-
function EVMWalletStrategy() {
|
|
57
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
58
|
-
}
|
|
59
|
-
EVMWalletStrategy.prototype.sendTransactionWithInstructions = function () {
|
|
60
|
-
throw new Error('Method not implemented.');
|
|
61
|
-
};
|
|
62
|
-
EVMWalletStrategy.prototype.connect = function (payload) {
|
|
63
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
64
|
-
var result, error_1;
|
|
65
|
-
return __generator(this, function (_a) {
|
|
66
|
-
switch (_a.label) {
|
|
67
|
-
case 0:
|
|
68
|
-
_a.trys.push([0, 2, , 3]);
|
|
69
|
-
return [4 /*yield*/, connectToEVMWallet(payload.integrationName, payload.targetChainId ? parseInt(payload.targetChainId, 10) : undefined)];
|
|
70
|
-
case 1:
|
|
71
|
-
result = _a.sent();
|
|
72
|
-
if (result instanceof Error) {
|
|
73
|
-
throw result;
|
|
74
|
-
}
|
|
75
|
-
return [2 /*return*/, {
|
|
76
|
-
accounts: result.accounts,
|
|
77
|
-
chainId: result.chainId,
|
|
78
|
-
isConnected: result.isConnected
|
|
79
|
-
}];
|
|
80
|
-
case 2:
|
|
81
|
-
error_1 = _a.sent();
|
|
82
|
-
throw this.handleError(error_1, 'connect to EVM wallet');
|
|
83
|
-
case 3: return [2 /*return*/];
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
EVMWalletStrategy.prototype.disconnect = function (payload) {
|
|
89
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
90
|
-
var result, error_2;
|
|
91
|
-
return __generator(this, function (_a) {
|
|
92
|
-
switch (_a.label) {
|
|
93
|
-
case 0:
|
|
94
|
-
_a.trys.push([0, 2, , 3]);
|
|
95
|
-
return [4 /*yield*/, disconnectFromEVMWallet(payload.walletName || 'Unknown Wallet')];
|
|
96
|
-
case 1:
|
|
97
|
-
result = _a.sent();
|
|
98
|
-
if (result instanceof Error) {
|
|
99
|
-
throw result;
|
|
100
|
-
}
|
|
101
|
-
return [3 /*break*/, 3];
|
|
102
|
-
case 2:
|
|
103
|
-
error_2 = _a.sent();
|
|
104
|
-
throw this.handleError(error_2, 'disconnect from EVM wallet');
|
|
105
|
-
case 3: return [2 /*return*/];
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
EVMWalletStrategy.prototype.signMessage = function (payload) {
|
|
111
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
112
|
-
var result, error_3;
|
|
113
|
-
return __generator(this, function (_a) {
|
|
114
|
-
switch (_a.label) {
|
|
115
|
-
case 0:
|
|
116
|
-
_a.trys.push([0, 2, , 3]);
|
|
117
|
-
return [4 /*yield*/, signEVMMessage(payload.walletName || 'Unknown Wallet', payload.address, payload.message)];
|
|
118
|
-
case 1:
|
|
119
|
-
result = _a.sent();
|
|
120
|
-
if (result instanceof Error) {
|
|
121
|
-
throw result;
|
|
122
|
-
}
|
|
123
|
-
return [2 /*return*/, result];
|
|
124
|
-
case 2:
|
|
125
|
-
error_3 = _a.sent();
|
|
126
|
-
throw this.handleError(error_3, 'sign EVM message');
|
|
127
|
-
case 3: return [2 /*return*/];
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
};
|
|
132
|
-
EVMWalletStrategy.prototype.switchChain = function (payload) {
|
|
133
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
134
|
-
var result, error_4;
|
|
135
|
-
return __generator(this, function (_a) {
|
|
136
|
-
switch (_a.label) {
|
|
137
|
-
case 0:
|
|
138
|
-
_a.trys.push([0, 2, , 3]);
|
|
139
|
-
return [4 /*yield*/, switchEVMChain(payload.chainId)];
|
|
140
|
-
case 1:
|
|
141
|
-
result = _a.sent();
|
|
142
|
-
if (result instanceof Error) {
|
|
143
|
-
throw result;
|
|
144
|
-
}
|
|
145
|
-
return [2 /*return*/, result];
|
|
146
|
-
case 2:
|
|
147
|
-
error_4 = _a.sent();
|
|
148
|
-
throw this.handleError(error_4, 'switch EVM chain');
|
|
149
|
-
case 3: return [2 /*return*/];
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
};
|
|
154
|
-
EVMWalletStrategy.prototype.sendNativeTransfer = function (payload) {
|
|
155
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
156
|
-
var result, error_5;
|
|
157
|
-
return __generator(this, function (_a) {
|
|
158
|
-
switch (_a.label) {
|
|
159
|
-
case 0:
|
|
160
|
-
_a.trys.push([0, 2, , 3]);
|
|
161
|
-
return [4 /*yield*/, sendEVMTransaction(payload.toAddress, BigInt(payload.amount * Math.pow(10, payload.decimalPlaces)), payload.account, payload.gasLimit, payload.maxFeePerGas, payload.maxPriorityFeePerGas)];
|
|
162
|
-
case 1:
|
|
163
|
-
result = _a.sent();
|
|
164
|
-
if (result instanceof Error) {
|
|
165
|
-
throw result;
|
|
166
|
-
}
|
|
167
|
-
return [2 /*return*/, result];
|
|
168
|
-
case 2:
|
|
169
|
-
error_5 = _a.sent();
|
|
170
|
-
throw this.handleError(error_5, 'send EVM native transfer');
|
|
171
|
-
case 3: return [2 /*return*/];
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
};
|
|
176
|
-
EVMWalletStrategy.prototype.sendSmartContractInteraction = function (payload) {
|
|
177
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
178
|
-
var result, error_6;
|
|
179
|
-
return __generator(this, function (_a) {
|
|
180
|
-
switch (_a.label) {
|
|
181
|
-
case 0:
|
|
182
|
-
_a.trys.push([0, 2, , 3]);
|
|
183
|
-
return [4 /*yield*/, sendEVMTokenTransaction(payload.address, JSON.parse(payload.abi), payload.functionName, payload.args, payload.account)];
|
|
184
|
-
case 1:
|
|
185
|
-
result = _a.sent();
|
|
186
|
-
if (result instanceof Error) {
|
|
187
|
-
throw result;
|
|
188
|
-
}
|
|
189
|
-
return [2 /*return*/, result];
|
|
190
|
-
case 2:
|
|
191
|
-
error_6 = _a.sent();
|
|
192
|
-
throw this.handleError(error_6, 'send EVM smart contract interaction');
|
|
193
|
-
case 3: return [2 /*return*/];
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
};
|
|
198
|
-
EVMWalletStrategy.prototype.sendNativeSmartContractInteraction = function (payload) {
|
|
199
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
200
|
-
var result, error_7;
|
|
201
|
-
return __generator(this, function (_a) {
|
|
202
|
-
switch (_a.label) {
|
|
203
|
-
case 0:
|
|
204
|
-
_a.trys.push([0, 2, , 3]);
|
|
205
|
-
return [4 /*yield*/, sendNativeSmartContractTransaction(payload.address, JSON.parse(payload.abi), payload.functionName, payload.args, payload.account, payload.value)];
|
|
206
|
-
case 1:
|
|
207
|
-
result = _a.sent();
|
|
208
|
-
if (result instanceof Error) {
|
|
209
|
-
throw result;
|
|
210
|
-
}
|
|
211
|
-
return [2 /*return*/, result];
|
|
212
|
-
case 2:
|
|
213
|
-
error_7 = _a.sent();
|
|
214
|
-
throw this.handleError(error_7, 'send EVM smart contract interaction');
|
|
215
|
-
case 3: return [2 /*return*/];
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
};
|
|
220
|
-
EVMWalletStrategy.prototype.sendTransactionBatch = function (payload) {
|
|
221
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
222
|
-
var result, error_8;
|
|
223
|
-
return __generator(this, function (_a) {
|
|
224
|
-
switch (_a.label) {
|
|
225
|
-
case 0:
|
|
226
|
-
_a.trys.push([0, 2, , 3]);
|
|
227
|
-
return [4 /*yield*/, sendEVMTransactionBatch(payload)];
|
|
228
|
-
case 1:
|
|
229
|
-
result = _a.sent();
|
|
230
|
-
if (result instanceof Error) {
|
|
231
|
-
throw result;
|
|
232
|
-
}
|
|
233
|
-
return [2 /*return*/, result];
|
|
234
|
-
case 2:
|
|
235
|
-
error_8 = _a.sent();
|
|
236
|
-
throw this.handleError(error_8, 'send EVM smart contract interaction');
|
|
237
|
-
case 3: return [2 /*return*/];
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
});
|
|
241
|
-
};
|
|
242
|
-
EVMWalletStrategy.prototype.getWalletCapabilities = function (payload) {
|
|
243
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
244
|
-
var result;
|
|
245
|
-
return __generator(this, function (_a) {
|
|
246
|
-
switch (_a.label) {
|
|
247
|
-
case 0: return [4 /*yield*/, getWalletCapabilities(payload.from, payload.chainId)];
|
|
248
|
-
case 1:
|
|
249
|
-
result = _a.sent();
|
|
250
|
-
return [2 /*return*/, result];
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
};
|
|
255
|
-
EVMWalletStrategy.prototype.getProviders = function () {
|
|
256
|
-
return findAvailableProviders().map(function (provider) { return ({
|
|
257
|
-
icon: provider.icon,
|
|
258
|
-
id: provider.id,
|
|
259
|
-
name: provider.name,
|
|
260
|
-
type: 'evm'
|
|
261
|
-
}); });
|
|
262
|
-
};
|
|
263
|
-
return EVMWalletStrategy;
|
|
264
|
-
}(BaseWalletStrategy));
|
|
265
|
-
export { EVMWalletStrategy };
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { BaseWalletStrategy } from './WalletStrategy';
|
|
2
|
-
import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, SolanaTransferWithInstructionsPayload } from '../types';
|
|
3
|
-
export declare class SolanaWalletStrategy extends BaseWalletStrategy {
|
|
4
|
-
connect(payload: WalletBrowserPayload): Promise<{
|
|
5
|
-
accounts: string[];
|
|
6
|
-
chainId: string;
|
|
7
|
-
isConnected: boolean;
|
|
8
|
-
}>;
|
|
9
|
-
disconnect(payload: DisconnectPayload): Promise<void>;
|
|
10
|
-
signMessage(payload: SignRequestPayload): Promise<string>;
|
|
11
|
-
/**
|
|
12
|
-
* Handles chain switching for Solana networks
|
|
13
|
-
* Supports both mainnet (101) and devnet (103)
|
|
14
|
-
*/
|
|
15
|
-
switchChain(payload: ChainSwitchPayload): Promise<{
|
|
16
|
-
chainId: string;
|
|
17
|
-
accounts: string[];
|
|
18
|
-
}>;
|
|
19
|
-
sendNativeTransfer(payload: TransferPayload): Promise<string>;
|
|
20
|
-
sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
|
21
|
-
sendTransactionWithInstructions(payload: SolanaTransferWithInstructionsPayload): Promise<string>;
|
|
22
|
-
sendNativeSmartContractInteraction(): Promise<string>;
|
|
23
|
-
sendTransactionBatch(): Promise<string>;
|
|
24
|
-
getWalletCapabilities(): Promise<{
|
|
25
|
-
atomic: {
|
|
26
|
-
status: string;
|
|
27
|
-
};
|
|
28
|
-
}>;
|
|
29
|
-
getProviders(): {
|
|
30
|
-
id: string;
|
|
31
|
-
type: string;
|
|
32
|
-
}[];
|
|
33
|
-
}
|
|
@@ -1,300 +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
|
-
* Handles chain switching for Solana networks
|
|
131
|
-
* Supports both mainnet (101) and devnet (103)
|
|
132
|
-
*/
|
|
133
|
-
SolanaWalletStrategy.prototype.switchChain = function (payload) {
|
|
134
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
135
|
-
return __generator(this, function (_a) {
|
|
136
|
-
// Check if the requested chainId is for Solana Devnet (103)
|
|
137
|
-
if (payload.chainId === 103) {
|
|
138
|
-
return [2 /*return*/, {
|
|
139
|
-
chainId: '103',
|
|
140
|
-
accounts: []
|
|
141
|
-
}];
|
|
142
|
-
}
|
|
143
|
-
// Default to mainnet (101) for all other cases
|
|
144
|
-
return [2 /*return*/, {
|
|
145
|
-
chainId: '101',
|
|
146
|
-
accounts: []
|
|
147
|
-
}];
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
};
|
|
151
|
-
SolanaWalletStrategy.prototype.sendNativeTransfer = function (payload) {
|
|
152
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
153
|
-
var result, error_4;
|
|
154
|
-
return __generator(this, function (_a) {
|
|
155
|
-
switch (_a.label) {
|
|
156
|
-
case 0:
|
|
157
|
-
_a.trys.push([0, 2, , 3]);
|
|
158
|
-
return [4 /*yield*/, sendSOLTransaction({
|
|
159
|
-
toAddress: payload.toAddress,
|
|
160
|
-
amount: BigInt(payload.amount * Math.pow(10, payload.decimalPlaces)),
|
|
161
|
-
fromAddress: payload.account,
|
|
162
|
-
blockhash: payload.blockhash || '',
|
|
163
|
-
walletName: payload.walletName || ''
|
|
164
|
-
})];
|
|
165
|
-
case 1:
|
|
166
|
-
result = _a.sent();
|
|
167
|
-
if (typeof result === 'string') {
|
|
168
|
-
return [2 /*return*/, result];
|
|
169
|
-
}
|
|
170
|
-
throw result;
|
|
171
|
-
case 2:
|
|
172
|
-
error_4 = _a.sent();
|
|
173
|
-
throw this.handleError(error_4, 'send Solana native transfer');
|
|
174
|
-
case 3: return [2 /*return*/];
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
};
|
|
179
|
-
SolanaWalletStrategy.prototype.sendSmartContractInteraction = function (payload) {
|
|
180
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
181
|
-
var provider, senderAddress, _a, decimals, rawAmount, scaledAmount;
|
|
182
|
-
var _b;
|
|
183
|
-
return __generator(this, function (_c) {
|
|
184
|
-
switch (_c.label) {
|
|
185
|
-
case 0:
|
|
186
|
-
provider = getSolanaProvider(payload.walletName || '');
|
|
187
|
-
_a = payload.account;
|
|
188
|
-
if (_a) return [3 /*break*/, 2];
|
|
189
|
-
return [4 /*yield*/, ((_b = provider.publicKey) === null || _b === void 0 ? void 0 : _b.toString())];
|
|
190
|
-
case 1:
|
|
191
|
-
_a = (_c.sent());
|
|
192
|
-
_c.label = 2;
|
|
193
|
-
case 2:
|
|
194
|
-
senderAddress = _a;
|
|
195
|
-
if (!senderAddress) {
|
|
196
|
-
throw new Error('Sender account address is required');
|
|
197
|
-
}
|
|
198
|
-
decimals = payload.args[2] || 9;
|
|
199
|
-
rawAmount = payload.args[1];
|
|
200
|
-
scaledAmount = rawAmount;
|
|
201
|
-
if (!payload.blockhash) {
|
|
202
|
-
throw new Error('Blockhash is required for Solana transactions');
|
|
203
|
-
}
|
|
204
|
-
return [4 /*yield*/, sendSOLTransaction({
|
|
205
|
-
toAddress: payload.args[0],
|
|
206
|
-
amount: scaledAmount,
|
|
207
|
-
fromAddress: senderAddress,
|
|
208
|
-
blockhash: payload.blockhash,
|
|
209
|
-
walletName: payload.walletName || '',
|
|
210
|
-
tokenMint: payload.address,
|
|
211
|
-
createATA: payload.createATA || false,
|
|
212
|
-
tokenProgram: payload.tokenProgram,
|
|
213
|
-
tokenDecimals: decimals
|
|
214
|
-
})];
|
|
215
|
-
case 3: return [2 /*return*/, _c.sent()];
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
};
|
|
220
|
-
SolanaWalletStrategy.prototype.sendTransactionWithInstructions = function (payload) {
|
|
221
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
222
|
-
var provider, senderAddress, _a, decimals, rawAmount, scaledAmount, result, error_5;
|
|
223
|
-
var _b;
|
|
224
|
-
return __generator(this, function (_c) {
|
|
225
|
-
switch (_c.label) {
|
|
226
|
-
case 0:
|
|
227
|
-
provider = getSolanaProvider(payload.transactionInstructions.walletName || '');
|
|
228
|
-
_a = payload.transferConfig.account;
|
|
229
|
-
if (_a) return [3 /*break*/, 2];
|
|
230
|
-
return [4 /*yield*/, ((_b = provider.publicKey) === null || _b === void 0 ? void 0 : _b.toString())];
|
|
231
|
-
case 1:
|
|
232
|
-
_a = (_c.sent());
|
|
233
|
-
_c.label = 2;
|
|
234
|
-
case 2:
|
|
235
|
-
senderAddress = _a;
|
|
236
|
-
if (!senderAddress) {
|
|
237
|
-
throw new Error('Sender account address is required');
|
|
238
|
-
}
|
|
239
|
-
decimals = payload.transferConfig.args[2] || 6 // USDC has 6 decimals
|
|
240
|
-
;
|
|
241
|
-
rawAmount = payload.transferConfig.args[1];
|
|
242
|
-
scaledAmount = rawAmount;
|
|
243
|
-
if (!payload.transactionInstructions.blockhash) {
|
|
244
|
-
throw new Error('Blockhash is required for Solana transactions');
|
|
245
|
-
}
|
|
246
|
-
_c.label = 3;
|
|
247
|
-
case 3:
|
|
248
|
-
_c.trys.push([3, 5, , 6]);
|
|
249
|
-
return [4 /*yield*/, sendSOLTransactionWithInstructions(payload, {
|
|
250
|
-
toAddress: payload.transferConfig.args[0],
|
|
251
|
-
amount: scaledAmount,
|
|
252
|
-
fromAddress: senderAddress,
|
|
253
|
-
blockhash: payload.transactionInstructions.blockhash,
|
|
254
|
-
walletName: payload.transactionInstructions.walletName || '',
|
|
255
|
-
tokenMint: payload.transferConfig.address,
|
|
256
|
-
createATA: payload.transferConfig.createATA || false,
|
|
257
|
-
tokenProgram: payload.transferConfig.tokenProgram,
|
|
258
|
-
tokenDecimals: decimals
|
|
259
|
-
})];
|
|
260
|
-
case 4:
|
|
261
|
-
result = _c.sent();
|
|
262
|
-
if (typeof result === 'string') {
|
|
263
|
-
return [2 /*return*/, result];
|
|
264
|
-
}
|
|
265
|
-
throw result;
|
|
266
|
-
case 5:
|
|
267
|
-
error_5 = _c.sent();
|
|
268
|
-
throw this.handleError(error_5, 'send Solana native transfer');
|
|
269
|
-
case 6: return [2 /*return*/];
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
});
|
|
273
|
-
};
|
|
274
|
-
SolanaWalletStrategy.prototype.sendNativeSmartContractInteraction = function () {
|
|
275
|
-
throw new Error('Method not implemented.');
|
|
276
|
-
};
|
|
277
|
-
SolanaWalletStrategy.prototype.sendTransactionBatch = function () {
|
|
278
|
-
throw new Error('Method not implemented.');
|
|
279
|
-
};
|
|
280
|
-
SolanaWalletStrategy.prototype.getWalletCapabilities = function () {
|
|
281
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
282
|
-
return __generator(this, function (_a) {
|
|
283
|
-
return [2 /*return*/, {
|
|
284
|
-
atomic: {
|
|
285
|
-
status: 'ready'
|
|
286
|
-
}
|
|
287
|
-
}];
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
};
|
|
291
|
-
SolanaWalletStrategy.prototype.getProviders = function () {
|
|
292
|
-
var solanaProviderMap = findAvailableSolanaProviders();
|
|
293
|
-
return Object.keys(solanaProviderMap).map(function (id) { return ({
|
|
294
|
-
id: id,
|
|
295
|
-
type: 'solana'
|
|
296
|
-
}); });
|
|
297
|
-
};
|
|
298
|
-
return SolanaWalletStrategy;
|
|
299
|
-
}(BaseWalletStrategy));
|
|
300
|
-
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
|
-
}
|