'+fork+'
'); } $(second).find(".badge").append(''+content+'
'); $(second).find(".badge").append(''); $(second).appendTo(div); return div; }, printTx : function(tx,fork){ var div = document.createElement('div'); $(div).addClass("table-i"); var title="Note"; var content=tx; var color="purple"; var first = document.createElement('div'); $(first).addClass("table-name "+color); $(first).html(title); $(first).appendTo(div); var second = document.createElement('div'); $(second).addClass("table-value table-value_copy"); $(second).append('Probably a Bitcoin transaction
'); $(second).append(''); if(fork>0) { $(second).find(".badge").append(''+fork+'
'); } $(second).find(".badge").append(''+content+'
'); $(second).find(".badge").append(''); $(second).appendTo(div); return div; }, printFork : function(fork,totfork){ var div = document.createElement('div'); $(div).addClass("table-i"); var title="Fork"; var content="Fork in " + totfork + " paths"; var color="blue"; var first = document.createElement('div'); $(first).addClass("table-name "+color); $(first).html(title); $(first).appendTo(div); var second = document.createElement('div'); $(second).addClass("table-value"); if(fork>0) { $(second).append(''+fork+'
'); } $(second).append(''+content+'
'); $(second).appendTo(div); return div; }, printTimestamp : function(op,arg,result,fork){ var div = document.createElement('div'); $(div).addClass("table-i"); var content = result; if(arg.length>0){ var start = (op=="append") ? content.lastIndexOf(arg) : content.indexOf(arg); var end = start+arg.length; content = result.substring(0, start)+""+arg+""+result.substring(end, result.length) } var title = op+"("+((arg.length>0)?arg.substring(0, 6)+'...':'')+")"; var color="purple"; var first = document.createElement('div'); $(first).addClass("table-name "); $(first).html(title); $(first).appendTo(div); var second = document.createElement('div'); $(second).addClass("table-value"); $(second).append(''); if(fork>0) { $(second).find(".badge").append(''+fork+'
'); } $(second).find(".badge").append(''+content+'
'); $(second).appendTo(div); return div; } } /* * EXTENDS ARRAY */ Array.prototype.remove = Array.prototype.remove || function(val){ var i = this.length; while(i--){ if (this[i] === val){ this.splice(i,1); } } }; /* * COMMON FUNCTIONS */ // Human file size function humanFileSize(bytes, si) { var thresh = si ? 1000 : 1024; if (Math.abs(bytes) < thresh) { return bytes + ' B'; } var units = si ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']; var u = -1; do { bytes /= thresh; ++u; } while (Math.abs(bytes) >= thresh && u < units.length - 1); return bytes.toFixed(1) + ' ' + units[u]; } // Download file function download(filename, text) { var blob = new Blob([text], {type: "octet/stream"}); saveAs(blob, filename + (Proof.isValid(filename) ? '' : '.ots') ); } function string2Bin(str) { var result = []; for (var i = 0; i < str.length; i++) { result.push(str.charCodeAt(i)); } return result; } function bin2String(array) { return String.fromCharCode.apply(String, array); } function ascii2hex(str) { var arr = []; for (var i = 0, l = str.length; i < l; i ++) { var hex = Number(str.charCodeAt(i)).toString(16); if (hex<0x10) { arr.push("0" + hex); } else { arr.push(hex); } } return arr.join(''); } function hex2ascii(hexx) { var hex = hexx.toString();//force conversion var str = ''; for (var i = 0; i < hex.length; i += 2) str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); return str; } function bytesToHex (bytes) { const hex = []; for (var i = 0; i < bytes.length; i++) { hex.push((bytes[i] >>> 4).toString(16)); hex.push((bytes[i] & 0xF).toString(16)); } return hex.join(''); }; function hexToBytes(hex) { const bytes = []; for (var c = 0; c < hex.length; c += 2) { bytes.push(parseInt(hex.substr(c, 2), 16)); } return bytes; }; function upperFirstLetter(string){ return string[0].toUpperCase() + string.substr(1); } // get parameters function getParameterByName(name, url) { if (!url) { url = window.location.href; } name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } /* * STATUS ALERT MESSAGES */ function message(title, text, cssClass, showInfo){ $('#statuses').attr('class','statuses '+cssClass); $('#statuses .statuses-title').html(title); $('#statuses .statuses-description').html(text); message_info(showInfo); $('#statuses').show(); } function message_info(showInfo){ if(showInfo != undefined && showInfo == true){ $('#statuses .statuses-info').show(); } else if(showInfo != undefined && showInfo == false){ $('#statuses .statuses-info').hide(); } } function verifying(text){ message("VERIFYING", text, 'statuses_hashing', true); } function stamping(text){ message("STAMPING", text, 'statuses_hashing', false); } function hashing(text){ message("HASHING", text, 'statuses_hashing', false); } function success(text){ message("SUCCESS!", text, 'statuses_success'); } function failure(text){ message("FAILURE!", text, 'statuses_failure'); } function warning(text){ message("WARNING!", text, 'statuses_warning'); } /* Clipboard */ var clipboard = new Clipboard('.copy', { text: function(event) { var text = $(event).parent().find(".hash").html(); console.log(text); $(".clipboard-copy") .css('display','block') .find('.badge-copy .hash') .html(text); setTimeout(function(){ $(".clipboard-copy").css('display','none'); },3000) return text; } })