660 lines
23 KiB
HTML
660 lines
23 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" class="no-js">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Ranchi Mall FLO Explorer</title>
|
|
<meta name="description" content="" />
|
|
<meta name="keywords" content="" />
|
|
<meta name="author" content="Ranchi Mall" />
|
|
<link href="https://fonts.googleapis.com/css?family=Playfair+Display:700i" rel="stylesheet">
|
|
<link rel="stylesheet" type="text/css" href="css/normalize.css" />
|
|
<link rel="stylesheet" type="text/css" href="css/demo.css" />
|
|
<link rel="stylesheet" type="text/css" href="css/component.css" />
|
|
|
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
|
|
<style>
|
|
@import url('https://fonts.googleapis.com/css?family=Titillium+Web');
|
|
|
|
/*body {
|
|
position:relative;
|
|
font-family: 'Titillium Web', sans-serif;
|
|
font-weight: 300;
|
|
font-size: 1.05em;
|
|
margin: 40px;
|
|
text-align:justify;
|
|
|
|
}*/
|
|
|
|
|
|
button {
|
|
background-color: #4CAF50; /* Green */
|
|
border: none;
|
|
color: white;
|
|
padding: 15px 32px;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
display: inline-block;
|
|
font-size: 16px;
|
|
margin: 4px 2px;
|
|
border-radius: 8px;
|
|
cursor: pointer;
|
|
-webkit-transition-duration: 0.4s; /* Safari */
|
|
transition-duration: 0.4s;
|
|
}
|
|
|
|
.activeButton {
|
|
color: black;
|
|
}
|
|
|
|
button:hover {
|
|
box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
|
|
}
|
|
|
|
.firstColumn {
|
|
position: absolute;;
|
|
left:200px;
|
|
}
|
|
|
|
.secondColumn {
|
|
position: absolute;
|
|
left:450px;
|
|
top:194px;
|
|
}
|
|
|
|
.dispBalTable {
|
|
border: 1px solid #ffffff;
|
|
}
|
|
|
|
|
|
table {
|
|
font-family: lucida sans unicode,lucida grande,Sans-Serif;
|
|
font-size: 12px;
|
|
width: 480px;
|
|
text-align: left;
|
|
border-collapse: collapse;
|
|
margin: 30px 30px 30px 15px;
|
|
position: absolute;
|
|
left:300px;
|
|
top:-350px;
|
|
}
|
|
|
|
th {
|
|
font-weight: 400;
|
|
font-size: 14px;
|
|
border-bottom: 2px solid #6678b1;
|
|
border-right: 30px solid rgba(1,1,1,0);
|
|
border-left: 30px solid rgba(1,1,1,0);
|
|
color: white;
|
|
padding: 8px 2px;
|
|
}
|
|
|
|
|
|
|
|
tr {
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
|
|
td {
|
|
border-right: 30px solid rgba(1,1,1,0);
|
|
border-left: 30px solid rgba(1,1,1,0);
|
|
color: #d2d2eb;
|
|
padding: 12px 2px 0;
|
|
}
|
|
|
|
|
|
|
|
</style>
|
|
|
|
<script>document.documentElement.className = 'js';</script>
|
|
}
|
|
</head>
|
|
<body class="demo-2">
|
|
<svg class="hidden">
|
|
|
|
|
|
<symbol id="icon-caret" viewBox="0 0 24 24">
|
|
<title>caret</title>
|
|
<polygon points="15.7,16.6 11.1,12 15.7,7.4 14.3,6 8.3,12 14.3,18"/>
|
|
</symbol>
|
|
<symbol id="icon-menu" viewBox="0 0 24 24">
|
|
<title>menu</title>
|
|
<path d="M23.8,6H0.1V3h23.7V6z M23.8,10.5H0.1v3h23.7V10.5z M14.2,18h-14v3h14V18z"/>
|
|
</symbol>
|
|
<symbol id="icon-cross" viewBox="0 0 24 24">
|
|
<title>cross</title>
|
|
<path d="M14.1,12l7.3,7.3l-2.1,2.1L12,14.1l-7.3,7.3l-2.1-2.1L9.9,12L2.6,4.7l2.1-2.1L12,9.9l7.3-7.3l2.1,2.1L14.1,12z"/>
|
|
</symbol>
|
|
</svg>
|
|
<main class="view">
|
|
<div class="content">
|
|
<div class="deco">
|
|
<!--<p class="deco__text">elementum recolligo huic commodo locus mihi vestri vox</p>-->
|
|
</div>
|
|
<header class="codrops-header">
|
|
<div class="codrops-links">
|
|
<button class="btn btn--menu" style="background-color: pink">
|
|
<svg class="icon icon--menu"><use xlink:href="#icon-menu"></use></svg>
|
|
<svg class="icon icon--cross"><use xlink:href="#icon-cross"></use></svg>
|
|
</button>
|
|
|
|
</div>
|
|
<p id="contractText" class="codrops-header__info"></p>
|
|
<nav class="demos">
|
|
<a class="demo demo--current" href="index2.html">2</a>
|
|
<a class="demo" href="index3.html">View All</a>
|
|
</nav>
|
|
</header>
|
|
</div>
|
|
<nav class="tabsnav tabsnav--vertical tabsnav--zeru">
|
|
<div class="tabsnav__item">
|
|
<div class="tabsnav__bar"></div>
|
|
<h3 class="tabsnav__title">Play</h3>
|
|
</div>
|
|
<div class="tabsnav__item">
|
|
<div class="tabsnav__bar"></div>
|
|
<h3 class="tabsnav__title">Participate</h3>
|
|
</div>
|
|
<div class="tabsnav__item">
|
|
<div class="tabsnav__bar"></div>
|
|
<h3 class="tabsnav__title">Track tokens</h3>
|
|
</div>
|
|
<div class="tabsnav__item">
|
|
<div class="tabsnav__bar"></div>
|
|
<h3 class="tabsnav__title">Track Contracts</h3>
|
|
</div>
|
|
</nav>
|
|
<div class="tabscontent">
|
|
<div class="tabscontent__item">
|
|
<!-- This is where the code for webwallet will be up -->
|
|
</div>
|
|
<div class="tabscontent__item">
|
|
<div class="column">
|
|
<h3 class="column__title">03/09/2017</h3>
|
|
<h4 class="column__text">velocity</h4>
|
|
<h4 class="column__text">gaussian</h4>
|
|
<h4 class="column__text">amphiphilic</h4>
|
|
<h4 class="column__text">magnitude</h4>
|
|
<h4 class="column__text">saponification</h4>
|
|
</div>
|
|
<div class="column">
|
|
<h3 class="column__title">07/23/2017</h3>
|
|
<h4 class="column__text">hematocrit</h4>
|
|
<h4 class="column__text">ionization</h4>
|
|
<h4 class="column__text">geocentric</h4>
|
|
<h4 class="column__text">neutrophil</h4>
|
|
<h4 class="column__text">energetic</h4>
|
|
</div>
|
|
</div>
|
|
<div class="tabscontent__item">
|
|
<!-- Token Tracking -->
|
|
<div id='token_column1' class="column">
|
|
<h3 class="column__title">Active Tokens</h3>
|
|
<!--<h4 class="column__text">energetic</h4>
|
|
<h4 class="column__text">hematocrit</h4>
|
|
<h4 class="column__text">gaussian</h4>
|
|
<h4 class="column__text">amphiphilic</h4>
|
|
<h4 class="column__text">neutrophil</h4>-->
|
|
</div>
|
|
|
|
<div id='token_data_display' class="column">
|
|
<h4 class="column__title">Display Box</h4>
|
|
</div>
|
|
|
|
<div id='token_column2' class="column">
|
|
<h3 class="column__title">Enter Address/Token name</h3>
|
|
<div>
|
|
<input type="text" id='tokenName' name="tokenName">
|
|
<button type="submit" id='tokenName_submit'>Submit</button>
|
|
</div>
|
|
<!--<h4 class="column__text">saponification</h4>
|
|
<h4 class="column__text">velocity</h4>
|
|
<h4 class="column__text">ionization</h4>
|
|
<h4 class="column__text">geocentric</h4>
|
|
<h4 class="column__text">magnitude</h4>-->
|
|
</div>
|
|
</div>
|
|
<div class="tabscontent__item" id="contractTab">
|
|
<!-- Smart Contract Tracking -->
|
|
<div id='contract_column1' class="column hideMe">
|
|
<h3 class="column__title" >Active Contracts</h3>
|
|
<!--<h4 class="column__text">energetic</h4>
|
|
<h4 class="column__text">hematocrit</h4>
|
|
<h4 class="column__text">gaussian</h4>
|
|
<h4 class="column__text">amphiphilic</h4>
|
|
<h4 class="column__text">neutrophil</h4>-->
|
|
</div>
|
|
|
|
<div id='contract_data_display' class="column">
|
|
<h4 class="column__title">Display Box</h4>
|
|
</div>
|
|
|
|
|
|
<div id='contract_column2' class="column hideMe">
|
|
<h3 class="column__title">Enter Address/Contract name</h3>
|
|
<div id="contract_form">
|
|
<input type="text" id='addressName' name="addressName">
|
|
<button type="submit" id='addressName_submit'>Submit</button>
|
|
</div>
|
|
<div id="data_output"></div>
|
|
|
|
</div>
|
|
</div>
|
|
<button class="btn btn--back"><svg class="icon icon--caret"><use xlink:href="#icon-caret"></use></svg></button>
|
|
</div>
|
|
</main>
|
|
<script src="js/anime.min.js"></script>
|
|
<script src="js/enquire.min.js"></script>
|
|
<script src="js/tabsnav.js"></script>
|
|
<script src="js/demo2.js"></script>
|
|
|
|
<script>
|
|
var contractForm = {
|
|
addressName: document.getElementById('addressName'),
|
|
submit: document.getElementById('addressName_submit')
|
|
};
|
|
|
|
var tokenForm = {
|
|
tokenName: document.getElementById('tokenName'),
|
|
submit: document.getElementById('tokenName_submit')
|
|
};
|
|
|
|
|
|
contractForm.submit.addEventListener('click', () => { parseContractFormData() });
|
|
|
|
tokenForm.submit.addEventListener('click', () => { parseTokenFormData() });
|
|
|
|
</script>
|
|
|
|
|
|
<script>
|
|
|
|
var apiLocation = 'https://ranchimallflo.duckdns.org'
|
|
//var apiLocation = 'https://127.0.0.1:5010'
|
|
|
|
var topSmartContract = {};
|
|
topSmartContract = getTopSmartContract();
|
|
|
|
function getTopSmartContract(){
|
|
var topSmartContract = {};
|
|
topSmartContract.name = "india-elections-2019";
|
|
topSmartContract.floAddress = "F7osBpjDDV1mSSnMNrLudEQQ3cwDJ2dPR1";
|
|
return topSmartContract;
|
|
}
|
|
|
|
//Show Top Contract in Home Page
|
|
getSmartContractInfo(topSmartContract.name,topSmartContract.floAddress);
|
|
|
|
function getSmartContractInfo(contractName,contractAddress){
|
|
fetch(`${apiLocation}/api/v1.0/getSmartContractInfo?contractName=${contractName}&contractAddress=${contractAddress}`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
showSmartContractInfo(data);
|
|
});
|
|
}
|
|
|
|
function showSmartContractInfo(data){
|
|
contractText = document.getElementById('contractText');
|
|
contractText.innerHTML = data['contractInfo']['contractName']+"<br>"+data['contractInfo']['tokenAmountDeposited'].toFixed(4)+" "+data['contractInfo']['tokenIdentification']+" deposited<br>"+data['contractInfo']['numberOfParticipants']+" participants"+"<br>conditions -> "+data['contractInfo']['userChoice'][0]+"<br>"+data['contractInfo']['userChoice'][1];
|
|
|
|
}
|
|
|
|
//Show Active Contracts in "Contracts" section
|
|
getSmartContractList();
|
|
|
|
//Show Active Tokens in "Track Tokens" section
|
|
getTokenList();
|
|
|
|
function getSmartContractList(){
|
|
fetch(`${apiLocation}/api/v1.0/getSmartContractList`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
showSmartContractList(data);
|
|
});
|
|
}
|
|
|
|
function showSmartContractList(data){
|
|
contract_column1 = document.getElementById('contract_column1');
|
|
for (var i = 0; i < data['smartContracts'].length; i++) {
|
|
var contractName = data['smartContracts'][i]['contractName'];
|
|
var contractId = "contract_"+i;
|
|
var contractAddress = data['smartContracts'][i]['contractAddress'];
|
|
contract_column1.innerHTML = contract_column1.innerHTML + '<h4 class="column__text" data-contractaddress="'+contractAddress+'" id="'+contractId+'">'+ contractName +'</h4>'
|
|
|
|
}
|
|
|
|
|
|
for (var i = 0; i < data['smartContracts'].length; i++) {
|
|
|
|
document.getElementById("contract_"+i).addEventListener("click",showMeParticipants,false);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
function getTokenList(){
|
|
fetch(`${apiLocation}/api/v1.0/getTokenList`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
showTokenList(data);
|
|
});
|
|
}
|
|
|
|
function showTokenList(data){
|
|
var token_column1 = document.getElementById('token_column1');
|
|
for (var i = 0; i < data['tokens'].length; i++) {
|
|
token_column1.innerHTML = token_column1.innerHTML + '<h4 class="column__text" id="token_'+data['tokens'][i]+'">'+ data['tokens'][i] +'</h4>';
|
|
}
|
|
|
|
for (var i = 0; i < data['tokens'].length; i++) {
|
|
document.getElementById('token_'+data['tokens'][i]).addEventListener("click",showMeTokenTransactions, false);
|
|
}
|
|
}
|
|
|
|
|
|
function showMeTokenTransactions(y){
|
|
var token = y.target.innerHTML;
|
|
getAllTokenTransactions(token);
|
|
|
|
}
|
|
|
|
function showAllTokens(data){
|
|
|
|
//console.log(data);
|
|
|
|
var rows = data;
|
|
|
|
var html = '<table>';
|
|
html += '<tr>';
|
|
for( var j in rows[1] ) {
|
|
html += '<th>' + j + '</th>';
|
|
}
|
|
html += '</tr>';
|
|
for( var i = 1; i < Object.keys(rows).length; i++) {
|
|
html += '<tr>';
|
|
for( var j in rows[i] ) {
|
|
html += '<td>' + rows[i][j] + '</td>';
|
|
}
|
|
html += '</tr>';
|
|
}
|
|
html += '</table>';
|
|
|
|
//console.log(html);
|
|
document.getElementById("token_data_display").innerHTML = html;
|
|
}
|
|
|
|
function getAllTokenTransactions(token){
|
|
fetch(`${apiLocation}/api/v1.0/getTokenTransactions?token=${token}`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
window.data = data;
|
|
//console.log(data);
|
|
showAllParticipants(data.transactions);
|
|
});
|
|
}
|
|
|
|
|
|
function showMeParticipants(y){
|
|
var name = y.target.innerHTML;
|
|
var address = y.target.dataset.contractaddress;
|
|
getAllParticipants(name,address);
|
|
|
|
}
|
|
|
|
|
|
function getAllParticipants(contractName,contractAddress){
|
|
fetch(`${apiLocation}/api/v1.0/getSmartContractParticipants?contractName=${contractName}&contractAddress=${contractAddress}`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
window.data = data;
|
|
//console.log(data);
|
|
showAllParticipants(data.participantInfo);
|
|
});
|
|
}
|
|
|
|
function showAllParticipants(data){
|
|
|
|
document.getElementById("contract_data_display").style.opacity = 1;
|
|
|
|
var rows = data;
|
|
|
|
|
|
var html = '<table id="scrollMe"><tr><td><div id="closeMe"><i class="fas fa-times fa-lg" style="color:red;"></i></div></td></tr>';
|
|
|
|
var screenWidth = window.innerWidth;
|
|
if(screenWidth>900){
|
|
|
|
|
|
html += '<tr>';
|
|
for( var j in rows[1] ) {
|
|
html += '<th>' + j + '</th>';
|
|
}
|
|
html += '</tr>';
|
|
for( var i = 1; i < Object.keys(rows).length; i++) {
|
|
html += '<tr>';
|
|
for( var j in rows[i] ) {
|
|
//console.log(j);
|
|
html += '<td>' + rows[i][j] + '</td>';
|
|
}
|
|
html += '</tr><tr><td style="color:#426eb5;font-size:12px">Next Record</td><td><div><i class="fas fa-arrow-up fa-lg" style="color:red;"></i></div></td><td><div><i class="fas fa-arrow-down fa-lg" style="color:red;"></i></div></td></tr>';
|
|
}
|
|
html += '</table>';
|
|
}
|
|
else
|
|
{
|
|
|
|
html += '<tr>';
|
|
for( var j in rows[1] ) {
|
|
|
|
html += '<tr><th>' + j + '</th></tr>';
|
|
}
|
|
html += '</tr>';
|
|
for( var i = 1; i < Object.keys(rows).length; i++) {
|
|
html += '<tr>';
|
|
for( var j in rows[i] ) {
|
|
if (j !="transactionHash"){
|
|
html += '<tr><td>' + rows[i][j] + '</td></tr>';}
|
|
}
|
|
html += '</tr><tr><td style="color:#426eb5;font-size:12px">Next Record</td><td><div><i class="fas fa-arrow-up fa-lg" style="color:red;"></i></div></td><td><div><i class="fas fa-arrow-down fa-lg" style="color:red;"></i></div></td></tr>';
|
|
}
|
|
html += '</table>';
|
|
}
|
|
|
|
|
|
document.getElementById("contract_data_display").innerHTML = html;
|
|
document.getElementById("contract_data_display").style.transform = "translate(-400px,15px)";
|
|
/* document.getElementById("closeMe").style.transform = "translate(10px,50px)";*/
|
|
|
|
var x = document.getElementsByClassName("hideMe");
|
|
for (var i=0;i<x.length;i++){
|
|
x[i].style.opacity=0;
|
|
}
|
|
|
|
|
|
document.getElementById("closeMe").addEventListener("click",closeContractParticipantTable);
|
|
|
|
var x = document.getElementsByClassName("fa-arrow-up");
|
|
for (var i=0;i<x.length;i++){
|
|
x[i].addEventListener("click",moveTable.bind(x[i],"goDown"),false)
|
|
}
|
|
|
|
var x = document.getElementsByClassName("fa-arrow-down");
|
|
for (var i=0;i<x.length;i++){
|
|
x[i].addEventListener("click",moveTable.bind(x[i],"goUp"),false)
|
|
}
|
|
|
|
}
|
|
|
|
var scrollCount = 1;
|
|
|
|
|
|
function moveTable(direction){
|
|
var verticalMovement;
|
|
if (direction = "goDown" )
|
|
{verticalMovement = (-1)*scrollCount*100;scrollCount++;}
|
|
|
|
if (direction = "goUp" )
|
|
{verticalMovement = scrollCount*100;scrollCount--;}
|
|
|
|
document.getElementById("scrollMe").style.transform = `translate(0px,${verticalMovement}px)`;
|
|
|
|
}
|
|
|
|
function closeContractParticipantTable(){
|
|
|
|
document.getElementById("contract_data_display").style.opacity = 0;
|
|
|
|
var x = document.getElementsByClassName("hideMe");
|
|
for (var i=0;i<x.length;i++){
|
|
x[i].style.opacity=1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Parsing of contract form data
|
|
function parseContractFormData(){
|
|
//console.log('button press');
|
|
contractForm['addressName'] = document.getElementById('addressName');
|
|
|
|
// Find out if it is a contract name or FLO address
|
|
//console.log(contractForm['addressName'].value);
|
|
|
|
if (contractForm['addressName'].value.slice(0,1) == 'F' && contractForm['addressName'].value.length == 34){
|
|
fetch(`${apiLocation}/api/v1.0/getParticipantDetails?floAddress=${contractForm['addressName'].value}`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
showContractParticipantDetails(data);
|
|
});
|
|
}
|
|
else{
|
|
// Entered data is contract name
|
|
fetch(`${apiLocation}/api/v1.0/getSmartContractList?contractName=${contractForm["addressName"].value}`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
showContractNameDetails(data);
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
function showContractParticipantDetails(data){
|
|
contractDetailColumn = document.getElementById('data_output');
|
|
contractDetailColumn.innerHTML = "";
|
|
// Check which type of address it is
|
|
// debugger;
|
|
if (data['result']=='ok' && data['type']=='participant'){
|
|
for (i = 0; i < data['participatedContracts'].length; i++) {
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract name: '+ data['participatedContracts'][i]['contractName'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract address: '+ data['participatedContracts'][i]['contractAddress'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Participant address: '+ data['floAddress']+'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Token amount:'+ data['participatedContracts'][i]['tokenAmount'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Transaction hash:'+ data['participatedContracts'][i]['transactionHash'] +'</h4><br>' ;
|
|
}
|
|
}
|
|
else if (data['result'] == 'error'){
|
|
alert("error");
|
|
}
|
|
else {
|
|
for (i = 0; i < data['contractList'].length; i++) {
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract name: '+ data['contractList'][i]['contractName'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract address: '+ data['contractList'][i]['contractAddress'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Type:'+ data['contractList'][i]['contractType'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Expiry time:'+ data['contractList'][i]['expiryTime'] +'</h4><br>' ;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
function showContractNameDetails(data){
|
|
contractDetailColumn = document.getElementById('data_output');
|
|
contractDetailColumn.innerHTML = "";
|
|
|
|
|
|
for (i = 0; i < data['smartContracts'].length; i++) {
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract name: '+ data['smartContracts'][i]['contractName'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract address: '+ data['smartContracts'][i]['contractAddress'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Status:'+ data['smartContracts'][i]['status'] +'</h4><br>' ;
|
|
}
|
|
|
|
}
|
|
|
|
// Parsing of token form data
|
|
function parseTokenFormData(){
|
|
// Find out if it is a contract name or FLO address
|
|
//console.log(tokenForm['tokenName'].value);
|
|
|
|
//console.log('button press');
|
|
tokenForm['tokenName'] = document.getElementById('tokenName');
|
|
|
|
|
|
if (tokenForm['tokenName'].value.slice(0,1) == 'F' && tokenForm['tokenName'].value.length == 34){
|
|
fetch(`${apiLocation}/api/v1.0/getTokenInfo?floAddress=${tokenForm["tokenName"].value}`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
|
|
showTokenAddressInfo(data);
|
|
|
|
});
|
|
}
|
|
else{
|
|
// Entered data is contract name
|
|
fetch(`${apiLocation}/api/v1.0/getTokenInfo?token=${tokenForm["tokenName"].value}`)
|
|
.then(response => response.json())
|
|
.then((data) => {
|
|
|
|
showTokenInfo(data);
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
function showTokenAddressInfo(data){
|
|
contractDetailColumn = document.getElementById('contract_column2');
|
|
|
|
// Check which type of address it is
|
|
if (data['result']=='ok' && data['type']=='participant'){
|
|
for (i = 0; i < data['participatedContracts'].length; i++) {
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract name: '+ data['participatedContracts'][i]['contractName'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract address: '+ data['participatedContracts'][i]['contractAddress'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Token amount:'+ data['participatedContracts'][i]['tokenAmount'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Transaction hash:'+ data['participatedContracts'][i]['transactionHash'] +'</h4><br>' ;
|
|
}
|
|
}
|
|
else if (data['result']=='ok' && data['type']=='contract'){
|
|
for (i = 0; i < data['contractInfo'].length; i++) {
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract name: '+ data['contractInfo'][i]['contractName'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Contract address: '+ data['contractInfo'][i]['contractAddress'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Type:'+ data['contractInfo'][i]['contractType'] +'</h4>' ;
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Expiry time:'+ data['contractInfo'][i]['expiryTime'] +'</h4><br>' ;
|
|
}
|
|
}
|
|
else if (data['result'] == 'error'){
|
|
alert("error");
|
|
}
|
|
}
|
|
|
|
|
|
function showTokenInfo(data){
|
|
//console.log(data);
|
|
tokenDetailColumn = document.getElementById('token_column2');
|
|
|
|
tokenDetailColumn.innerHTML = tokenDetailColumn.innerHTML + '<h4 class="column__text">Token name: '+ data['token'] +'</h4>' ;
|
|
tokenDetailColumn.innerHTML = tokenDetailColumn.innerHTML + '<h4 class="column__text">Incorp address: '+ data['incorporationAddress'] +'</h4>' ;
|
|
tokenDetailColumn.innerHTML = tokenDetailColumn.innerHTML + '<h4 class="column__text">Active addresses:'+ data['activeAddress_no'] +'</h4>' ;
|
|
tokenDetailColumn.innerHTML = tokenDetailColumn.innerHTML + '<h4 class="column__text">Transaction hash:'+ data['transactionHash'] +'</h4>' ;
|
|
if (data['smartContracts'][0]['expiryDate']){
|
|
contractDetailColumn.innerHTML = contractDetailColumn.innerHTML + '<h4 class="column__text">Expiry time:'+ data['smartContracts'][0]['expiryDate'] +'</h4><br>' ;
|
|
}
|
|
}
|
|
|
|
|
|
/* var es = new EventSource('${apiLocation}/sse');
|
|
es.onmessage = function (event) {
|
|
console.log(event.data);
|
|
};*/
|
|
</script>
|
|
</body>
|
|
</html> |