@meshconnect/web-link-sdk 3.0.11 → 3.1.0-rc.0

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.
Files changed (52) hide show
  1. package/Link.js +173 -205
  2. package/package.json +6 -6
  3. package/utils/connectors/evm/chainConfigs.d.ts +2 -0
  4. package/utils/connectors/evm/chainConfigs.js +115 -0
  5. package/utils/connectors/evm/chainSwitching.d.ts +15 -0
  6. package/utils/connectors/evm/chainSwitching.js +242 -0
  7. package/utils/connectors/evm/index.d.ts +8 -0
  8. package/utils/connectors/evm/index.js +8 -0
  9. package/utils/connectors/evm/provider.d.ts +6 -0
  10. package/utils/connectors/evm/provider.js +13 -0
  11. package/utils/connectors/evm/signing.d.ts +1 -0
  12. package/utils/connectors/evm/signing.js +78 -0
  13. package/utils/connectors/evm/transactions.d.ts +9 -0
  14. package/utils/connectors/evm/transactions.js +201 -0
  15. package/utils/connectors/evm/types.d.ts +58 -0
  16. package/utils/connectors/evm/types.js +1 -0
  17. package/utils/connectors/evm/walletConnection.d.ts +20 -0
  18. package/utils/connectors/evm/walletConnection.js +161 -0
  19. package/utils/connectors/evm/walletDiscovery.d.ts +10 -0
  20. package/utils/connectors/evm/walletDiscovery.js +55 -0
  21. package/utils/connectors/solana/connection.d.ts +3 -0
  22. package/utils/connectors/solana/connection.js +94 -0
  23. package/utils/connectors/solana/index.d.ts +5 -0
  24. package/utils/connectors/solana/index.js +5 -0
  25. package/utils/connectors/solana/providerDiscovery.d.ts +3 -0
  26. package/utils/connectors/solana/providerDiscovery.js +75 -0
  27. package/utils/connectors/solana/signing.d.ts +1 -0
  28. package/utils/connectors/solana/signing.js +59 -0
  29. package/utils/connectors/solana/transaction.d.ts +2 -0
  30. package/utils/connectors/solana/transaction.js +158 -0
  31. package/utils/connectors/solana/types.d.ts +68 -0
  32. package/utils/connectors/solana/types.js +8 -0
  33. package/utils/event-types.d.ts +10 -2
  34. package/utils/event-types.js +2 -1
  35. package/utils/sdk-specs.d.ts +1 -0
  36. package/utils/sdk-specs.js +2 -1
  37. package/utils/types.d.ts +38 -29
  38. package/utils/version.d.ts +1 -1
  39. package/utils/version.js +1 -1
  40. package/utils/wallet/EVMWalletStrategy.d.ts +23 -0
  41. package/utils/wallet/EVMWalletStrategy.js +205 -0
  42. package/utils/wallet/SolanaWalletStrategy.d.ts +29 -0
  43. package/utils/wallet/SolanaWalletStrategy.js +194 -0
  44. package/utils/wallet/WalletStrategy.d.ts +45 -0
  45. package/utils/wallet/WalletStrategy.js +25 -0
  46. package/utils/wallet/WalletStrategyFactory.d.ts +15 -0
  47. package/utils/wallet/WalletStrategyFactory.js +31 -0
  48. package/utils/wallet/index.d.ts +4 -0
  49. package/utils/wallet/index.js +4 -0
  50. package/utils/wallet-browser-event-types.d.ts +16 -2
  51. package/utils/wagmiCoreConnectorsUtils.d.ts +0 -11
  52. package/utils/wagmiCoreConnectorsUtils.js +0 -396
