ethoFS Upload Reset Bug Fix

This commit is contained in:
Dev-JamesR
2019-10-25 23:03:45 -07:00
parent ab82145a26
commit 1fb88a4fd1
2 changed files with 423 additions and 392 deletions

View File

@@ -52,7 +52,7 @@ class MainGUI {
$("#dlgGeneralError").iziModal(); $("#dlgGeneralError").iziModal();
$("#dlgGeneralError").iziModal("open"); $("#dlgGeneralError").iziModal("open");
$("#btnGeneralErrorOK").click(function() { $("#btnGeneralErrorOK").click(function () {
$("#dlgGeneralError").iziModal("close"); $("#dlgGeneralError").iziModal("close");
}); });
} }
@@ -64,12 +64,12 @@ class MainGUI {
$("#dlgGeneralConfirm").iziModal(); $("#dlgGeneralConfirm").iziModal();
$("#dlgGeneralConfirm").iziModal("open"); $("#dlgGeneralConfirm").iziModal("open");
$("#btnGeneralConfirmYes").click(function() { $("#btnGeneralConfirmYes").click(function () {
$("#dlgGeneralConfirm").iziModal("close"); $("#dlgGeneralConfirm").iziModal("close");
callback(true); callback(true);
}); });
$("#btnGeneralConfirmNo").click(function() { $("#btnGeneralConfirmNo").click(function () {
$("#dlgGeneralConfirm").iziModal("close"); $("#dlgGeneralConfirm").iziModal("close");
callback(false); callback(false);
}); });
@@ -82,12 +82,12 @@ class MainGUI {
$("#dlgAboutInfo").iziModal(); $("#dlgAboutInfo").iziModal();
$("#dlgAboutInfo").iziModal("open"); $("#dlgAboutInfo").iziModal("open");
$("#urlOpenLicence, #urlOpenGitHub").off("click").on("click", function(even) { $("#urlOpenLicence, #urlOpenGitHub").off("click").on("click", function (even) {
event.preventDefault(); event.preventDefault();
ipcRenderer.send("openURL", $(this).attr("href")); ipcRenderer.send("openURL", $(this).attr("href"));
}); });
$("#btnAboutInfoClose").off("click").on("click", function(even) { $("#btnAboutInfoClose").off("click").on("click", function (even) {
$("#dlgAboutInfo").iziModal("close"); $("#dlgAboutInfo").iziModal("close");
}); });
} }
@@ -112,47 +112,47 @@ class MainGUI {
} }
} }
ipcRenderer.on("showAboutDialog", function(event, message) { ipcRenderer.on("showAboutDialog", function (event, message) {
EthoMainGUI.showAboutDialog(message); EthoMainGUI.showAboutDialog(message);
}); });
$("#mainNavBtnTransactions").click(function() { $("#mainNavBtnTransactions").click(function () {
EthoTransactions.clearFilter(); EthoTransactions.clearFilter();
EthoMainGUI.changeAppState("transactions"); EthoMainGUI.changeAppState("transactions");
EthoTransactions.renderTransactions(); EthoTransactions.renderTransactions();
}); });
$("#mainNavBtnAddressBoook").click(function() { $("#mainNavBtnAddressBoook").click(function () {
EthoMainGUI.changeAppState("addressBook"); EthoMainGUI.changeAppState("addressBook");
EthoAddressBook.renderAddressBook(); EthoAddressBook.renderAddressBook();
}); });
$("#mainNavBtnSend").click(function() { $("#mainNavBtnSend").click(function () {
EthoMainGUI.changeAppState("send"); EthoMainGUI.changeAppState("send");
EthoSend.renderSendState(); EthoSend.renderSendState();
}); });
$("#mainNavBtnWallets").click(function() { $("#mainNavBtnWallets").click(function () {
EthoMainGUI.changeAppState("account"); EthoMainGUI.changeAppState("account");
EthoWallets.renderWalletsState(); EthoWallets.renderWalletsState();
}); });
$("#mainNavBtnMarkets").click(function() { $("#mainNavBtnMarkets").click(function () {
EthoMainGUI.changeAppState("markets"); EthoMainGUI.changeAppState("markets");
EthoMarkets.renderMarkets(); EthoMarkets.renderMarkets();
}); });
$("#mainNavBtnUploads").click(function() { $("#mainNavBtnUploads").click(function () {
EthoMainGUI.changeAppState("uploads"); EthoMainGUI.changeAppState("uploads");
EthoUploads.renderUploads(); EthoUploads.renderUploads();
}); });
$("#mainNavBtnSettings").click(function() { $("#mainNavBtnSettings").click(function () {
EthoMainGUI.changeAppState("settings"); EthoMainGUI.changeAppState("settings");
EthoSettings.renderSettingsState(); EthoSettings.renderSettingsState();
}); });
$("#mainNavBtnAbout").click(function() { $("#mainNavBtnAbout").click(function () {
EthoMainGUI.changeAppState("about"); EthoMainGUI.changeAppState("about");
EthoAbout.renderAbout(); EthoAbout.renderAbout();
}); });

View File

