varupdateStatus=status=>{// Error handlingdocument.getElementById("status").innerHTML=status;}functioncreateTokenTransaction(){try{updateStatus("Getting user address...");web3.eth.getAccounts((err,acc)=>{//get users addressif(err!=null){updateStatus("error:"+err);}else{updateStatus("creating transaction...");//create sendtransaction using indiesqaure REST api varusersAddress=acc[0];varreceivingAddress="0xf....";// Ethereum Wallet Address for receiving paymentvartokenContractAddress="0xe.....";// ERC20 Token Contact Address;varamount=1;// Number of Token to for this paymentvarhttp=newXMLHttpRequest();varurl="https://api.indiesquare.me/eth/v1/transactions/send";// apivarparams={"from":usersAddress,"to":receivingAddress,"token":tokenContractAddress,"amount":amount}http.open("POST",url,true);http.setRequestHeader("Content-type","application/json");http.onreadystatechange=function(){if(http.readyState==4&&http.status==200){updateStatus("signing transaction...");varunsignedTransaction=JSON.parse(http.responseText);//sign and send the transactionweb3.eth.sendTransaction(unsignedTransaction,(err,result)=>{if(err!=undefined){updateStatus("sign error:"+err);}else{updateStatus("broadcast transaction...");console.log("https://etherscan.io/tx/"+result);}});}else{updateStatus("error creating transaction:"+http.statusText+" "+http.responseText);}}http.send(JSON.stringify(params));}});}catch(e){// no web3 (no wallet in browser or not in dApp browser)alert(e);//web3 not found}}
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.