@@ -0,0 +1,20 @@
1
+ import { EVMProvider, EVMConnectResult, EIP6963ProviderDetail } from './types';
2
+ declare global {
3
+ interface Window {
4
+ ethereum?: EVMProvider & {
5
+ providers?: EVMProvider[];
6
+ };
7
+ }
8
+ }
9
+ /**
10
+ * Gets an EVM provider for a specific wallet
11
+ */
12
+ export declare const getEVMProvider: (walletName?: string, walletDetail?: EIP6963ProviderDetail) => EVMProvider;
13
+ /**
14
+ * Connects to an EVM wallet
15
+ */
16
+ export declare const connectToEVMWallet: (walletName: string, targetChainId?: number, walletDetail?: EIP6963ProviderDetail) => Promise<EVMConnectResult | Error>;
17
+ /**
18
+ * Disconnects from an EVM wallet
19
+ */
20
+ export declare const disconnectFromEVMWallet: (walletName: string) => Promise<void | Error>;
@@ -0,0 +1,161 @@
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 { ethers } from 'ethers';
38
+ import { setActiveEVMProvider, getActiveRawProvider, clearActiveProviders } from './provider';
39
+ import { switchEVMChain } from './chainSwitching';
40
+ import { initializeWalletDiscovery, findAvailableProviders } from './walletDiscovery';
41
+ initializeWalletDiscovery();
42
+ /**
43
+ * Gets an EVM provider for a specific wallet
44
+ */
45
+ export var getEVMProvider = function (walletName, walletDetail) {
46
+ if (walletDetail === null || walletDetail === void 0 ? void 0 : walletDetail.provider) {
47
+ return walletDetail.provider;
48
+ }
49
+ if (!walletName) {
50
+ throw new Error('Wallet name is required');
51
+ }
52
+ var providers = findAvailableProviders();
53
+ var matchingProvider = providers.find(function (p) { return p.name.toLowerCase() === walletName.toLowerCase(); });
54
+ if (matchingProvider) {
55
+ return matchingProvider.injectedData.provider;
56
+ }
57
+ if (window.ethereum) {
58
+ return window.ethereum;
59
+ }
60
+ throw new Error("No provider found for wallet ".concat(walletName, ". Please make sure the wallet is installed and enabled."));
61
+ };
62
+ /**
63
+ * Connects to an EVM wallet
64
+ */
65
+ export var connectToEVMWallet = function (walletName, targetChainId, walletDetail) { return __awaiter(void 0, void 0, void 0, function () {
66
+ var provider, browserProvider, existingAccounts, signer, address, chainId, switchResult, error_1;
67
+ return __generator(this, function (_a) {
68
+ switch (_a.label) {
69
+ case 0:
70
+ _a.trys.push([0, 9, , 10]);
71
+ provider = void 0;
72
+ try {
73
+ provider = getEVMProvider(walletName, walletDetail);
74
+ }
75
+ catch (error) {
76
+ throw new Error("No provider found for wallet ".concat(walletName));
77
+ }
78
+ browserProvider = new ethers.BrowserProvider(provider);
79
+ setActiveEVMProvider(browserProvider, provider);
80
+ setupEventListeners(provider);
81
+ return [4 /*yield*/, provider.request({ method: 'eth_accounts' })];
82
+ case 1:
83
+ existingAccounts = _a.sent();
84
+ if (!(!existingAccounts || existingAccounts.length === 0)) return [3 /*break*/, 3];
85
+ return [4 /*yield*/, browserProvider.send('eth_requestAccounts', [])];
86
+ case 2:
87
+ _a.sent();
88
+ _a.label = 3;
89
+ case 3: return [4 /*yield*/, browserProvider.getSigner()];
90
+ case 4:
91
+ signer = _a.sent();
92
+ return [4 /*yield*/, signer.getAddress()];
93
+ case 5:
94
+ address = _a.sent();
95
+ return [4 /*yield*/, browserProvider
96
+ .getNetwork()
97
+ .then(function (network) { return Number(network.chainId); })];
98
+ case 6:
99
+ chainId = _a.sent();
100
+ if (!(targetChainId && chainId !== targetChainId)) return [3 /*break*/, 8];
101
+ return [4 /*yield*/, switchEVMChain(targetChainId, provider)];
102
+ case 7:
103
+ switchResult = _a.sent();
104
+ if (switchResult instanceof Error) {
105
+ throw switchResult;
106
+ }
107
+ chainId = switchResult.chainId;
108
+ _a.label = 8;
109
+ case 8: return [2 /*return*/, {
110
+ accounts: [address],
111
+ chainId: chainId,
112
+ isConnected: true
113
+ }];
114
+ case 9:
115
+ error_1 = _a.sent();
116
+ console.error('EVM wallet connection error:', error_1);
117
+ return [2 /*return*/, error_1 instanceof Error
118
+ ? error_1
119
+ : new Error("Failed to connect to ".concat(walletName, " wallet"))];
120
+ case 10: return [2 /*return*/];
121
+ }
122
+ });
123
+ }); };
124
+ /**
125
+ * Sets up event listeners for the provider
126
+ */
127
+ var setupEventListeners = function (provider) {
128
+ var handleAccountsChanged = function (accounts) {
129
+ console.log('Accounts changed:', accounts);
130
+ };
131
+ var handleChainChanged = function (chainId) {
132
+ console.log('Chain changed:', parseInt(chainId, 16));
133
+ };
134
+ provider.on('accountsChanged', handleAccountsChanged);
135
+ provider.on('chainChanged', handleChainChanged);
136
+ };
137
+ /**
138
+ * Disconnects from an EVM wallet
139
+ */
140
+ export var disconnectFromEVMWallet = function (walletName) { return __awaiter(void 0, void 0, void 0, function () {
141
+ var provider;
142
+ return __generator(this, function (_a) {
143
+ try {
144
+ provider = getActiveRawProvider();
145
+ if (!provider) {
146
+ return [2 /*return*/];
147
+ }
148
+ if (provider.removeAllListeners) {
149
+ provider.removeAllListeners();
150
+ }
151
+ clearActiveProviders();
152
+ }
153
+ catch (error) {
154
+ console.error('EVM wallet disconnection error:', error);
155
+ return [2 /*return*/, error instanceof Error
156
+ ? error
157
+ : new Error("Failed to disconnect from ".concat(walletName, " wallet"))];
158
+ }
159
+ return [2 /*return*/];
160
+ });
161
+ }); };
@@ -0,0 +1,10 @@
1
+ import { InjectedProviderInfo } from './types';
2
+ /**
3
+ * Initializes EIP-6963 wallet discovery protocol
4
+ * @returns Cleanup function for event listeners
5
+ */
6
+ export declare const initializeWalletDiscovery: () => (() => void);
7
+ /**
8
+ * Finds all available EVM providers using EIP-6963
9
+ */
10
+ export declare const findAvailableProviders: () => InjectedProviderInfo[];
@@ -0,0 +1,55 @@
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
10
+ var discoveredWallets = [];
11
+ /**
12
+ * Initializes EIP-6963 wallet discovery protocol
13
+ * @returns Cleanup function for event listeners
14
+ */
15
+ export var initializeWalletDiscovery = function () {
16
+ var handleAnnouncement = function (event) {
17
+ var providerDetail = event.detail;
18
+ discoveredWallets = __spreadArray(__spreadArray([], discoveredWallets, true), [providerDetail], false);
19
+ };
20
+ window.addEventListener('eip6963:announceProvider', handleAnnouncement);
21
+ window.dispatchEvent(new Event('eip6963:requestProvider'));
22
+ return function () {
23
+ window.removeEventListener('eip6963:announceProvider', handleAnnouncement);
24
+ };
25
+ };
26
+ /**
27
+ * Finds all available EVM providers using EIP-6963
28
+ */
29
+ export var findAvailableProviders = function () {
30
+ var providers = [];
31
+ // Initialize wallet discovery if not already done
32
+ if (discoveredWallets.length === 0) {
33
+ initializeWalletDiscovery();
34
+ }
35
+ // Add EIP-6963 discovered wallets
36
+ discoveredWallets.forEach(function (wallet) {
37
+ var injectedData = {
38
+ provider: wallet.provider
39
+ };
40
+ // Copy all boolean properties that start with 'is'
41
+ for (var key in wallet.provider) {
42
+ var provider = wallet.provider;
43
+ if (key.startsWith('is') && typeof provider[key] === 'boolean') {
44
+ injectedData[key] = provider[key];
45
+ }
46
+ }
47
+ providers.push({
48
+ name: wallet.info.name,
49
+ id: wallet.info.uuid,
50
+ icon: wallet.info.icon,
51
+ injectedData: injectedData
52
+ });
53
+ });
54
+ return providers;
55
+ };
@@ -0,0 +1,3 @@
1
+ import { SolanaConnectResult } from './types';
2
+ export declare const connectToSolanaWallet: (walletName: string) => Promise<SolanaConnectResult | Error>;
3
+ export declare const disconnectFromSolanaWallet: (walletName: string) => Promise<void | Error>;
@@ -0,0 +1,94 @@
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 { getSolanaProvider } from './providerDiscovery';
38
+ export var connectToSolanaWallet = function (walletName) { return __awaiter(void 0, void 0, void 0, function () {
39
+ var provider_1, response, error_1;
40
+ return __generator(this, function (_a) {
41
+ switch (_a.label) {
42
+ case 0:
43
+ _a.trys.push([0, 2, , 3]);
44
+ provider_1 = getSolanaProvider(walletName);
45
+ if (provider_1.publicKey && provider_1.isConnected) {
46
+ return [2 /*return*/, {
47
+ accounts: [provider_1.publicKey.toString()],
48
+ chainId: '101',
49
+ isConnected: true
50
+ }];
51
+ }
52
+ return [4 /*yield*/, provider_1.connect({ onlyIfTrusted: true }).catch(function () {
53
+ // If eager connect fails, try regular connect
54
+ return provider_1.connect();
55
+ })];
56
+ case 1:
57
+ response = _a.sent();
58
+ if (!(response === null || response === void 0 ? void 0 : response.publicKey)) {
59
+ throw new Error("".concat(walletName, " connection failed - no public key returned"));
60
+ }
61
+ return [2 /*return*/, {
62
+ accounts: [response.publicKey.toString()],
63
+ chainId: '101',
64
+ isConnected: true
65
+ }];
66
+ case 2:
67
+ error_1 = _a.sent();
68
+ return [2 /*return*/, error_1 instanceof Error
69
+ ? error_1
70
+ : new Error("Failed to connect to ".concat(walletName, " wallet"))];
71
+ case 3: return [2 /*return*/];
72
+ }
73
+ });
74
+ }); };
75
+ export var disconnectFromSolanaWallet = function (walletName) { return __awaiter(void 0, void 0, void 0, function () {
76
+ var provider, error_2;
77
+ return __generator(this, function (_a) {
78
+ switch (_a.label) {
79
+ case 0:
80
+ _a.trys.push([0, 2, , 3]);
81
+ provider = getSolanaProvider(walletName);
82
+ return [4 /*yield*/, provider.disconnect()];
83
+ case 1:
84
+ _a.sent();
85
+ return [3 /*break*/, 3];
86
+ case 2:
87
+ error_2 = _a.sent();
88
+ return [2 /*return*/, error_2 instanceof Error
89
+ ? error_2
90
+ : new Error("Failed to disconnect from ".concat(walletName, " wallet"))];
91
+ case 3: return [2 /*return*/];
92
+ }
93
+ });
94
+ }); };
@@ -0,0 +1,5 @@
1
+ export * from './types';
2
+ export * from './providerDiscovery';
3
+ export * from './connection';
4
+ export * from './transaction';
5
+ export * from './signing';
@@ -0,0 +1,5 @@
1
+ export * from './types';
2
+ export * from './providerDiscovery';
3
+ export * from './connection';
4
+ export * from './transaction';
5
+ export * from './signing';
@@ -0,0 +1,3 @@
1
+ import { SolanaProvider, SolanaWalletType } from './types';
2
+ export declare const findAvailableSolanaProviders: () => { [key in SolanaWalletType]?: boolean; };
3
+ export declare const getSolanaProvider: (walletName: string) => SolanaProvider;
@@ -0,0 +1,75 @@
1
+ import { SolanaWalletType } from './types';
2
+ var identifyWalletType = function (provider) {
3
+ if (provider.isPhantom)
4
+ return SolanaWalletType.PHANTOM;
5
+ if (provider.isSolflare)
6
+ return SolanaWalletType.SOLFLARE;
7
+ if (provider.isTrust || provider.isTrustWallet)
8
+ return SolanaWalletType.TRUST;
9
+ if (provider.isExodus)
10
+ return SolanaWalletType.EXODUS;
11
+ return SolanaWalletType.UNKNOWN;
12
+ };
13
+ var getProviderByType = function (type) {
14
+ var _a, _b, _c, _d;
15
+ // First try to get the provider directly using the wallet name
16
+ var dynamicProvider = (_a = window[type]) === null || _a === void 0 ? void 0 : _a.solana;
17
+ if (dynamicProvider) {
18
+ return dynamicProvider;
19
+ }
20
+ // Then check known provider locations
21
+ switch (type) {
22
+ case SolanaWalletType.PHANTOM:
23
+ return (_b = window.phantom) === null || _b === void 0 ? void 0 : _b.solana;
24
+ case SolanaWalletType.SOLFLARE:
25
+ return window.solflare;
26
+ case SolanaWalletType.TRUST:
27
+ return (_c = window.trustwallet) === null || _c === void 0 ? void 0 : _c.solana;
28
+ case SolanaWalletType.EXODUS:
29
+ return (_d = window.exodus) === null || _d === void 0 ? void 0 : _d.solana;
30
+ case SolanaWalletType.UNKNOWN:
31
+ return window.solana;
32
+ }
33
+ };
34
+ export var findAvailableSolanaProviders = function () {
35
+ var providers = {};
36
+ // Check all known wallet types
37
+ Object.values(SolanaWalletType).forEach(function (type) {
38
+ if (getProviderByType(type)) {
39
+ providers[type] = true;
40
+ }
41
+ });
42
+ // Also check window.solana if not already found
43
+ if (window.solana && !Object.keys(providers).length) {
44
+ var walletType = identifyWalletType(window.solana);
45
+ providers[walletType] = true;
46
+ }
47
+ return providers;
48
+ };
49
+ export var getSolanaProvider = function (walletName) {
50
+ var _a;
51
+ var normalizedName = walletName
52
+ .toLowerCase()
53
+ .replace(/\s+/g, '');
54
+ var availableProviders = findAvailableSolanaProviders();
55
+ // First check if the requested wallet is available
56
+ if (availableProviders[normalizedName]) {
57
+ var provider = getProviderByType(normalizedName);
58
+ if (provider)
59
+ return provider;
60
+ }
61
+ // If not found and it's a dynamic provider, try direct access
62
+ var dynamicProvider = (_a = window[normalizedName]) === null || _a === void 0 ? void 0 : _a.solana;
63
+ if (dynamicProvider) {
64
+ return dynamicProvider;
65
+ }
66
+ // If still not found, check window.solana as last resort
67
+ if (window.solana) {
68
+ var detectedType = identifyWalletType(window.solana);
69
+ if (detectedType === normalizedName ||
70
+ normalizedName === SolanaWalletType.UNKNOWN) {
71
+ return window.solana;
72
+ }
73
+ }
74
+ throw new Error("Provider not found for wallet: ".concat(walletName));
75
+ };
@@ -0,0 +1 @@
1
+ export declare const signSolanaMessage: (walletName: string, message: string) => Promise<string | Error>;
@@ -0,0 +1,59 @@
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 bs58 from 'bs58';
38
+ import { getSolanaProvider } from './providerDiscovery';
39
+ export var signSolanaMessage = function (walletName, message) { return __awaiter(void 0, void 0, void 0, function () {
40
+ var provider, messageBytes, signedMessage, error_1;
41
+ return __generator(this, function (_a) {
42
+ switch (_a.label) {
43
+ case 0:
44
+ _a.trys.push([0, 2, , 3]);
45
+ provider = getSolanaProvider(walletName);
46
+ messageBytes = new TextEncoder().encode(message);
47
+ return [4 /*yield*/, provider.signMessage(messageBytes)];
48
+ case 1:
49
+ signedMessage = _a.sent();
50
+ return [2 /*return*/, bs58.encode(signedMessage.signature)];
51
+ case 2:
52
+ error_1 = _a.sent();
53
+ return [2 /*return*/, error_1 instanceof Error
54
+ ? error_1
55
+ : new Error("Failed to sign message with ".concat(walletName, " wallet"))];
56
+ case 3: return [2 /*return*/];
57
+ }
58
+ });
59
+ }); };
@@ -0,0 +1,2 @@
1
+ import { TransactionConfig } from './types';
2
+ export declare const sendSOLTransaction: (config: TransactionConfig) => Promise<string>;