@@ -7,7 +7,7 @@ const path = require("path");
const Buf = require('buffer').Buffer; const Buf = require('buffer').Buffer;
const Common = require('ethereumjs-common'); const Common = require('ethereumjs-common');
const fetch = require("node-fetch"); const fetch = require("node-fetch");
const fs = require('fs'); const fs = require("fs");
const fileReaderPullStream = require('pull-file-reader') const fileReaderPullStream = require('pull-file-reader')
const request = require('request'); const request = require('request');
const keythereum = require("keythereum"); const keythereum = require("keythereum");
@@ -147,12 +147,15 @@ class Uploads {
$('#ethofsLoginModal').iziModal(); $('#ethofsLoginModal').iziModal();
$('#ethofsLoginModal').iziModal('close'); $('#ethofsLoginModal').iziModal('close');
$('#ethofsRegistrationModal').iziModal('close'); $('#ethofsRegistrationModal').iziModal('close');
EthoUploads.resetUploadSystem();
EthoUploads.resetUploadProcess();
EthoUploads.resetUploadModal();
//CREATE ETHER-1 CHAIN CONNECTION AND LOOK FOR EXISTING USER ACCOUNT //CREATE ETHER-1 CHAIN CONNECTION AND LOOK FOR EXISTING USER ACCOUNT
if (privateKey != "") { if (privateKey != "") {
GlobalPrivateKey = privateKey; GlobalPrivateKey = privateKey;
privateKeyLogin = true; privateKeyLogin = true;
web3.eth.net.isListening() web3.eth.net.isListening()
.then(function() { .then(function () {
console.log('ethoFS is connected') console.log('ethoFS is connected')
var account = web3.eth.accounts.privateKeyToAccount('0x' + privateKey); var account = web3.eth.accounts.privateKeyToAccount('0x' + privateKey);
console.log(account); console.log(account);
@@ -163,7 +166,7 @@ class Uploads {
} else { } else {
privateKeyLogin = false; privateKeyLogin = false;
web3 = new Web3(web3.currentProvider); web3 = new Web3(web3.currentProvider);
web3.eth.getAccounts(function(err, accounts) { web3.eth.getAccounts(function (err, accounts) {
if (err != null) { if (err != null) {
console.error("An error occurred: " + err); console.error("An error occurred: " + err);
EthoUploads.outputNoAddressContractTable(); EthoUploads.outputNoAddressContractTable();
@@ -188,11 +191,11 @@ class Uploads {
console.log("Starting ethoFS"); console.log("Starting ethoFS");
GlobalUserAddress = web3.eth.defaultAccount; GlobalUserAddress = web3.eth.defaultAccount;
var ethoFSAccounts = new web3.eth.Contract(GlobalControllerABI, GlobalControllerContractAddress); var ethoFSAccounts = new web3.eth.Contract(GlobalControllerABI, GlobalControllerContractAddress);
ethoFSAccounts.methods.CheckAccountExistence(GlobalUserAddress).call(function(error, result) { ethoFSAccounts.methods.CheckAccountExistence(GlobalUserAddress).call(function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
document.getElementById("accountaddress").textContent = web3.eth.defaultAccount; document.getElementById("accountaddress").textContent = web3.eth.defaultAccount;
ethoFSAccounts.methods.GetUserAccountName(GlobalUserAddress).call(function(error, result) { ethoFSAccounts.methods.GetUserAccountName(GlobalUserAddress).call(function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
EthoUploads.getBlockHeight(web3); EthoUploads.getBlockHeight(web3);
@@ -233,14 +236,14 @@ class Uploads {
}; };
var privateKey = '0x' + GlobalPrivateKey; var privateKey = '0x' + GlobalPrivateKey;
web3.eth.accounts.signTransaction(tx, privateKey) web3.eth.accounts.signTransaction(tx, privateKey)
.then(function(signedTransactionData) { .then(function (signedTransactionData) {
web3.eth.sendSignedTransaction(signedTransactionData.rawTransaction, function(error, result) { web3.eth.sendSignedTransaction(signedTransactionData.rawTransaction, function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
$('#minedBlockTrackerModal').iziModal(); $('#minedBlockTrackerModal').iziModal();
$('#minedBlockTrackerModal').iziModal('open'); $('#minedBlockTrackerModal').iziModal('open');
$miningMessage = document.querySelector('.mining-message') $miningMessage = document.querySelector('.mining-message')
EthoUploads.waitForReceipt(result, function(receipt) { EthoUploads.waitForReceipt(result, function (receipt) {
console.log("Transaction Has Been Mined: " + receipt); console.log("Transaction Has Been Mined: " + receipt);
$('#minedBlockTrackerModal').iziModal('close'); $('#minedBlockTrackerModal').iziModal('close');
EthoUploads.ethofsLogin(GlobalPrivateKey); EthoUploads.ethofsLogin(GlobalPrivateKey);
@@ -254,14 +257,14 @@ class Uploads {
}); });
}); });
} else { } else {
controller.methods.AddNewUserPublic(userName).send(function(error, result) { controller.methods.AddNewUserPublic(userName).send(function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
document.getElementById("wait").innerHTML = 'Waiting For Add User Confirmation.'; document.getElementById("wait").innerHTML = 'Waiting For Add User Confirmation.';
$('#minedBlockTrackerModal').iziModal(); $('#minedBlockTrackerModal').iziModal();
$('#minedBlockTrackerModal').iziModal('open'); $('#minedBlockTrackerModal').iziModal('open');
$miningMessage = document.querySelector('.mining-message') $miningMessage = document.querySelector('.mining-message')
EthoUploads.waitForReceipt(result, function(receipt) { EthoUploads.waitForReceipt(result, function (receipt) {
console.log("Transaction Has Been Mined: " + receipt); console.log("Transaction Has Been Mined: " + receipt);
$('#minedBlockTrackerModal').iziModal('close'); $('#minedBlockTrackerModal').iziModal('close');
ethofsLogin(""); ethofsLogin("");
@@ -281,14 +284,14 @@ class Uploads {
} }
getBlockHeight(web3) { getBlockHeight(web3) {
console.log("Starting Block Height Detection.."); console.log("Starting Block Height Detection..");
web3.eth.getBlockNumber(function(err, data) { web3.eth.getBlockNumber(function (err, data) {
document.getElementById("blocknumber").textContent = data; document.getElementById("blocknumber").textContent = data;
console.log("ETHO Block Number: " + data); console.log("ETHO Block Number: " + data);
}); });
} }
getBalance(web3) { getBalance(web3) {
console.log("Starting Balance Detection.."); console.log("Starting Balance Detection..");
web3.eth.getBalance(web3.eth.defaultAccount, function(err, data) { web3.eth.getBalance(web3.eth.defaultAccount, function (err, data) {
var balance = "ETHO Balance: " + Number(web3.utils.fromWei(data, "ether")).toFixed(2); var balance = "ETHO Balance: " + Number(web3.utils.fromWei(data, "ether")).toFixed(2);
document.getElementById("ethobalance").textContent = balance; document.getElementById("ethobalance").textContent = balance;
console.log("ETHO Balance: " + data); console.log("ETHO Balance: " + data);
@@ -304,10 +307,10 @@ class Uploads {
} }
//CHECK FOR TX - BLOCK TO BE MINED //CHECK FOR TX - BLOCK TO BE MINED
waitForReceipt(hash, cb) { waitForReceipt(hash, cb) {
web3.eth.getTransactionReceipt(hash, function(err, receipt) { web3.eth.getTransactionReceipt(hash, function (err, receipt) {
//document.getElementById("mining-status-message").textContent = "In Progress"; //document.getElementById("mining-status-message").textContent = "In Progress";
$miningMessage.innerText = "Waiting For Transaction Confirmation"; $miningMessage.innerText = "Waiting For Transaction Confirmation";
web3.eth.getBlock('latest', function(e, res) { web3.eth.getBlock('latest', function (e, res) {
if (!e) { if (!e) {
document.getElementById("block-height").textContent = res.number; document.getElementById("block-height").textContent = res.number;
} }
@@ -323,7 +326,7 @@ class Uploads {
cb(receipt); cb(receipt);
} }
} else { } else {
setTimeout(function() { setTimeout(function () {
EthoUploads.waitForReceipt(hash, cb); EthoUploads.waitForReceipt(hash, cb);
}, 10000); }, 10000);
} }
@@ -344,15 +347,15 @@ class Uploads {
console.log("Private Key: " + privateKey); console.log("Private Key: " + privateKey);
console.log("Hosting Address: " + hostingAddress + " Removal Hash: " + contentHash); console.log("Hosting Address: " + hostingAddress + " Removal Hash: " + contentHash);
web3.eth.accounts.signTransaction(tx, privateKey) web3.eth.accounts.signTransaction(tx, privateKey)
.then(function(signedTransactionData) { .then(function (signedTransactionData) {
console.log("Signed TX Data: " + signedTransactionData.rawTransaction); console.log("Signed TX Data: " + signedTransactionData.rawTransaction);
web3.eth.sendSignedTransaction(signedTransactionData.rawTransaction, function(error, result) { web3.eth.sendSignedTransaction(signedTransactionData.rawTransaction, function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
$('#minedBlockTrackerModal').iziModal(); $('#minedBlockTrackerModal').iziModal();
$('#minedBlockTrackerModal').iziModal('open'); $('#minedBlockTrackerModal').iziModal('open');
$miningMessage = document.querySelector('.mining-message') $miningMessage = document.querySelector('.mining-message')
EthoUploads.waitForReceipt(result, function(receipt) { EthoUploads.waitForReceipt(result, function (receipt) {
console.log("Transaction Has Been Mined: " + receipt); console.log("Transaction Has Been Mined: " + receipt);
$('#minedBlockTrackerModal').iziModal('close'); $('#minedBlockTrackerModal').iziModal('close');
EthoUploads.updateContractTable(); EthoUploads.updateContractTable();
@@ -370,10 +373,10 @@ class Uploads {
to: GlobalControllerContractAddress, to: GlobalControllerContractAddress,
from: GlobalUserAddress, from: GlobalUserAddress,
}; };
pinRemoving.methods.RemoveHostingContract(hostingAddress, contentHash).send(tx, function(error, result) { pinRemoving.methods.RemoveHostingContract(hostingAddress, contentHash).send(tx, function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
EthoUploads.waitForReceipt(result, function(receipt) { EthoUploads.waitForReceipt(result, function (receipt) {
console.log("Transaction Has Been Mined: " + receipt); console.log("Transaction Has Been Mined: " + receipt);
$('#minedBlockTrackerModal').iziModal('close'); $('#minedBlockTrackerModal').iziModal('close');
EthoUploads.updateContractTable(); EthoUploads.updateContractTable();
@@ -394,14 +397,14 @@ class Uploads {
var hostingContracts = ""; var hostingContracts = "";
var TotalContractCount = 0; var TotalContractCount = 0;
var blockHeight = 0; var blockHeight = 0;
web3.eth.getBlockNumber(function(error, result) { web3.eth.getBlockNumber(function (error, result) {
if (!error) { if (!error) {
blockHeight = result; blockHeight = result;
} else } else
console.error(error); console.error(error);
}); });
var ethoFSAccounts = new web3.eth.Contract(GlobalControllerABI, GlobalControllerContractAddress); var ethoFSAccounts = new web3.eth.Contract(GlobalControllerABI, GlobalControllerContractAddress);
ethoFSAccounts.methods.GetUserAccountTotalContractCount(web3.eth.defaultAccount).call(function(error, result) { ethoFSAccounts.methods.GetUserAccountTotalContractCount(web3.eth.defaultAccount).call(function (error, result) {
TotalContractCount = result; TotalContractCount = result;
GlobalTotalContractCount = result; GlobalTotalContractCount = result;
const getContractData = async (ethoFSAccounts, account, TotalContractCount) => { const getContractData = async (ethoFSAccounts, account, TotalContractCount) => {
@@ -528,7 +531,6 @@ class Uploads {
document.getElementById("contract-cost").innerHTML = EthoUploads.round(GlobalContractCost, 2); document.getElementById("contract-cost").innerHTML = EthoUploads.round(GlobalContractCost, 2);
document.getElementById("upload-hash").innerHTML = GlobalUploadHash; document.getElementById("upload-hash").innerHTML = GlobalUploadHash;
document.getElementById("upload-size").innerHTML = GlobalUploadSizeMB; document.getElementById("upload-size").innerHTML = GlobalUploadSizeMB;
GlobalContractCost = 0;
return; return;
} }
//CHECK FOR PROPAGATED & AVAILABLE DATA ON NETWORK - FINAL VERIFICATION FOR UPLOADED CONTENT //CHECK FOR PROPAGATED & AVAILABLE DATA ON NETWORK - FINAL VERIFICATION FOR UPLOADED CONTENT
@@ -724,15 +726,15 @@ class Uploads {
var privateKey = '0x' + GlobalPrivateKey; var privateKey = '0x' + GlobalPrivateKey;
console.log("Private Key: " + privateKey); console.log("Private Key: " + privateKey);
web3.eth.accounts.signTransaction(tx, privateKey) web3.eth.accounts.signTransaction(tx, privateKey)
.then(function(signedTransactionData) { .then(function (signedTransactionData) {
console.log("Signed TX Data: " + signedTransactionData.rawTransaction); console.log("Signed TX Data: " + signedTransactionData.rawTransaction);
web3.eth.sendSignedTransaction(signedTransactionData.rawTransaction, function(error, result) { web3.eth.sendSignedTransaction(signedTransactionData.rawTransaction, function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
$("#contractDetailModal").iziModal("close"); $("#contractDetailModal").iziModal("close");
$("#minedBlockTrackerModal").iziModal(); $("#minedBlockTrackerModal").iziModal();
$("#minedBlockTrackerModal").iziModal("open"); $("#minedBlockTrackerModal").iziModal("open");
EthoUploads.waitForReceipt(result, function(receipt) { EthoUploads.waitForReceipt(result, function (receipt) {
console.log("Transaction Has Been Mined: " + receipt); console.log("Transaction Has Been Mined: " + receipt);
$("#minedBlockTrackerModal").iziModal("close"); $("#minedBlockTrackerModal").iziModal("close");
EthoUploads.updateContractTable(); EthoUploads.updateContractTable();
@@ -747,13 +749,13 @@ class Uploads {
}); });
} else { } else {
ethoFSController.methods.ExtendContract(GlobalHostingContractDetailArray['address'], extensionDuration).send(transactionObject, function(error, result) { ethoFSController.methods.ExtendContract(GlobalHostingContractDetailArray['address'], extensionDuration).send(transactionObject, function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
$('#contractDetailModal').iziModal('close'); $('#contractDetailModal').iziModal('close');
$("#minedBlockTrackerModal").iziModal(); $("#minedBlockTrackerModal").iziModal();
$('#minedBlockTrackerModal').iziodal('open'); $('#minedBlockTrackerModal').iziodal('open');
EthoUploads.waitForReceipt(result, function(receipt) { EthoUploads.waitForReceipt(result, function (receipt) {
console.log("Transaction Has Been Mined: " + receipt); console.log("Transaction Has Been Mined: " + receipt);
$('#minedBlockTrackerModal').iziModal('close'); $('#minedBlockTrackerModal').iziModal('close');
EthoUploads.updateContractTable(); EthoUploads.updateContractTable();
@@ -783,7 +785,7 @@ class Uploads {
var availableStorageTotal = 0; var availableStorageTotal = 0;
var activeHistory = 0; var activeHistory = 0;
var nodeCounter = 0; var nodeCounter = 0;
splitMessage.forEach(function(nodeMessage, index) { splitMessage.forEach(function (nodeMessage, index) {
var nodeSplitMessage = nodeMessage.split(":"); var nodeSplitMessage = nodeMessage.split(":");
activeHistory = Number(nodeSplitMessage[5]); activeHistory = Number(nodeSplitMessage[5]);
if (activeHistory >= 5) { if (activeHistory >= 5) {
@@ -818,23 +820,23 @@ class Uploads {
function calculateStorageAverages(usedStorageArray, availableStorageArray, nodeCountArray) { function calculateStorageAverages(usedStorageArray, availableStorageArray, nodeCountArray) {
var sumAvailableStorage = 0; var sumAvailableStorage = 0;
availableStorageArray.forEach(function(value, index) { availableStorageArray.forEach(function (value, index) {
sumAvailableStorage += value; sumAvailableStorage += value;
if (index == (availableStorageArray.length - 1)) { if (index == (availableStorageArray.length - 1)) {
averageAvailableStorageTotal = (sumAvailableStorage / availableStorageArray.length); averageAvailableStorageTotal = (sumAvailableStorage / availableStorageArray.length);
var element = document.getElementById("nodestorage"); var element = document.getElementById("nodestorage");
if (typeof(element) != 'undefined' && element != null) { if (typeof (element) != 'undefined' && element != null) {
element.textContent = (EthoUploads.round(2 + ((averageAvailableStorageTotal) / 1000000), 1)) + "TB"; element.textContent = (EthoUploads.round(2 + ((averageAvailableStorageTotal) / 1000000), 1)) + "TB";
} }
} }
}); });
var sumNodeCount = 0; var sumNodeCount = 0;
nodeCountArray.forEach(function(value, index) { nodeCountArray.forEach(function (value, index) {
sumNodeCount += value; sumNodeCount += value;
if (index == (nodeCountArray.length - 1)) { if (index == (nodeCountArray.length - 1)) {
var averageNodeCount = (sumNodeCount / nodeCountArray.length) + 19; var averageNodeCount = (sumNodeCount / nodeCountArray.length) + 19;
var element = document.getElementById("nodecount"); var element = document.getElementById("nodecount");
if (typeof(element) != 'undefined' && element != null) { if (typeof (element) != 'undefined' && element != null) {
element.textContent = (EthoUploads.round(averageNodeCount, 0)); element.textContent = (EthoUploads.round(averageNodeCount, 0));
} }
} }
@@ -912,7 +914,8 @@ class Uploads {
} }
resetFileTable() { resetFileTable() {
if (typeof($fileHistory) != 'undefined' && $fileHistory != null) { document.getElementById("fileUploadButton").value = null;
if (typeof ($fileHistory) != 'undefined' && $fileHistory != null) {
while ($fileHistory.hasChildNodes()) { while ($fileHistory.hasChildNodes()) {
$fileHistory.removeChild($fileHistory.firstChild); $fileHistory.removeChild($fileHistory.firstChild);
} }
@@ -936,7 +939,7 @@ class Uploads {
for (var i = 0; i < MainFileArray.length; i++) { for (var i = 0; i < MainFileArray.length; i++) {
const streamFiles = (files) => { const streamFiles = (files) => {
const stream = node.addReadableStream() const stream = node.addReadableStream()
stream.on('data', function(data) { stream.on('data', function (data) {
GlobalHashArray.push(`${data.hash}`); GlobalHashArray.push(`${data.hash}`);
GlobalSizeArray.push(`${data.size}`); GlobalSizeArray.push(`${data.size}`);
GlobalPathArray.push(`${data.path}`); GlobalPathArray.push(`${data.path}`);
@@ -975,8 +978,8 @@ class Uploads {
console.log("Sending Immediate Pin Request: " + MainHashArray[i]); console.log("Sending Immediate Pin Request: " + MainHashArray[i]);
EthoUploads.publishImmediatePin(MainHashArray[i]); EthoUploads.publishImmediatePin(MainHashArray[i]);
} }
setTimeout(function() { setTimeout(function () {
hashVerificationArray.forEach(function(hash) { hashVerificationArray.forEach(function (hash) {
verifyDataUpload(hash); verifyDataUpload(hash);
}); });
}, 5000); }, 5000);
@@ -1006,7 +1009,7 @@ class Uploads {
} else { } else {
var confirmationPercentage = Math.ceil((hashConfirmationCount / hashVerificationArray.length) * 100); var confirmationPercentage = Math.ceil((hashConfirmationCount / hashVerificationArray.length) * 100);
if (confirmationPercentage < 99) { if (confirmationPercentage < 99) {
setTimeout(function() { setTimeout(function () {
verifyDataUpload(hash) verifyDataUpload(hash)
}, 2000); }, 2000);
} else { } else {
@@ -1018,7 +1021,7 @@ class Uploads {
console.log("Data Confirmation Error: " + error.status); console.log("Data Confirmation Error: " + error.status);
var confirmationPercentage = Math.ceil((hashConfirmationCount / hashVerificationArray.length) * 100); var confirmationPercentage = Math.ceil((hashConfirmationCount / hashVerificationArray.length) * 100);
if (confirmationPercentage < 99) { if (confirmationPercentage < 99) {
setTimeout(function() { setTimeout(function () {
verifyDataUpload(hash) verifyDataUpload(hash)
}, 2000); }, 2000);
} else { } else {
@@ -1073,9 +1076,9 @@ class Uploads {
var privateKey = '0x' + GlobalPrivateKey; var privateKey = '0x' + GlobalPrivateKey;
console.log("Private Key: " + privateKey); console.log("Private Key: " + privateKey);
web3.eth.accounts.signTransaction(tx, privateKey) web3.eth.accounts.signTransaction(tx, privateKey)
.then(function(signedTransactionData) { .then(function (signedTransactionData) {
console.log("Signed TX Data: " + signedTransactionData.rawTransaction); console.log("Signed TX Data: " + signedTransactionData.rawTransaction);
web3.eth.sendSignedTransaction(signedTransactionData.rawTransaction, function(error, result) { web3.eth.sendSignedTransaction(signedTransactionData.rawTransaction, function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
console.log("Result: " + result); console.log("Result: " + result);
@@ -1083,7 +1086,7 @@ class Uploads {
$('#minedBlockTrackerModal').iziModal('open'); $('#minedBlockTrackerModal').iziModal('open');
$miningMessage = document.querySelector('.mining-message') $miningMessage = document.querySelector('.mining-message')
$('#preparingUploadModal').iziModal('close'); $('#preparingUploadModal').iziModal('close');
EthoUploads.waitForReceipt(result, function(receipt) { EthoUploads.waitForReceipt(result, function (receipt) {
console.log("Transaction Has Been Mined: " + receipt); console.log("Transaction Has Been Mined: " + receipt);
$('#minedBlockTrackerModal').iziModal('close'); $('#minedBlockTrackerModal').iziModal('close');
$('#nodeModal').iziModal('close'); $('#nodeModal').iziModal('close');
@@ -1100,14 +1103,14 @@ class Uploads {
}); });
}); });
} else { } else {
pinAdding.methods.AddNewContract(GlobalMainContentHash, HostingContractName, HostingContractDuration, pinSize, pinSize, contentHashString, contentPathString).send(transactionObject, function(error, result) { pinAdding.methods.AddNewContract(GlobalMainContentHash, HostingContractName, HostingContractDuration, pinSize, pinSize, contentHashString, contentPathString).send(transactionObject, function (error, result) {
if (!error) { if (!error) {
if (result) { if (result) {
$('#minedBlockTrackerModal').iziModal(); $('#minedBlockTrackerModal').iziModal();
$('#minedBlockTrackerModal').iziModal('open'); $('#minedBlockTrackerModal').iziModal('open');
$miningMessage = document.querySelector('.mining-message') $miningMessage = document.querySelector('.mining-message')
$('#preparingUploadModal').iziModal('close'); $('#preparingUploadModal').iziModal('close');
EthoUploads.waitForReceipt(result, function(receipt) { EthoUploads.waitForReceipt(result, function (receipt) {
console.log("Transaction Has Been Mined: " + receipt); console.log("Transaction Has Been Mined: " + receipt);
$('#minedBlockTrackerModal').iziModal('close'); $('#minedBlockTrackerModal').iziModal('close');
$('#nodeModal').iziModal('close'); $('#nodeModal').iziModal('close');
@@ -1145,6 +1148,13 @@ class Uploads {
MainFileArray = new Array(); MainFileArray = new Array();
GlobalUploadSize = 0; GlobalUploadSize = 0;
GlobalUploadSizeMB = 0; GlobalUploadSizeMB = 0;
GlobalMainHashArray = new Array();
GlobalMainPathArray = new Array();
GlobalHashArray = new Array();
GlobalPathArray = new Array();
GlobalUploadHash = "";
GlobalUploadPath = "";
GlobalContractCost = 0;
} }
updateAnalyzeProgress(width) { updateAnalyzeProgress(width) {
@@ -1159,153 +1169,6 @@ class Uploads {
elem.innerHTML = width * 1 + '%'; elem.innerHTML = width * 1 + '%';
} }
onFileUpload(event) {
event.preventDefault()
document.getElementById("upload-hash").textContent = "ANALYZING UPLOAD DATA";
document.getElementById("upload-confirm-button").style.visibility = "hidden";
MainFileArray.push([]);
let dirSelected = event.target.files;
let dirName = dirSelected[0].name;
let dirPath = dirSelected[0].path;
var streamCompareCount = 0;
var totalUploadItems = 0;
readDirectoryContents(dirPath);
function readDirectoryContents(directory) {
console.log("Directory Path: " + directory);
fs.readdir(directory, function(err, filesUploaded) {
if (!err) {
for (let i = 0; filesUploaded.length > i; i++) {
handleItem(filesUploaded[i], directory);
}
} else {
console.log("File Upload Error: " + err);
}
});
}
function handleItem(filename, relativePath) {
var filepath = relativePath.concat(pathSymbol, filename);
fs.stat(filepath, function(err, stats) {
if (!err) {
if (stats.isDirectory()) {
readDirectoryContents(filepath)
} else {
streamCompareCount++;
totalUploadItems++;
console.log("File Path: " + filepath);
fs.readFile(filepath, function(err, file) {
var updatedPath = filepath.replace(dirPath, dirName);
var filetowrite = {
path: updatedPath,
content: file
};
var filename = updatedPath;
MainFileArray[MainFileArray.length - 1].push(filetowrite);
GlobalUploadSize += Number(stats.size);
GlobalUploadSizeMB += Number(stats.size) / 1000000;
fileSize += Number(stats.size) / 1000000;
var totalUploadSizeMB = GlobalUploadSizeMB;
EthoUploads.appendFile(updatedPath, filename, stats.size, null);
console.log("Path: " + filepath + " Size: " + stats.size + " Total Size: " + GlobalUploadSize);
document.getElementById("upload-size").textContent = totalUploadSizeMB;
EthoUploads.contractDurationChange(document.getElementById('contract-duration'));
EthoUploads.updateAnalyzeProgress(((totalUploadItems - streamCompareCount) / totalUploadItems));
if (streamCompareCount == 0) {
document.getElementById("upload-hash").textContent = "READY FOR UPLOAD";
document.getElementById("upload-confirm-button").style.visibility = "visible";
}
});
}
} else {
console.log("File Stats Error: " + err);
}
});
}
}
onDrop(event) {
console.log(event);
MainFileArray.push([]);
document.getElementById("upload-hash").textContent = "ANALYZING UPLOAD DATA";
document.getElementById("upload-confirm-button").style.visibility = "hidden";
fileSize = 0;
EthoUploads.resetProgress();
EthoUploads.onDragLeave()
event.preventDefault()
if (GlobalUploadHash != "" && GlobalUploadPath != "") {
GlobalMainHashArray.push(GlobalUploadHash);
GlobalMainPathArray.push(GlobalUploadPath);
}
const dt = event.dataTransfer
//const filesDropped = dt.files
const itemsDropped = dt.items
function readFileContents(file) {
return new Promise((resolve) => {
const reader = new window.FileReader()
reader.onload = (event) => resolve(event.target.result)
reader.readAsArrayBuffer(file)
})
}
var totalItemCount = 0;
var streamCompareCount = 0;
function initialHandleItems(items) {
const files = [];
totalItemCount = items.length;
streamCompareCount = items.length;
for (var item of items) {
var awaitHandleEntry = handleEntry(item.webkitGetAsEntry());
}
function handleEntry(entry) {
if (entry.isFile) {
getFile(entry);
function getFile(entry) {
document.getElementById("upload-hash").textContent = "ANALYZING UPLOAD DATA";
document.getElementById("upload-confirm-button").style.visibility = "hidden";
entry.file(function(file) {
readFileContents(file)
.then((buffer) => {
var filePath = entry.fullPath;
var filetowrite = {
path: entry.fullPath,
content: Buffer.from(buffer)
};
MainFileArray[MainFileArray.length - 1].push(filetowrite);
GlobalUploadSize += Number(file.size);
fileSize += Number(file.size);
var totalUploadSizeMB = GlobalUploadSize / 1000000;
EthoUploads.appendFile(entry.fullPath, entry.name, file.size, null);
document.getElementById("upload-size").textContent = totalUploadSizeMB;
EthoUploads.contractDurationChange(document.getElementById('contract-duration'));
streamCompareCount--;
EthoUploads.updateAnalyzeProgress(((totalItemCount - streamCompareCount) / totalItemCount));
if (streamCompareCount == 0) {
document.getElementById("upload-hash").textContent = "READY FOR UPLOAD";
document.getElementById("upload-confirm-button").style.visibility = "visible";
}
});
});
}
} else if (entry.isDirectory) {
let directoryReader = entry.createReader();
directoryReader.readEntries(function(entries) {
streamCompareCount += entries.length - 1;
totalItemCount += entries.length - 1;
entries.forEach(function(newEntry) {
handleEntry(newEntry);
});
});
}
}
}
initialHandleItems(event.dataTransfer.items);
}
connectToPeer(event) { connectToPeer(event) {
const multiaddr = $multiaddrInput.value const multiaddr = $multiaddrInput.value
@@ -1409,7 +1272,7 @@ class Uploads {
} }
renderUploads() { renderUploads(ethofsRenderFlag) {
EthoMainGUI.renderTemplate("uploads.html", {}); EthoMainGUI.renderTemplate("uploads.html", {});
$(document).trigger("render_uploads"); $(document).trigger("render_uploads");
} }
@@ -1419,19 +1282,169 @@ class Uploads {
EthoUploads = new Uploads(); EthoUploads = new Uploads();
$(document).on("render_uploads", function() { function onFileUpload(event) {
event.preventDefault()
GlobalUploadSize = 0;
GlobalUploadSizeMB = 0;
document.getElementById("upload-hash").textContent = "ANALYZING UPLOAD DATA";
document.getElementById("upload-confirm-button").style.visibility = "hidden";
MainFileArray.push([]);
let dirSelected = event.target.files;
let dirName = dirSelected[0].name;
let dirPath = dirSelected[0].path;
var streamCompareCount = 0;
var totalUploadItems = 0;
readDirectoryContents(dirPath);
function readDirectoryContents(directory) {
console.log("Directory Path: " + directory);
fs.readdir(directory, function (err, filesUploaded) {
if (!err) {
for (let i = 0; filesUploaded.length > i; i++) {
handleItem(filesUploaded[i], directory);
}
} else {
console.log("File Upload Error: " + err);
}
});
}
function handleItem(filename, relativePath) {
var filepath = relativePath.concat(pathSymbol, filename);
fs.stat(filepath, function (err, stats) {
if (!err) {
if (stats.isDirectory()) {
readDirectoryContents(filepath)
} else {
streamCompareCount++;
totalUploadItems++;
console.log("File Path: " + filepath);
fs.readFile(filepath, function (err, file) {
var updatedPath = filepath.replace(dirPath, dirName);
var filetowrite = {
path: updatedPath,
content: file
};
var filename = updatedPath;
MainFileArray[MainFileArray.length - 1].push(filetowrite);
GlobalUploadSize += Number(stats.size);
GlobalUploadSizeMB += Number(stats.size) / 1000000;
fileSize += Number(stats.size) / 1000000;
var totalUploadSizeMB = GlobalUploadSizeMB;
EthoUploads.appendFile(updatedPath, filename, stats.size, null);
console.log("Path: " + filepath + " Size: " + stats.size + " Total Size: " + GlobalUploadSize);
document.getElementById("upload-size").textContent = totalUploadSizeMB;
EthoUploads.contractDurationChange(document.getElementById('contract-duration'));
EthoUploads.updateAnalyzeProgress(((totalUploadItems - streamCompareCount) / totalUploadItems));
if (streamCompareCount == 0) {
document.getElementById("upload-hash").textContent = "READY FOR UPLOAD";
document.getElementById("upload-confirm-button").style.visibility = "visible";
}
});
}
} else {
console.log("File Stats Error: " + err);
}
});
}
}
function onDrop(event) {
console.log(event);
MainFileArray.push([]);
document.getElementById("upload-hash").textContent = "ANALYZING UPLOAD DATA";
document.getElementById("upload-confirm-button").style.visibility = "hidden";
fileSize = 0;
EthoUploads.resetProgress();
EthoUploads.onDragLeave()
event.preventDefault()
if (GlobalUploadHash != "" && GlobalUploadPath != "") {
GlobalMainHashArray.push(GlobalUploadHash);
GlobalMainPathArray.push(GlobalUploadPath);
}
const dt = event.dataTransfer
//const filesDropped = dt.files
const itemsDropped = dt.items
function readFileContents(file) {
return new Promise((resolve) => {
const reader = new window.FileReader()
reader.onload = (event) => resolve(event.target.result)
reader.readAsArrayBuffer(file)
})
}
var totalItemCount = 0;
var streamCompareCount = 0;
function initialHandleItems(items) {
const files = [];
totalItemCount = items.length;
streamCompareCount = items.length;
for (var item of items) {
var awaitHandleEntry = handleEntry(item.webkitGetAsEntry());
}
function handleEntry(entry) {
if (entry.isFile) {
getFile(entry);
function getFile(entry) {
document.getElementById("upload-hash").textContent = "ANALYZING UPLOAD DATA";
document.getElementById("upload-confirm-button").style.visibility = "hidden";
entry.file(function (file) {
readFileContents(file)
.then((buffer) => {
var filePath = entry.fullPath;
var filetowrite = {
path: entry.fullPath,
content: Buffer.from(buffer)
};
MainFileArray[MainFileArray.length - 1].push(filetowrite);
GlobalUploadSize += Number(file.size);
fileSize += Number(file.size);
var totalUploadSizeMB = GlobalUploadSize / 1000000;
EthoUploads.appendFile(entry.fullPath, entry.name, file.size, null);
document.getElementById("upload-size").textContent = totalUploadSizeMB;
EthoUploads.contractDurationChange(document.getElementById('contract-duration'));
streamCompareCount--;
EthoUploads.updateAnalyzeProgress(((totalItemCount - streamCompareCount) / totalItemCount));
if (streamCompareCount == 0) {
document.getElementById("upload-hash").textContent = "READY FOR UPLOAD";
document.getElementById("upload-confirm-button").style.visibility = "visible";
}
});
});
}
} else if (entry.isDirectory) {
let directoryReader = entry.createReader();
directoryReader.readEntries(function (entries) {
streamCompareCount += entries.length - 1;
totalItemCount += entries.length - 1;
entries.forEach(function (newEntry) {
handleEntry(newEntry);
});
});
}
}
}
initialHandleItems(event.dataTransfer.items);
}
$(document).on("render_uploads", function () {
$('#privatekeytable').hide(); $('#privatekeytable').hide();
$('#walletpasswordtable').hide(); $('#walletpasswordtable').hide();
if (isFullySynced) { if (isFullySynced) {
(function($, _M) { (function ($, _M) {
M.toast({ M.toast({
html: 'Node is fully synced and operational.', html: 'Node is fully synced and operational.',
displayLength: 10000 displayLength: 10000
}); });
}(jQuery, M)); }(jQuery, M));
} else { } else {
(function($, _M) { (function ($, _M) {
M.toast({ M.toast({
html: 'Node is still syncing. Please do not attempt to use the wallet or ethoFS upload system.', html: 'Node is still syncing. Please do not attempt to use the wallet or ethoFS upload system.',
displayLength: 10000 displayLength: 10000
@@ -1450,33 +1463,50 @@ $(document).on("render_uploads", function() {
EthoUploads.beforeLoginState(); EthoUploads.beforeLoginState();
EthoUploads.checkExistingLogin(GlobalPrivateKey); EthoUploads.checkExistingLogin(GlobalPrivateKey);
fetch('https://api.coinmarketcap.com/v2/ticker/3452/').then(response => {
return response.json();
}).then(data => {
var ethoPriceUSD = data.data.quotes.USD.price;
document.getElementById("ethoprice").textContent = EthoUploads.round(ethoPriceUSD, 4);
}).catch(err => {});
});
$(document).on("dragenter", "#drag-container", function(event) { function getKeyStoreLocation() {
switch (os.type()) {
case "Darwin":
return path.join(os.homedir(), "Library", "Ether1");
break;
default:
return path.join(process.env.APPDATA, "Ether1");
}
}
$(document).on("dragenter", "#drag-container", function (event) {
EthoUploads.onDragEnter(event); EthoUploads.onDragEnter(event);
}); });
$(document).on("dragover", "#drag-container", function(event) { $(document).on("dragover", "#drag-container", function (event) {
EthoUploads.onDragEnter(event); EthoUploads.onDragEnter(event);
}); });
$(document).on("drop", "#drag-container", function(event) { $(document).on("drop", "#drag-container", function (event) {
EthoUploads.onDrop(event.originalEvent); onDrop(event.originalEvent);
}); });
$(document).on("dragleave", "#drag-container", function(event) { $(document).on("dragleave", "#drag-container", function (event) {
EthoUploads.onDragLeave(event); EthoUploads.onDragLeave(event);
}); });
$(document).on("change", "#fileUploadButton", function(event) { $(document).on("change", "#fileUploadButton", function (event) {
EthoUploads.onFileUpload(event); onFileUpload(event);
}); });
$(document).on("click", "#main-login-button", function(event) { $(document).on("click", "#main-login-button", function (event) {
GlobalPrivateKey = switchFlag; GlobalPrivateKey = switchFlag;
EthoUploads.checkLogin(); EthoUploads.checkLogin();
$('#ethofsLoginModal').iziModal({ $('#ethofsLoginModal').iziModal({
onOpened: function() { onOpened: function () {
console.log("Login Setup Opened .."); console.log("Login Setup Opened ..");
var addressBook = EthoDatatabse.getWallets(); var addressBook = EthoDatatabse.getWallets();
console.log("Getting Address List..."); console.log("Getting Address List...");
@@ -1493,7 +1523,7 @@ $(document).on("render_uploads", function() {
} }
} }
$("#sendFromAddress").on("change", function() { $("#sendFromAddress").on("change", function () {
var optionText = $(this).find("option:selected").text(); var optionText = $(this).find("option:selected").text();
var optionTextValue = $(this).find("option:selected").val(); var optionTextValue = $(this).find("option:selected").val();
$("#sendFromAddressName").html(optionText.trim()); $("#sendFromAddressName").html(optionText.trim());
@@ -1514,12 +1544,12 @@ $(document).on("render_uploads", function() {
} }
}); });
}, },
onOpening: function(modal) { onOpening: function (modal) {
console.log("Opening Login Setup.."); console.log("Opening Login Setup..");
$("#sendFromAddressValue").hide(); $("#sendFromAddressValue").hide();
$('#walletpasswordtable').hide(); $('#walletpasswordtable').hide();
$('#privatekeytable').hide(); $('#privatekeytable').hide();
(function($, _M) { (function ($, _M) {
M.toast({ M.toast({
html: '<i class="small material-icons">warning </i> If your wallet has a default name e.g: Account 1, you will not be able to select it.', html: '<i class="small material-icons">warning </i> If your wallet has a default name e.g: Account 1, you will not be able to select it.',
displayLength: 10000, displayLength: 10000,
@@ -1529,9 +1559,9 @@ $(document).on("render_uploads", function() {
} }
}); });
$('#ethofsLoginModal').iziModal('open'); $('#ethofsLoginModal').iziModal('open');
}); });
$(document).on("click", "#ethofs-login-button", function(event) { $(document).on("click", "#ethofs-login-button", function (event) {
if (privateKeyLogin == true) { if (privateKeyLogin == true) {
GlobalPrivateKey = document.getElementById('privatekey').value; GlobalPrivateKey = document.getElementById('privatekey').value;
console.log("Global Private Key: " + GlobalPrivateKey); console.log("Global Private Key: " + GlobalPrivateKey);
@@ -1548,104 +1578,105 @@ $(document).on("render_uploads", function() {
EthoUploads.ethofsLogin(GlobalPrivateKey); EthoUploads.ethofsLogin(GlobalPrivateKey);
} }
}); });
$(document).on("click", "#main-upload-button", function(event) { $(document).on("click", "#main-upload-button", function (event) {
$('#defaultModal').iziModal(); $('#defaultModal').iziModal();
$('#defaultModal').iziModal('open'); $('#defaultModal').iziModal('open');
EthoUploads.resetUploadProcess(); EthoUploads.resetUploadProcess();
}); });
$(document).on("click", "#defaultModal-close", function(event) { $(document).on("click", "#defaultModal-close", function (event) {
$('#defaultModal').iziModal('close'); $('#defaultModal').iziModal('close');
EthoUploads.resetUploadSystem(); EthoUploads.resetUploadSystem();
EthoUploads.resetUploadProcess();
EthoUploads.resetUploadModal(); EthoUploads.resetUploadModal();
}); });
$(document).on("click", "#defaultModal-next", function(event) { $(document).on("click", "#defaultModal-next", function (event) {
$('#defaultModal2').iziModal({ $('#defaultModal2').iziModal({
onOpening: function() { onOpened: function () {
//EthoUploads.resetFileTable();
},
onOpening: function () {
EthoUploads.resetFileTable(); EthoUploads.resetFileTable();
},
onClosed: function () {
//document.getElementById("fileUploadButton").value = "";
},
onHide: function () {
//document.getElementById("fileUploadButton").value = "";
} }
}); });
$('#defaultModal2').iziModal('open'); $('#defaultModal2').iziModal('open');
$('#defaultModal').iziModal('close'); $('#defaultModal').iziModal('close');
EthoUploads.resetUploadProcess(); EthoUploads.resetUploadProcess();
}); });
$(document).on("click", "#defaultModal2-close", function(event) { $(document).on("click", "#defaultModal2-close", function (event) {
$('#defaultModal2').iziModal('close'); $('#defaultModal2').iziModal('close');
EthoUploads.resetUploadSystem(); EthoUploads.resetUploadSystem();
EthoUploads.resetUploadProcess();
EthoUploads.resetUploadModal(); EthoUploads.resetUploadModal();
}); });
$(document).on("click", "#ethofs-registration-button", function(event) { $(document).on("click", "#ethofs-registration-button", function (event) {
EthoUploads.AddNewUser(document.getElementById('username').value); EthoUploads.AddNewUser(document.getElementById('username').value);
}); });
$(document).on("click", "#confirm-files-button", function(event) { $(document).on("click", "#confirm-files-button", function (event) {
$('#defaultModal3').iziModal(); $('#defaultModal3').iziModal({
onClosed: function () {
document.getElementById("fileUploadButton").value = null;
},
onHidden: function () {
document.getElementById("fileUploadButton").value = null;
}
});
$('#defaultModal3').iziModal('open'); $('#defaultModal3').iziModal('open');
document.getElementById("contract-cost").innerHTML = EthoUploads.round(GlobalContractCost, 2); document.getElementById("contract-cost").innerHTML = EthoUploads.round(GlobalContractCost, 2);
$('#defaultModal2').iziModal('close'); $('#defaultModal2').iziModal('close');
document.getElementById("upload-hash").textContent = "READY FOR UPLOAD"; document.getElementById("upload-hash").textContent = "READY FOR UPLOAD";
document.getElementById("upload-confirm-button").style.visibility = "visible"; document.getElementById("upload-confirm-button").style.visibility = "visible";
EthoUploads.resetUploadModal(); EthoUploads.resetUploadModal();
}); });
$(document).on("click", "#defaultModal3-close", function(event) { $(document).on("click", "#defaultModal3-close", function (event) {
$('#defaultModal3').iziModal('close'); $('#defaultModal3').iziModal('close');
EthoUploads.resetUploadSystem(); EthoUploads.resetUploadSystem();
EthoUploads.resetUploadProcess();
EthoUploads.resetUploadModal(); EthoUploads.resetUploadModal();
}); });
$(document).on("click", "#upload-confirm-button", function(event) { $(document).on("click", "#upload-confirm-button", function (event) {
$('#preparingUploadModal').iziModal(); $('#preparingUploadModal').iziModal();
$('#preparingUploadModal').iziModal('open'); $('#preparingUploadModal').iziModal('open');
$('#defaultModal3').iziModal('close'); $('#defaultModal3').iziModal('close');
EthoUploads.startUploadProcess(); EthoUploads.startUploadProcess();
});
$(document).on("click", "#tracker-close-button", function(event) {
EthoUploads.updateContractTable();
});
$(document).on("click", "#upload-check-button", function(event) {
EthoUploads.finishUploadModal();
});
$(document).on("click", "#contract-extension-button", function(event) {
EthoUploads.contractExtensionConfirmation();
});
$(document).on("click", "#reset-table-button", function(event) {
$("#contractDetailModal").iziModal("close");
EthoUploads.resetContractDetailTableRows();
});
$(document).on("change", "#contract-duration", function(event) {
EthoUploads.contractDurationChange(document.getElementById('contract-duration'));
});
$(document).on("change", "#extend-contract", function(event) {
EthoUploads.contractExtensionChange(document.getElementById('extend-contract'));
});
fetch('https://api.coinmarketcap.com/v2/ticker/3452/').then(response => {
return response.json();
}).then(data => {
var ethoPriceUSD = data.data.quotes.USD.price;
document.getElementById("ethoprice").textContent = EthoUploads.round(ethoPriceUSD, 4);
}).catch(err => {});
}); });
function getKeyStoreLocation() { $(document).on("click", "#tracker-close-button", function (event) {
switch (os.type()) { EthoUploads.updateContractTable();
case "Darwin": });
return path.join(os.homedir(), "Library", "Ether1");
break; $(document).on("click", "#upload-check-button", function (event) {
default: EthoUploads.finishUploadModal();
return path.join(process.env.APPDATA, "Ether1"); });
}
} $(document).on("click", "#contract-extension-button", function (event) {
EthoUploads.contractExtensionConfirmation();
});
$(document).on("click", "#reset-table-button", function (event) {
$("#contractDetailModal").iziModal("close");
EthoUploads.resetContractDetailTableRows();
});
$(document).on("change", "#contract-duration", function (event) {
EthoUploads.contractDurationChange(document.getElementById('contract-duration'));
});
$(document).on("change", "#extend-contract", function (event) {
EthoUploads.contractExtensionChange(document.getElementById('extend-contract'));
});