Delete js directory
This commit is contained in:
parent
e998aad281
commit
ff7f10ab51
11
js/components.min.js
vendored
11
js/components.min.js
vendored
File diff suppressed because one or more lines are too long
305
js/main_UI.js
305
js/main_UI.js
@ -1,305 +0,0 @@
|
|||||||
// Global variables
|
|
||||||
const appPages = ['dashboard', 'settings'];
|
|
||||||
const domRefs = {};
|
|
||||||
let timerId;
|
|
||||||
const currentYear = new Date().getFullYear();
|
|
||||||
|
|
||||||
//Checks for internet connection status
|
|
||||||
if (!navigator.onLine)
|
|
||||||
notify(
|
|
||||||
"There seems to be a problem connecting to the internet, Please check you internet connection.",
|
|
||||||
"error",
|
|
||||||
{ sound: true }
|
|
||||||
);
|
|
||||||
window.addEventListener("offline", () => {
|
|
||||||
notify(
|
|
||||||
"There seems to be a problem connecting to the internet, Please check you internet connection.",
|
|
||||||
"error",
|
|
||||||
{ pinned: true, sound: true }
|
|
||||||
);
|
|
||||||
});
|
|
||||||
window.addEventListener("online", () => {
|
|
||||||
getRef("notification_drawer").clearAll();
|
|
||||||
notify("We are back online.", "success");
|
|
||||||
});
|
|
||||||
|
|
||||||
// Use instead of document.getElementById
|
|
||||||
function getRef(elementId) {
|
|
||||||
if (!domRefs.hasOwnProperty(elementId)) {
|
|
||||||
domRefs[elementId] = {
|
|
||||||
count: 1,
|
|
||||||
ref: null,
|
|
||||||
};
|
|
||||||
return document.getElementById(elementId);
|
|
||||||
} else {
|
|
||||||
if (domRefs[elementId].count < 3) {
|
|
||||||
domRefs[elementId].count = domRefs[elementId].count + 1;
|
|
||||||
return document.getElementById(elementId);
|
|
||||||
} else {
|
|
||||||
if (!domRefs[elementId].ref)
|
|
||||||
domRefs[elementId].ref = document.getElementById(elementId);
|
|
||||||
return domRefs[elementId].ref;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// returns dom with specified element
|
|
||||||
function createElement(tagName, options) {
|
|
||||||
const { className, textContent, innerHTML, attributes = {} } = options
|
|
||||||
const elem = document.createElement(tagName)
|
|
||||||
for (let attribute in attributes) {
|
|
||||||
elem.setAttribute(attribute, attributes[attribute])
|
|
||||||
}
|
|
||||||
if (className)
|
|
||||||
elem.className = className
|
|
||||||
if (textContent)
|
|
||||||
elem.textContent = textContent
|
|
||||||
if (innerHTML)
|
|
||||||
elem.innerHTML = innerHTML
|
|
||||||
return elem
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use when a function needs to be executed after user finishes changes
|
|
||||||
const debounce = (callback, wait) => {
|
|
||||||
let timeoutId = null;
|
|
||||||
return (...args) => {
|
|
||||||
window.clearTimeout(timeoutId);
|
|
||||||
timeoutId = window.setTimeout(() => {
|
|
||||||
callback.apply(null, args);
|
|
||||||
}, wait);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Limits the rate of function execution
|
|
||||||
function throttle(func, delay) {
|
|
||||||
// If setTimeout is already scheduled, no need to do anything
|
|
||||||
if (timerId) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Schedule a setTimeout after delay seconds
|
|
||||||
timerId = setTimeout(function () {
|
|
||||||
func();
|
|
||||||
|
|
||||||
// Once setTimeout function execution is finished, timerId = undefined so that in
|
|
||||||
// the next scroll event function execution can be scheduled by the setTimeout
|
|
||||||
timerId = undefined;
|
|
||||||
}, delay);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Stack {
|
|
||||||
constructor() {
|
|
||||||
this.items = [];
|
|
||||||
}
|
|
||||||
push(element) {
|
|
||||||
this.items.push(element);
|
|
||||||
}
|
|
||||||
pop() {
|
|
||||||
if (this.items.length == 0)
|
|
||||||
return "Underflow";
|
|
||||||
return this.items.pop();
|
|
||||||
}
|
|
||||||
peek() {
|
|
||||||
return this.items[this.items.length - 1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// function required for popups or modals to appear
|
|
||||||
function showPopup(popupId, pinned) {
|
|
||||||
zIndex++
|
|
||||||
getRef(popupId).setAttribute('style', `z-index: ${zIndex}`)
|
|
||||||
popupStack = getRef(popupId).show({ pinned, popupStack })
|
|
||||||
return getRef(popupId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// hides the popup or modal
|
|
||||||
function hidePopup() {
|
|
||||||
if (popupStack.peek() === undefined)
|
|
||||||
return;
|
|
||||||
popupStack.peek().popup.hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
// displays a popup for asking permission. Use this instead of JS confirm
|
|
||||||
const getConfirmation = (title, message, cancelText = 'Cancel', confirmText = 'OK') => {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
showPopup('confirmation_popup', true)
|
|
||||||
getRef('confirm_title').textContent = title;
|
|
||||||
getRef('confirm_message').textContent = message;
|
|
||||||
let cancelButton = getRef('confirmation_popup').children[2].children[0],
|
|
||||||
submitButton = getRef('confirmation_popup').children[2].children[1]
|
|
||||||
submitButton.textContent = confirmText
|
|
||||||
cancelButton.textContent = cancelText
|
|
||||||
submitButton.onclick = () => {
|
|
||||||
hidePopup()
|
|
||||||
resolve(true);
|
|
||||||
}
|
|
||||||
cancelButton.onclick = () => {
|
|
||||||
hidePopup()
|
|
||||||
resolve(false);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// displays a popup for asking user input. Use this instead of JS prompt
|
|
||||||
async function getPromptInput(title, message = '', isPassword = true, cancelText = 'Cancel', confirmText = 'OK') {
|
|
||||||
showPopup('prompt_popup', true)
|
|
||||||
getRef('prompt_title').textContent = title;
|
|
||||||
let input = getRef('prompt_input');
|
|
||||||
input.setAttribute("placeholder", message)
|
|
||||||
let buttons = getRef('prompt_popup').querySelectorAll("sm-button");
|
|
||||||
if (isPassword)
|
|
||||||
input.setAttribute("type", "text")
|
|
||||||
else
|
|
||||||
input.setAttribute("type", "password")
|
|
||||||
input.focusIn()
|
|
||||||
buttons[0].textContent = cancelText;
|
|
||||||
buttons[1].textContent = confirmText;
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
buttons[0].onclick = () => {
|
|
||||||
hidePopup()
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
buttons[1].onclick = () => {
|
|
||||||
let value = input.value;
|
|
||||||
hidePopup()
|
|
||||||
resolve(value)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function for displaying toast notifications. pass in error for mode param if you want to show an error.
|
|
||||||
function notify(message, mode, options = {}) {
|
|
||||||
const { pinned = false, sound = false } = options
|
|
||||||
let icon
|
|
||||||
switch (mode) {
|
|
||||||
case 'success':
|
|
||||||
icon = `<svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 15.172l9.192-9.193 1.415 1.414L10 18l-6.364-6.364 1.414-1.414z"/></svg>`
|
|
||||||
break;
|
|
||||||
case 'error':
|
|
||||||
icon = `<svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-7v2h2v-2h-2zm0-8v6h2V7h-2z"/></svg>`
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
getRef("notification_drawer").push(message, { pinned, icon });
|
|
||||||
if (navigator.onLine && sound) {
|
|
||||||
getRef("notification_sound").currentTime = 0;
|
|
||||||
getRef("notification_sound").play();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getFormatedTime(time, relative) {
|
|
||||||
try {
|
|
||||||
if (String(time).indexOf("_")) time = String(time).split("_")[0];
|
|
||||||
const intTime = parseInt(time);
|
|
||||||
if (String(intTime).length < 13) time *= 1000;
|
|
||||||
let timeFrag = new Date(intTime).toString().split(" "),
|
|
||||||
day = timeFrag[0],
|
|
||||||
month = timeFrag[1],
|
|
||||||
date = timeFrag[2],
|
|
||||||
year = timeFrag[3],
|
|
||||||
minutes = new Date(intTime).getMinutes(),
|
|
||||||
hours = new Date(intTime).getHours(),
|
|
||||||
currentTime = new Date().toString().split(" ");
|
|
||||||
|
|
||||||
minutes = minutes < 10 ? `0${minutes}` : minutes;
|
|
||||||
let finalHours = ``;
|
|
||||||
if (hours > 12) finalHours = `${hours - 12}:${minutes}`;
|
|
||||||
else if (hours === 0) finalHours = `12:${minutes}`;
|
|
||||||
else finalHours = `${hours}:${minutes}`;
|
|
||||||
|
|
||||||
finalHours = hours >= 12 ? `${finalHours} PM` : `${finalHours} AM`;
|
|
||||||
if (relative) {
|
|
||||||
return `${date} ${month} ${year}`;
|
|
||||||
} else return `${finalHours} ${month} ${date} ${year}`;
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
return time;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('hashchange', e => showPage(window.location.hash))
|
|
||||||
window.addEventListener("load", () => {
|
|
||||||
document.body.classList.remove('hide-completely')
|
|
||||||
showPage(window.location.hash)
|
|
||||||
// document.querySelectorAll('sm-input[data-flo-id]').forEach(input => input.customValidation = validateAddr)
|
|
||||||
document.addEventListener('keyup', (e) => {
|
|
||||||
if (e.code === 'Escape') {
|
|
||||||
hidePopup()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
document.addEventListener("pointerdown", (e) => {
|
|
||||||
if (e.target.closest("button, sm-button:not([disabled]), .interact")) {
|
|
||||||
createRipple(e, e.target.closest("button, sm-button, .interact"));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
document.addEventListener('copy', () => {
|
|
||||||
notify('copied', 'success')
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
function createRipple(event, target) {
|
|
||||||
const circle = document.createElement("span");
|
|
||||||
const diameter = Math.max(target.clientWidth, target.clientHeight);
|
|
||||||
const radius = diameter / 2;
|
|
||||||
const targetDimensions = target.getBoundingClientRect();
|
|
||||||
circle.style.width = circle.style.height = `${diameter}px`;
|
|
||||||
circle.style.left = `${event.clientX - (targetDimensions.left + radius)}px`;
|
|
||||||
circle.style.top = `${event.clientY - (targetDimensions.top + radius)}px`;
|
|
||||||
circle.classList.add("ripple");
|
|
||||||
const rippleAnimation = circle.animate(
|
|
||||||
[
|
|
||||||
{
|
|
||||||
transform: "scale(3)",
|
|
||||||
opacity: 0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
{
|
|
||||||
duration: 1000,
|
|
||||||
fill: "forwards",
|
|
||||||
easing: "ease-out",
|
|
||||||
}
|
|
||||||
);
|
|
||||||
target.append(circle);
|
|
||||||
rippleAnimation.onfinish = () => {
|
|
||||||
circle.remove();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function showPage(targetPage, options = {}) {
|
|
||||||
const { firstLoad, hashChange } = options
|
|
||||||
let pageId
|
|
||||||
if (targetPage === '') {
|
|
||||||
pageId = 'overview_page'
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
pageId = targetPage.includes('#') ? targetPage.split('#')[1] : targetPage
|
|
||||||
}
|
|
||||||
if(!appPages.includes(pageId)) return
|
|
||||||
document.querySelector('.page:not(.hide-completely)').classList.add('hide-completely')
|
|
||||||
document.querySelector('.nav-list__item--active').classList.remove('nav-list__item--active')
|
|
||||||
getRef(pageId).classList.remove('hide-completely')
|
|
||||||
getRef(pageId).animate([
|
|
||||||
{
|
|
||||||
opacity: 0,
|
|
||||||
transform: 'translateX(-1rem)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
opacity: 1,
|
|
||||||
transform: 'none'
|
|
||||||
},
|
|
||||||
],
|
|
||||||
{
|
|
||||||
duration: 300,
|
|
||||||
easing: 'ease'
|
|
||||||
})
|
|
||||||
const targetListItem = document.querySelector(`.nav-list__item[href="#${pageId}"]`)
|
|
||||||
targetListItem.classList.add('nav-list__item--active')
|
|
||||||
if (firstLoad && window.innerWidth > 640 && targetListItem.getBoundingClientRect().top > getRef('side_nav').getBoundingClientRect().height) {
|
|
||||||
getRef('side_nav').scrollTo({
|
|
||||||
top: (targetListItem.getBoundingClientRect().top - getRef('side_nav').getBoundingClientRect().top + getRef('side_nav').scrollTop),
|
|
||||||
behavior: 'smooth'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if (hashChange && window.innerWidth < 640) {
|
|
||||||
getRef('side_nav').close()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
263
js/script.js
263
js/script.js
@ -1,263 +0,0 @@
|
|||||||
//check the constraints
|
|
||||||
let trlist;
|
|
||||||
let tree;
|
|
||||||
path=new Array();
|
|
||||||
|
|
||||||
document.getElementById("trbtn").addEventListener('click',()=>{
|
|
||||||
|
|
||||||
document.getElementById("otp").innerHTML="<br><span class='spinner'><sm-spinner></sm-spinner></span><br>";
|
|
||||||
document.getElementById("waiting").innerHTML="<br>Please wait until the tree is constructed!!<br>Tree will be constructed within 5 minutes!!"
|
|
||||||
let flag=0;
|
|
||||||
let i=0;
|
|
||||||
|
|
||||||
var minutesToAdd=60;
|
|
||||||
currentDate=new Date();
|
|
||||||
futureDate = new Date(currentDate.getTime() + minutesToAdd*1000);
|
|
||||||
setTimeout(()=>{if(futureDate<=new Date()){
|
|
||||||
merkletreepath()
|
|
||||||
}},60000);
|
|
||||||
|
|
||||||
let trid=document.getElementById("trid").value;
|
|
||||||
trlist=trid.split(",");
|
|
||||||
if(trlist.length>="6"){
|
|
||||||
merkletreepath();
|
|
||||||
|
|
||||||
} })
|
|
||||||
|
|
||||||
|
|
||||||
function merkletreepath(){
|
|
||||||
|
|
||||||
let trid=document.getElementById("trid").value;
|
|
||||||
let trlist=trid.split(",");
|
|
||||||
tree=new MerkleTree(trlist);
|
|
||||||
tree.createTree();
|
|
||||||
rootHash=tree.getRootHash();
|
|
||||||
document.getElementById("waiting").innerHTML=" ";
|
|
||||||
document.getElementById("otp").innerHTML="<br><b style='color:black'>Root : </b>";
|
|
||||||
var id1=document.querySelector("#otp");
|
|
||||||
var newdiv= document.createElement('sm-copy')
|
|
||||||
newdiv.value=rootHash;
|
|
||||||
id1.appendChild(newdiv);
|
|
||||||
|
|
||||||
|
|
||||||
//path
|
|
||||||
for(let i=0;i<trlist.length;i++){
|
|
||||||
//let path[i] = tree.getHashPathToRoot(trlist[i]);
|
|
||||||
path.push(tree.getHashPathToRoot(trlist[i]));
|
|
||||||
}
|
|
||||||
otp1.classList.add("scroll");
|
|
||||||
|
|
||||||
for(let i=0;i<trlist.length;i++){
|
|
||||||
|
|
||||||
var id1=document.querySelector("#otp1");
|
|
||||||
var newdiv1= document.createElement('div')
|
|
||||||
newdiv1.innerHTML="<br><b style='color:black'>path["+trlist[i]+"] =</b> ";
|
|
||||||
id1.appendChild(newdiv1);
|
|
||||||
|
|
||||||
var id1=document.querySelector("#otp1");
|
|
||||||
var newdiv= document.createElement('sm-copy')
|
|
||||||
newdiv.value=path[i];
|
|
||||||
id1.appendChild(newdiv);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//writing into cloud
|
|
||||||
options={receiverID:"FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf",comment:"Storing roothash in cloud",application:"Tree_root"}
|
|
||||||
floCloudAPI.sendApplicationData("Merkle_Tree",rootHash,options).then(
|
|
||||||
function(value){
|
|
||||||
let val=value;
|
|
||||||
let arr=new Array();
|
|
||||||
arr=Object.entries(val);
|
|
||||||
document.getElementById('otp3').innerHTML="<b style='color:black'>Unique ID : ";
|
|
||||||
var id1=document.querySelector("#otp3");
|
|
||||||
var newdiv= document.createElement('sm-copy')
|
|
||||||
newdiv.value=arr[0][0];
|
|
||||||
id1.appendChild(newdiv);
|
|
||||||
|
|
||||||
console.log("Written into Cloud");
|
|
||||||
|
|
||||||
},
|
|
||||||
function(error){
|
|
||||||
console.log(error);
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
||||||
//verify path
|
|
||||||
|
|
||||||
document.getElementById("vrbtn").addEventListener('click',()=>{
|
|
||||||
document.getElementById('otp2').innerHTML='<sm-spinner class="spinner"></sm-spinner>'
|
|
||||||
let roothash=document.getElementById("roothash1").value;
|
|
||||||
floCloudAPI.requestApplicationData(roothash,{message:"Merkle_Tree",receiverID:"FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf",application:"Tree_root"}).then(
|
|
||||||
function(value){
|
|
||||||
let unqid=document.getElementById('uniqid').value;
|
|
||||||
let val=value;
|
|
||||||
let res=0;
|
|
||||||
let ab=Object.getOwnPropertyNames(val);
|
|
||||||
if(ab.length==0){
|
|
||||||
res=0;
|
|
||||||
}
|
|
||||||
for(i=0;i<ab.length;i++){
|
|
||||||
if(ab[i]==unqid){
|
|
||||||
res=1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(res==1){
|
|
||||||
document.getElementById("otp2").innerHTML="<span class='otpver'><b style='color:black;'>The Root ' " +roothash+" present in the cloud!!</span>";
|
|
||||||
let veripath=document.getElementById('path11').value;
|
|
||||||
let elem=document.getElementById('ele').value;
|
|
||||||
let trlists=veripath.split(",");
|
|
||||||
tree2=new MerkleTree(trlists);
|
|
||||||
tree2.createTree();
|
|
||||||
path2=tree2.verifyMerkleMembership(elem,roothash,trlists);
|
|
||||||
|
|
||||||
if(path2==true){
|
|
||||||
document.getElementById("otp4").innerHTML="<span class='otpver'><b style='color:black;'>The <b>PATH</b> exists for the Root</span>";
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
document.getElementById("otp4").innerHTML="<span class='otpver'><b style='color:black;'>The <b>PATH </b>does not exists for the Root</span>";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}else{
|
|
||||||
document.getElementById("otp2").innerHTML="<span class='otpver'><b style='color:black;'>The Root ' " +roothash+" ' is not present in the cloud!!</span>";
|
|
||||||
}
|
|
||||||
},
|
|
||||||
function(error){
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
/* function getfrmcloud(){
|
|
||||||
let i=0;
|
|
||||||
let res=0;
|
|
||||||
let unqid=document.getElementById('uniqid').value;
|
|
||||||
let d=new Array();
|
|
||||||
let y=new Array();
|
|
||||||
let w={};
|
|
||||||
w=floDapps.getNextGeneralData(roothash)
|
|
||||||
d=(Object.getOwnPropertyNames(w));
|
|
||||||
// y= Object.values(d);
|
|
||||||
|
|
||||||
for(i=0;i<d.length;i++){
|
|
||||||
if(d[i]==unqid){
|
|
||||||
res=1;
|
|
||||||
}else{
|
|
||||||
res=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.then(
|
|
||||||
function(value){
|
|
||||||
q=floGlobals.generalData;
|
|
||||||
w=new Array();
|
|
||||||
w= Object.entries(q);
|
|
||||||
console.log(w);
|
|
||||||
let checker=roothash.concat("|FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf|Tree_root")
|
|
||||||
for(let i=0;i<w.length;i++){
|
|
||||||
for(let j=0;j<w[i].length;j++){
|
|
||||||
if(w[i][j]==checker){
|
|
||||||
alert("Did it")
|
|
||||||
console.log(w[i][j])
|
|
||||||
}}
|
|
||||||
}*/
|
|
||||||
/* let hash="|";
|
|
||||||
let rid=hash.concat("FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf");
|
|
||||||
let ty=hash.concat("Tree_root");
|
|
||||||
let checker=roothash.concat(rid,ty);
|
|
||||||
for(let i=0;i<q.length;i++){
|
|
||||||
if(Object.getOwnPropertyNames(value)==checker){
|
|
||||||
console.log(checker);
|
|
||||||
console.log("Available")
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
console.log(checker);
|
|
||||||
console.log("Not Available")
|
|
||||||
}
|
|
||||||
|
|
||||||
}*/
|
|
||||||
}/*,
|
|
||||||
function(error){
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}*/)
|
|
||||||
|
|
||||||
/*document.getElementById("vrbtn").addEventListener('click',()=>{
|
|
||||||
let roothash=document.getElementById("roothash1").value;
|
|
||||||
floCloudAPI.requestGeneralData(roothash,{message:"Merkle_Tree",receiverID:"FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf",application:"Tree_root"}).then(
|
|
||||||
function (value){
|
|
||||||
let hash="|";
|
|
||||||
let rid=hash.concat("FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf");
|
|
||||||
// alert(rid);
|
|
||||||
let ty=hash.concat("Tree_root");
|
|
||||||
// alert(ty);
|
|
||||||
let checker=roothash.concat(rid,ty);
|
|
||||||
// alert(checker);
|
|
||||||
let q=floGlobals.generalData;
|
|
||||||
console.log(checker);
|
|
||||||
if(Object.getOwnPropertyNames(q).includes(checker)){
|
|
||||||
alert("This is the index : "+Object.getOwnPropertyNames(q).indexOf(checker))
|
|
||||||
pathchecker()
|
|
||||||
console.log("Available");
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
document.getElementById("otp2").innerHTML="<span class='otpver'><b style='color:black;'>The Root ' " +roothash+" is not present in the cloud!!</span>";
|
|
||||||
console.log("Not available");
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
function(error)
|
|
||||||
{
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
//To check the path can be constructed using the roothash
|
|
||||||
function pathchecker(){
|
|
||||||
let ele=document.getElementById("ele").value;
|
|
||||||
tree=new MerkleTree(trlist);
|
|
||||||
path_string=document.getElementById("path11").value;
|
|
||||||
path1=path_string.split(',')
|
|
||||||
let verification=tree.verifyMerkleMembership(ele,roothash,path1);
|
|
||||||
if(verification==true){
|
|
||||||
document.getElementById("otp2").innerHTML="<span class='otpver'><b style='color:black;'>TRUE!, '"+ele+"' is PRESENT in</b>' "+roothash+" ' !</span>";
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
document.getElementById("otp2").innerHTML="<span class='otpver'><b style='color:black;'>FALSE!, ' "+ele+" ' is NOT PRESENT in</b> ' "+roothash+" ' !</span>";
|
|
||||||
|
|
||||||
}}
|
|
||||||
})*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
p=floDapps.getNextGeneralData("b7ad912a7ab69b1330110f374079630e0b89c3c4b360ed741640126a9833614f")
|
|
||||||
p["1631861808914_FLRWYmzuew3Xr9cayG94PzgDD9WSBJvqde"]
|
|
||||||
p[9]
|
|
||||||
r=Object.getOwnPropertyNames(p)
|
|
||||||
r[0]
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
To check the presence of the roothash
|
|
||||||
Object.getOwnPropertyNames(q["b7da912a7ab69b1330110f374079630e0b89c3c4b360ed741640126a9833614f|FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf|Tree_root"])
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*if(Object.getOwnPropertyNames(q["Merkle_Tree|FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf|TEST_MODE"])!=null){alert(q["Merkle_Tree|FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf|TEST_MODE"])}
|
|
||||||
undefined
|
|
||||||
if(Object.getOwnPropertyNames(q["Merkle_Tree|FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf|TEST_MODE"])!=null){console.log(q["Merkle_Tree|FKAEdnPfjXLHSYwrXQu377ugN4tXU7VGdf|TEST_MODE"])}
|
|
||||||
|
|
||||||
FLO Dapps
|
|
||||||
|
|
||||||
p=floDapps.getNextGeneralData("b7ad912a7ab69b1330110f374079630e0b89c3c4b360ed741640126a9833614f")
|
|
||||||
{}
|
|
||||||
Object.getOwnPropertyNames(p)
|
|
||||||
[]length: 0[[Prototype]]: Array(0)
|
|
||||||
floDapps.getNextGeneralData("b7ad912a7ab69b1330110f374079630e0b89c3c4b360ed741640126a9833614f").hasOwnProperty("b7ad912a7ab69b1330110f374079630e0b89c3c4b360ed741640126a9833614f")
|
|
||||||
false
|
|
||||||
floDapps.getNextGeneralData().hasOwnProperty("b7ad912a7ab69b1330110f374079630e0b89c3c4b360ed741640126a9833614f")
|
|
||||||
*/
|
|
||||||
Loading…
Reference in New Issue
Block a user