Yes, I understand, I followed the video instructions, but I need another function
i fixed some bugs and simplified the code
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Hugo 0.88.1">
<title>SMART CONTRACT</title>
<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
<script src="https://unpkg.com/moralis/dist/moralis.js"></script>
</head>
<body>
<main>
<h1 class="visually-hidden">Headers</h1>
<div class="container">
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
<ul class="nav nav-pills">
<li onclick="login()" id="btn-login" class="nav-item"><a href="#" class="nav-link active"
aria-current="page">Join to Wallet</a>
<script>
const serverUrl = "https://1jjca2c1r4ab.usemoralis.com:2053/server";
const appId = "f21REKbxRDZtrz0D7O7zcVqx7GjVy7cbbYHOdxd8";
Moralis.start({ serverUrl, appId });
async function login() {
const user = await Moralis.authenticate()
document.getElementById('btn-login').innerHTML = user.get('ethAddress')
}
</script>
</li>
<li onclick="logout()" id="btn-logout" class="nav-item"><a href="#" class="nav-link"
aria-current="page">Disconnect</a>
<script>
async function logout() {
const user = await Moralis.User.logout(); // logOut ?
document.getElementById('btn-logout')
}
</script>
</li>
</ul>
</header>
</div>
</main>
</body>
</html>
<main class="col-md-9 ms-sm-4 col-lg-10 px-md-4">
</div>
<p>
<h2>Deposit</h2>
<div class="table-responsive">
</p>
<p>
<div class="form-floating">
<input type="amount" class="form-control" id="Amount-Payable" placeholder="Amount-Payable">
<label for="Amount-Payable">
<spann>*</spann>BNB Amount Payable (Min 0.1 BNB)
</label>
</div>
</p>
<p>
<div class="form-floating">
<input type="address" class="form-control" id="Uplline-Address" placeholder="Uplline-Address">
<label for="Uplline-Address">
<spann>*</spann>Uplline Address Ref Partners (0x0123456789...AbΡ)
</label>
</div>
</p>
<button onclick="deposit()" id="deposit" class="w-100 btn btn-lg btn-primary" type="submit">Send BNB and create a
deposit</button>
</div>
<p>
<h2>Withdraw</h2>
<div class="table-responsive">
</div>
</p>
<button onclick="withdraw()" id="withdraw" class="w-100 btn btn-lg btn-primary" type="submit">Withdraw interest in
BNB</button>
</div>
</main>
<script src="main.js"></script>
</body>
</html>
console.log('Hello world');
// connect to Moralis server
const serverUrl = "https://1jjca2c1r4ab.usemoralis.com:2053/server";
const appId = "f21REKbxRDZtrz0D7O7zcVqx7GjVy7cbbYHOdxd8";
Moralis.start({ serverUrl, appId });
// ΠΠΏΠΎΠΏΠΊΠ° ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°ΠΌΠ°ΡΠΊ https://docs.moralis.io/moralis-dapp/users/web3-login/metamask
login = async () => {
await Moralis.authenticate().then(async function (user) {
console.log('logged in');
window.location.href = "indexx.html";
})
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΊΠΎΡΠ΅Π»ΡΠΊΠ° Ρ ΡΠ·Π΅ΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
async function login() {
const user = await Moralis.authenticate()
document.getElementById('login').innerhtml = user.get('ethAddress')
}
if (document.querySelector('#btn-login') != null) {
document.querySelector('#btn-login').onclick = login;
}
// ΠΠ½ΠΎΠΏΠΊΠ° ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°ΠΌΠ°ΡΠΊ (Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ)
logout = async () => {
await Moralis.User.logout();
console.log('logout')
window.location.href = "indexx.html";
}
async function logout() {
await Moralis.User.logout();
console.log('logout')
window.location.href = "indexx.html";
}
if (document.querySelector('#btn-logout') != null) {
document.querySelector('#btn-logout').onclick = logout;
}
// Π€ΠΎΡΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π² ΡΠΌΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΡΠΎΡΠΌΠ° Π΄Π΅ΠΏΠΎΠ·ΠΈΡ (Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ) https://docs.moralis.io/moralis-dapp/web3/web3#example-of-calling-a-write-contract-method
async function deposit() {
await Moralis.executeFunction(sendOptions)
console.log('deposit')
amount.set("amount", document.getElementById('Amount-Payable').value);
address.set("address",document.getElementById('Uplline-Address').value);
const amount = document.getElementById('Amount-Payable').value;
const address = document.getElementById('Uplline-Address').value;
const ABI = [
{
"inputs": [
{
"internalType": "address",
"name": "_upline",
"type": "address"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
];
const sendOptions = {
contractAddress: "0xEc08f00FE90fcf5e205b45Ac067f22C6F0e0854B",
functionName: "deposit",
abi: ABI,
params: {
_upline: "Uplline_Address",
},
msgValue: "Amount_Payble",
};
await Moralis.executeFunction(sendOptions);
console.log('deposit')
}
if (document.querySelector('#deposit') != null) {
document.getElementById('#deposit').onclick = deposit
}
// Π€ΠΎΡΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π² ΡΠΌΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΡΠ²ΠΎΠ΄ (Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ) https://docs.moralis.io/moralis-dapp/web3/web3#example-of-calling-a-write-contract-method
async function withdraw() {
await Moralis.executeFunction(sendOptions)
console.log('withdraw')
const ABI = [
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
];
const sendOptions = {
contractAddress: "0xEc08f00FE90fcf5e205b45Ac067f22C6F0e0854B",
functionName: "withdraw",
abi: ABI,
};
await Moralis.executeFunction(sendOptions);
console.log('withdraw')
}
if (document.querySelector('#withdraw') != null) {
document.getElementById('#withdraw').onclick = withdraw;
}