Dear all, I have followed exactly Flipâs tutorial on youtube on how to build a DEX How to Create a DEX Like Uniswap FULL COURSE - YouTube]. I have followed exactly the steps and the code. However after replacing the new init syntax
Moralis.start({ serverUrl: âhttps://a1zxiyoi7jle.moralishost.com:2053/serverâ, appId: âLtCAPag9Kl1f9oOtxJ5jr7xV9KbuBJbSklemDqvKâ });
I have replaced it with my own moralis server and appID.
I encounter an issue when i click on swap it pops up a message says âSwap Completeâ . where could i have gone wrong?
Code as follows
let currentTrade = {};
let currentSelectSide;
let tokens;
async function init(){
await Moralis.initPlugins(); await Moralis.enable(); await listAvailableTokens(); currentUser = Moralis.User.current(); if(currentUser){ document.getElementById("swap_button").disabled = false; }
}
async function listAvailableTokens(){
tokens ={ "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":{ "symbol":"BNB", "name":"BNB", "decimals": 18, "address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "logoURI":"https://tokens.1inch.io/0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c.png", }, "0x73d8Fd2a7e264b0c19cB981294C0cd11389Cc0b8":{ "symbol":"SKIDDO", "name":"SKIDDO", "decimals": 9, "address":"0x73d8Fd2a7e264b0c19cB981294C0cd11389Cc0b8", "logoURI":"https://static.wixstatic.com/media/c1d670_ae9ca0fd367c4faa9d5caca280c917b7~mv2.png", }, }; let parent = document.getElementById("token_list"); for( const address in tokens){ let token = tokens[address]; let div = document.createElement("div"); div.setAttribute("data-address", address) div.className = "token_row"; let html = ` <img class="token_list_img" src="${token.logoURI}"> <span class="token_list_text">${token.symbol}</span> ` div.innerHTML = html; div.onclick = (() => {selectToken(address)}); parent.appendChild(div); } } function selectToken(address){ closeModal(); console.log(tokens); currentTrade[currentSelectSide] = tokens[address]; console.log(currentTrade); renderInterface(); getQuote(); } function renderInterface(){ if(currentTrade.from){ document.getElementById("from_token_img").src = currentTrade.from.logoURI; document.getElementById("from_token_text").innerHTML = currentTrade.from.symbol; } if(currentTrade.to){ document.getElementById("to_token_img").src = currentTrade.to.logoURI; document.getElementById("to_token_text").innerHTML = currentTrade.to.symbol; } } async function login() { try { currentUser = Moralis.User.current(); if(!currentUser){ currentUser = await Moralis.authenticate(); } document.getElementById("swap_button").disabled = false; } catch (error) { console.log(error); } } function openModal(side){ currentSelectSide = side; document.getElementById("token_modal").style.display = "block"; } function closeModal(){ document.getElementById("token_modal").style.display = "none"; } async function getQuote(){ if(!currentTrade.from || !currentTrade.to || !document.getElementById("from_amount").value) return; let amount = Number( document.getElementById("from_amount").value * 10**currentTrade.from.decimals ) const quote = await Moralis.Plugins.oneInch.quote({ chain: 'bsc', // The blockchain you want to use (eth/bsc/polygon) fromTokenAddress: currentTrade.from.address, // The token you want to swap toTokenAddress: currentTrade.to.address, // The token you want to receive amount: amount, }) console.log(quote); document.getElementById("gas_estimate").innerHTML = quote.estimatedGas; document.getElementById("to_amount").value = quote.toTokenAmount / (10**quote.toToken.decimals) } async function trySwap(){ let address = Moralis.User.current().get("ethAddress"); let amount = Number( document.getElementById("from_amount").value * 10**currentTrade.from.decimals ) if(currentTrade.from.symbol !== "ETH"){ allowance = await Moralis.Plugins.oneInch.hasAllowance({ chain: 'bsc', // The blockchain you want to use (eth/bsc/polygon) fromTokenAddress: currentTrade.from.address, // The token you want to swap fromAddress: address, // Your wallet address amount: amount, }) console.log(allowance); if(!allowance){ await Moralis.Plugins.oneInch.approve({ chain: 'bsc', // The blockchain you want to use (eth/bsc/polygon) tokenAddress: currentTrade.from.address, // The token you want to swap fromAddress: address, // Your wallet address }); } } try { let receipt = await doSwap(address, amount); alert("Swap Complete"); } catch (error) { console.log(error); } } function doSwap(userAddress, amount){ return Moralis.Plugins.oneInch.swap({ chain: 'bsc', // The blockchain you want to use (eth/bsc/polygon) fromTokenAddress: currentTrade.from.address, // The token you want to swap toTokenAddress: currentTrade.to.address, // The token you want to receive amount: amount, fromAddress: userAddress, // Your wallet address slippage: 15, }); } init(); document.getElementById("modal_close").onclick = closeModal; document.getElementById("from_token_select").onclick = (() => {openModal("from")}); document.getElementById("to_token_select").onclick = (() => {openModal("to")}); document.getElementById("login_button").onclick = login; document.getElementById("from_amount").onblur = getQuote; document.getElementById("swap_button").onclick = trySwap;