This contract has the following public method signature:\t\t\t\t\t\thasPhone (address _addr). \t\t\t\t\t\tIf the _addr is registered in the contract\'s Phone Registry, the hasPhone method returns true. Otherwise it returns false.'),y.text(u.val()),b.text(l.val()),f.addClass("hide"),s.hide(),m.addClass("hide"),j.addClass("hide"),M.addClass("hide"),T.addClass("hide"),k.removeClass("hide"),F.addClass("hide"),g.removeClass("hide"),A.addClass("POPTitleContainer"),A.removeClass("POPTitleContainerShortend"),D.addClass("POPDescContainer"),D.removeClass("POPDescContainerShortend"),z.addClass("hide");var h=new ZeroClipboard($("#copyWallet3")[0]);h.on("ready",function(e){h.on("aftercopy",function(e){Materialize.toast("Address copied to buffer",3e3,"rounded")})});break;case 5:a.text("Check"),C.html('Enter a phone number or an ethereum address to continue. \t\t\t\t\t\tThere is a smart contract deployed to the public ethereum Blockchain. You can find it here:\t\t\t\t\t\t
This contract has the following public method signature:\
+ hasPhone (address _addr). \
+ If the _addr is registered in the contract\'s Phone Registry, the hasPhone method returns true. Otherwise it returns false.');
+
+ successTableCellWalletValue.text(POPInputWallet.val());
+ successTableCellPhoneValue.text(POPInputPhone.val());
+ radioContainer.addClass("hide");
+ inputContainer.hide();
+ POPBottomDescriptionContainer.addClass("hide");
+ step1CopyTable.addClass("hide");
+ step3CopyTable.addClass("hide");
+ bottomDescAddition.addClass("hide");
+ bottomDescAddition2.removeClass("hide");
+ copyHashTable.addClass("hide");
+ successContainer.removeClass("hide");
+ POPTitleContainerShortend.addClass("POPTitleContainer");
+ POPTitleContainerShortend.removeClass("POPTitleContainerShortend");
+ POPDescContainerShortend.addClass("POPDescContainer");
+ POPDescContainerShortend.removeClass("POPDescContainerShortend");
+ checkboxContainer.addClass("hide");
+
+ var clientCopyWallet3 = new ZeroClipboard( $("#copyWallet3")[0] );
+
+ clientCopyWallet3.on( "ready", function( readyEvent ) {
+ clientCopyWallet3.on( "aftercopy", function( event ) {
+ Materialize.toast('Address copied to buffer', 3000, 'rounded');
+ });
+ });
+ }
+ break;
+ case 4:
+ {
+ stepTitle.text("Check");
+ bottomDesc.html('Enter a phone number or an Ethereum address to continue. \
+ There is a smart contract deployed to the Oracles network. You can find it here:\
+
'
+ + copyTableCellWalletValue1.text() +
+ '
This contract has the following public method signature:\
+ hasPhone (address _addr). \
+ If the _addr is registered in the contract\'s Phone Registry, the hasPhone method returns true. Otherwise it returns false.');
+
+ POPBottomDescriptionContainer.show();
+ stepLabel.addClass("hide");
+ phoneRadioCheck();
+ radioContainer.removeClass("hide");
+ inputContainer.show();
+ POPBottomDescriptionContainer.show();
+ POPInputPhone.removeClass('hide');
+ POPInputPhone.focus();
+ POPInputSMS.addClass('hide');
+ POPInputWallet.addClass('hide');
+ POPBottomDescriptionContainer.removeClass("hide");
+ step1CopyTable.addClass("hide");
+ step3CopyTable.addClass("hide");
+ bottomDescAddition.addClass("hide");
+ bottomDescAddition2.addClass("hide");
+ copyHashTable.addClass("hide");
+ successContainer.addClass("hide");
+ POPTitleContainer.addClass("POPTitleContainerShortend");
+ POPTitleContainer.removeClass("POPTitleContainer");
+ POPDescContainer.addClass("POPDescContainerShortend");
+ POPDescContainer.removeClass("POPDescContainer");
+
+ var clientCopyWallet2 = new ZeroClipboard( $("#copyWallet2")[0] );
+
+ console.log(clientCopyWallet2);
+
+ clientCopyWallet2.on( "ready", function( readyEvent ) {
+ clientCopyWallet2.on( "aftercopy", function( event ) {
+ Materialize.toast('Address copied to buffer', 3000, 'rounded');
+ });
+ });
+ checkboxContainer.addClass("hide");
+ }
+ break;
+ default:
+ {
+ stepTitle.text("Submit your phone number");
+ stepLabel.removeClass("hide");
+ POPBottomDescriptionContainer.removeClass("hide");
+ step1CopyTable.addClass("hide");
+ step3CopyTable.addClass("hide");
+ bottomDescAddition.addClass("hide");
+ bottomDescAddition2.addClass("hide");
+ copyHashTable.addClass("hide");
+ successContainer.addClass("hide");
+ }
+ break;
+ }
+ }
+ });
+}
+
+window.addEventListener('load', function() {
+ getWeb3(startDapp);
+});
+function sendCodeBySMS(phone, cb) {
+ //cb(null, "0xc888c9ce9e098d5864d3ded6ebcc140a12142263bace3a23a36f9905f12bd64a");
+ $.post("/sendCodeBySMS", {
+ "globalToken": "cba2c691-47df-41e7-bc97-a0818103ed14",
+ "to": phone
+ }, function( data ) {
+ console.log( data );
+ if (data.success) cb(null, data.success.token);
+ else cb(data.error, null);
+ });
+}
+function verifyCodeFromSMS(web3, config, sender, token, cb) {
+ activatePair(web3, config, sender, token, function(err, txHash) {
+ cb(err, txHash);
+ });
+}
+
+function activatePair(web3, config, sender, token, cb) {
+ attachToContract(web3, config, function(err, contract) {
+ activatePairTX(web3, contract, sender, token, function(err, txHash) {
+ //console.log("activatePairTX:");
+ //console.log("result: " + txHash);
+ cb(err, txHash);
+ });
+
+ });
+}
+
+function activatePairTX(web3, contract, sender, token, cb) {
+ if (!web3.isConnected()) cb({code: 500, title: "Error", message: "check RPC"}, null);
+
+ contract.activatePair.sendTransaction(token, {gas: 800000, from: sender}, function(err, result) {
+ cb(err, result);
+ });
+}
\ No newline at end of file
diff --git a/web/public/javascripts/application/addPhoneToWallet.js b/web/public/javascripts/application/addPhoneToWallet.js
deleted file mode 100644
index 0054340..0000000
--- a/web/public/javascripts/application/addPhoneToWallet.js
+++ /dev/null
@@ -1,26 +0,0 @@
-function addPhoneToWallet(phone, wallet, code, changeStepNumber, cb) {
- $.post("/newPhoneToAddr", {
- "globalToken": "cba2c691-47df-41e7-bc97-a0818103ed14",
- "phone": phone,
- "wallet": wallet,
- "code": code
- }, function( data ) {
- cb();
-
- if (data.success) {
- changeStepNumber(+1, null);
- } else if (data.error.code == 1000) {
- swal({
- title: "Warning",
- text: data.error.message,
- type: "warning"
- });
- } else {
- swal({
- title: "Error",
- text: data.error.message,
- type: "error"
- });
- }
- });
-}
\ No newline at end of file
diff --git a/web/public/javascripts/application/addToken.js b/web/public/javascripts/application/addToken.js
new file mode 100644
index 0000000..766ad84
--- /dev/null
+++ b/web/public/javascripts/application/addToken.js
@@ -0,0 +1,19 @@
+function addToken(web3, config, sender, phoneNumber, token, cb) {
+ console.log(web3);
+ attachToContract(web3, config, function(err, contract) {
+ newTokenTX(web3, contract, sender, phoneNumber, token, function(err, txHash) {
+ //console.log("newTokenTX:");
+ //console.log("result: " + txHash);
+ cb(err, txHash);
+ });
+
+ });
+}
+
+function newTokenTX(web3, contract, sender, phoneNumber, token, cb) {
+ if (!web3.isConnected()) return cb({code: 500, title: "Error", message: "check RPC"}, null);
+
+ contract.newToken.sendTransaction(phoneNumber, token, {gas: 800000, from: sender}, function(err, result) {
+ cb(err, result);
+ });
+}
\ No newline at end of file
diff --git a/web/public/javascripts/application/alert.js b/web/public/javascripts/application/alert.js
new file mode 100644
index 0000000..183efe6
--- /dev/null
+++ b/web/public/javascripts/application/alert.js
@@ -0,0 +1,18 @@
+function showAlert(err, msg) {
+ if (!err) {
+ swal({
+ title: "Error",
+ text: msg,
+ type: "error"
+ });
+ }
+ else {
+ if (err.type != "REQUEST_REJECTED") {
+ swal({
+ title: "Error",
+ text: msg,
+ type: "error"
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/javascripts/application/blockchainHelper.js b/web/public/javascripts/application/blockchainHelper.js
new file mode 100755
index 0000000..0343c74
--- /dev/null
+++ b/web/public/javascripts/application/blockchainHelper.js
@@ -0,0 +1,32 @@
+function attachToContract(web3, config, cb) {
+ if(!web3.isConnected()) {
+ if (cb) cb({code: 200, title: "Error", message: "check RPC"}, null);
+ return;
+ }
+
+ console.log(web3.eth.accounts);
+ web3.eth.defaultAccount = web3.eth.accounts[0];
+ console.log("web3.eth.defaultAccount:");
+ console.log(web3.eth.defaultAccount);
+
+ var MyContract = web3.eth.contract(config.Ethereum.contracts.ProofOfPhone.abi);
+
+ contract = MyContract.at(config.Ethereum[config.environment].contractAddress);
+
+ if (cb) cb(null, contract);
+}
+
+function getTxCallBack(txHash, cb) {
+ web3.eth.getTransaction(txHash, function(err, txDetails) {
+ if (err) console.log(err);
+ if (!txDetails) {
+ setTimeout(function() {
+ getTxCallBack(txHash, cb);
+ }, 2000);
+ } else if (!txDetails.blockNumber) {
+ setTimeout(function() {
+ getTxCallBack(txHash, cb);
+ }, 2000)
+ } else cb();
+ });
+};
\ No newline at end of file
diff --git a/web/public/javascripts/application/checkNetworkVersion.js b/web/public/javascripts/application/checkNetworkVersion.js
new file mode 100755
index 0000000..49adf83
--- /dev/null
+++ b/web/public/javascripts/application/checkNetworkVersion.js
@@ -0,0 +1,35 @@
+//check current network page is connected to. Alerts, if not Oracles network
+function checkNetworkVersion(web3, cb) {
+ var msgNotOracles = "You aren't connected to Oracles network. Please, switch on Oracles plugin and choose Oracles network. Check Oracles network wiki for more info.";
+ web3.version.getNetwork(function(err, netId) {
+ if (err)
+ console.log(err);
+ console.log("netId: " + netId);
+ switch (netId) {
+ case "1": {
+ console.log('This is mainnet');
+ swal("Warning", msgNotOracles, "warning");
+ cb(false);
+ } break;
+ case "2": {
+ console.log('This is the deprecated Morden test network.');
+ swal("Warning", msgNotOracles, "warning");
+ cb(false);
+ } break;
+ case "3": {
+ console.log('This is the ropsten test network.');
+ swal("Warning", msgNotOracles, "warning");
+ cb(false);
+ } break;
+ case "12648430": {
+ console.log('This is Oracles from Metamask');
+ cb(true);
+ } break;
+ default: {
+ console.log('This is an unknown network.');
+ swal("Warning", msgNotOracles, "warning");
+ cb(false);
+ } break;
+ }
+ })
+}
\ No newline at end of file
diff --git a/web/public/javascripts/application/deployContract.js b/web/public/javascripts/application/deployContract.js
new file mode 100644
index 0000000..8b26948
--- /dev/null
+++ b/web/public/javascripts/application/deployContract.js
@@ -0,0 +1,37 @@
+function deployContract(web3, config, sender) {
+ var contractABI = config.Ethereum.contracts.ProofOfPhone.abi;
+ var compiled = config.Ethereum.contracts.ProofOfPhone.bin;
+
+ console.log(web3.eth.accounts);
+ web3.eth.defaultAccount = web3.eth.accounts[0];
+
+ var gasWillUsed = web3.eth.estimateGas({
+ from: web3.eth.defaultAccount,
+ data: compiled
+ }, function(err, gasWillUsed) {
+ console.log(gasWillUsed);
+ gasWillUsed += 30000;
+
+ var proofOfPhoneContract = web3.eth.contract(contractABI);
+ proofOfPhoneContract.new(
+ {
+ data: compiled,
+ gas: gasWillUsed,
+ from: sender
+ }, function(err, contract) {
+ if (!err) {
+ if (typeof contract.address != 'undefined') {
+ console.log("contract:");
+ console.log(contract);
+
+ console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
+ } else {
+ console.log(contract.transactionHash);
+ }
+ } else {
+ console.log("error:");
+ console.log(err);
+ }
+ });
+ });
+}
\ No newline at end of file
diff --git a/web/public/javascripts/application/getAccounts.js b/web/public/javascripts/application/getAccounts.js
new file mode 100755
index 0000000..3351197
--- /dev/null
+++ b/web/public/javascripts/application/getAccounts.js
@@ -0,0 +1,12 @@
+//get current account chosen in MetaMask or opened at Parity
+function getAccounts(cb) {
+ web3.eth.getAccounts(function(err, accounts) {
+ if (err) {
+ $(".loading-container").hide();
+ showAlert(err, err.message);
+ return;
+ }
+
+ cb(accounts);
+ });
+}
\ No newline at end of file
diff --git a/web/public/javascripts/application/getAddressByPhone.js b/web/public/javascripts/application/getAddressByPhone.js
index 4e6a55d..9ea1fd2 100644
--- a/web/public/javascripts/application/getAddressByPhone.js
+++ b/web/public/javascripts/application/getAddressByPhone.js
@@ -1,27 +1,23 @@
-function getAddressByPhone(phone, changeStepNumber, cb) {
- $.post("/getAddressByPhone", {
- "globalToken": "cba2c691-47df-41e7-bc97-a0818103ed14",
- "phone": phone
- }, function( data ) {
- cb();
-
- if (data.success) {
- if (data.success.addr != "0x0000000000000000000000000000000000000000") {
- POPInputWallet.val(data.success.addr);
- changeStepNumber(null, 4);
- } else {
- swal({
- title: "Warning",
- text: "This phone wasn't set for any wallet yet",
- type: "warning"
- });
+function getAddressByPhone(web3, config, sender, phoneNumber, cb) {
+ attachToContract(web3, config, function(err, contract) {
+ getAddressByPhoneCall(web3, contract, sender, phoneNumber, function(err, addr) {
+ if (err) {
+ console.log("error: " + err);
+ cb(err);
+ return;
}
- } else {
- swal({
- title: "Error",
- text: data.error.message,
- type: "error"
- });
- }
+ console.log("getAddressByPhoneCall:");
+ console.log("addr: " + addr);
+ cb(null, addr);
+ });
+
+ });
+}
+
+function getAddressByPhoneCall(web3, contract, sender, phoneNumber, cb) {
+ if (!web3.isConnected()) cb({code: 500, title: "Error", message: "check RPC"}, null);
+
+ contract.getAddressByPhone.call(phoneNumber, {from: sender}, function(err, result) {
+ cb(err, result);
});
}
\ No newline at end of file
diff --git a/web/public/javascripts/application/getConfig.js b/web/public/javascripts/application/getConfig.js
new file mode 100755
index 0000000..0b0aff5
--- /dev/null
+++ b/web/public/javascripts/application/getConfig.js
@@ -0,0 +1,6 @@
+//gets config file with address of Oracles contract
+function getConfig(cb) {
+ $.getJSON("./javascripts/config.json", function(config) {
+ cb(config);
+ });
+}
\ No newline at end of file
diff --git a/web/public/javascripts/application/getPhoneByAddress.js b/web/public/javascripts/application/getPhoneByAddress.js
index 8f7e1f2..6b111f5 100644
--- a/web/public/javascripts/application/getPhoneByAddress.js
+++ b/web/public/javascripts/application/getPhoneByAddress.js
@@ -1,28 +1,23 @@
-function getPhoneByAddress(wallet, changeStepNumber, cb) {
- $.post("/getPhoneByAddress", {
- "globalToken": "cba2c691-47df-41e7-bc97-a0818103ed14",
- "wallet": wallet
- }, function( data ) {
- cb();
-
- if (data.success) {
- if (data.success.phone != 0) {
- POPInputPhone.val(data.success.phone);
- changeStepNumber(null, 4);
- } else {
- swal({
- title: "Warning",
- text: "Phone wasn't set for this wallet yet",
- type: "warning"
- });
+function getPhoneByAddress(web3, config, sender, addr, cb) {
+ attachToContract(web3, config, function(err, contract) {
+ getPhoneByAddressCall(web3, contract, sender, addr, function(err, phone) {
+ if (err) {
+ console.log("error: " + err);
+ cb(err);
+ return;
}
-
- } else {
- swal({
- title: "Error",
- text: data.error.message,
- type: "error"
- });
- }
+ console.log("getPhoneByAddressCall:");
+ console.log("phone: " + phone);
+ cb(null, phone);
+ });
+
+ });
+}
+
+function getPhoneByAddressCall(web3, contract, sender, addr, cb) {
+ if (!web3.isConnected()) cb({code: 500, title: "Error", message: "check RPC"}, null);
+
+ contract.getPhoneByAddress.call(addr, {from: sender}, function(err, result) {
+ cb(err, result);
});
}
\ No newline at end of file
diff --git a/web/public/javascripts/application/getWeb3.js b/web/public/javascripts/application/getWeb3.js
new file mode 100755
index 0000000..8ba284e
--- /dev/null
+++ b/web/public/javascripts/application/getWeb3.js
@@ -0,0 +1,22 @@
+//gets web3 object from MetaMask or Parity
+function getWeb3(callback) {
+ if (typeof window.web3 === 'undefined') {
+ // no web3, use fallback
+ console.error("Please use a web3 browser");
+ var msgNotEthereum = "You aren't connected to Oracles Network. Please, switch on Oracles plugin and refresh the page. Check Oracles network wiki for more info.";
+ swal("Warning", msgNotEthereum, "warning");
+ callback(myWeb3, false);
+ } else {
+ // window.web3 == web3 most of the time. Don't override the provided,
+ // web3, just wrap it in your Web3.
+ var myWeb3 = new Web3(window.web3.currentProvider);
+
+ // the default account doesn't seem to be persisted, copy it to our
+ // new instance
+ myWeb3.eth.defaultAccount = window.web3.eth.defaultAccount;
+
+ checkNetworkVersion(myWeb3, function(isOraclesNetwork) {
+ callback(myWeb3, isOraclesNetwork);
+ });
+ }
+}
\ No newline at end of file
diff --git a/web/public/javascripts/application/index.js b/web/public/javascripts/application/index.js
index 4f550d6..243466b 100644
--- a/web/public/javascripts/application/index.js
+++ b/web/public/javascripts/application/index.js
@@ -1,452 +1,482 @@
-$(document).ready(function() {
- var stepNum = $('#stepNum');
- var stepLabel = $('.POPLabel');
- var stepTitle = $('.POPTitle');
-
- var inputContainer = $('.inputContainer');
- var POPInputPhone = $('.POPInputPhone');
- var POPInputSMS = $('.POPInputSMS');
- var POPInputWallet = $('.POPInputWallet');
- var POPSubmit = $('#POPSubmit');
-
- var radioContainer = $('.radioContainer');
- var POPradios = $('.POPradio');
- var phoneRadio = $('#phoneRadio');
- var walletRadio = $('#walletRadio');
-
- var POPBottomDescriptionContainer = $('.POPBottomDescriptionContainer');
- var successContainer = $('.successContainer');
- var successTableCellWalletValue = $('.successTableCellWalletValue');
- var successTableCellPhoneValue = $('.successTableCellPhoneValue');
- var token = $('#token');
- var loader = $('.loader');
- var middleMainContainerInner = $('.middleMainContainerInner');
- var bottomDesc = $('#bottomDesc');
- var bottomDescAddition = $('#bottomDescAddition');
- var bottomDescAddition2 = $('#bottomDescAddition2');
- var githubRibbon = $('.githubRibbon');
- var copyTable = $('.copyTable');
- var copyTableCellWalletValue1 = $('.copyTableCellWalletValue1');
- var copyTableCellWalletValue2 = $('.copyTableCellWalletValue2');
-
- var POPTitleContainer = $('.POPTitleContainer');
- var POPTitleContainerShortend = $('.POPTitleContainerShortend');
- var POPDescContainer = $('.POPDescContainer');
- var POPDescContainerShortend = $('.POPDescContainerShortend');
-
- var step1CopyTable = $('#step1CopyTable');
- var step3CopyTable = $('#step3CopyTable');
-
- var checkButton = $('#verifyButton');
-
- //location.reload();
- var topLabel = $('.topLabel');
- var bottomLabelRight = $('.bottomLabelRight');
- var homeButton = $('.homeButton');
-
- var shareButton = $('.shareButton');
-
- var copyHashTable = $('#copyHashTable');
- var hashToAddress = "";
-
- var checkboxContainer = $(".checkboxContainer");
- var POPcheckbox = $(".POPcheckbox");
- var privacyPolicyCheckbox = $("#privacyPolicyCheckbox");
-
- var addressVal = $("#addressVal");
-
- var wallet = QueryString.wallet;
- if (wallet) {
- POPInputWallet.val(wallet);
- changeStepNumber(null, 5);
- walletRadioCheck();
- getPhoneByAddress(POPInputWallet.val(), changeStepNumber, function(err, output) {
- middleMainContainerInner.fadeIn(500);
- loader.addClass('hide');
- if (!err) {
- if (output != 0) {
- POPInputPhone.val(output);
- changeStepNumber(null, 4);
- }
- }
+//launches main application
+function startDapp(web3, isOraclesNetwork) {
+ console.log(web3);
+ var sender;
+ $(function() {
+ if (!isOraclesNetwork) return;
+ getAccounts(function(accounts) {
+ getConfig(function(config) {
+ getConfigCallBack(web3, accounts, config);
+ });
});
- }
- var clientCopyWallet = new ZeroClipboard( document.getElementById("copyWallet") );
+ var stepNum = $('#stepNum');
+ var stepLabel = $('.POPLabel');
+ var stepTitle = $('.POPTitle');
- clientCopyWallet.on( "ready", function( readyEvent ) {
- clientCopyWallet.on( "beforecopy", function( event ) {
- var addr = addressVal.text();
- $("#copyWallet").attr("data-clipboard-text",addr);
- });
- clientCopyWallet.on( "aftercopy", function( event ) {
- Materialize.toast('Address copied to buffer', 3000, 'rounded');
- });
- });
+ var inputContainer = $('.inputContainer');
+ var POPInputPhone = $('.POPInputPhone');
+ var POPInputSMS = $('.POPInputSMS');
+ var POPInputWallet = $('.POPInputWallet');
+ var POPSubmit = $('#POPSubmit');
- var clientShare = new ZeroClipboard( document.getElementById("POPShare") );
+ var radioContainer = $('.radioContainer');
+ var POPradios = $('.POPradio');
+ var phoneRadio = $('#phoneRadio');
+ var walletRadio = $('#walletRadio');
- clientShare.on( "ready", function( readyEvent ) {
- clientShare.on( "beforecopy", function( event ) {
- var host = "https://"+window.location.hostname;
- var newUrl = host + "/?wallet=" + successTableCellWalletValue.text().trim();
- $("#POPShare").attr("data-clipboard-text",newUrl);
- });
- clientShare.on( "aftercopy", function( event ) {
- Materialize.toast('url copied to buffer', 3000, 'rounded');
- });
- });
+ var POPBottomDescriptionContainer = $('.POPBottomDescriptionContainer');
+ var successContainer = $('.successContainer');
+ var successTableCellWalletValue = $('.successTableCellWalletValue');
+ var successTableCellPhoneValue = $('.successTableCellPhoneValue');
+ var token = $('#token');
+ var loader = $('.loader');
+ var middleMainContainerInner = $('.middleMainContainerInner');
+ var bottomDesc = $('#bottomDesc');
+ var bottomDescAddition = $('#bottomDescAddition');
+ var bottomDescAddition2 = $('#bottomDescAddition2');
+ var githubRibbon = $('.githubRibbon');
+ var copyTable = $('.copyTable');
+ var copyTableCellWalletValue1 = $('.copyTableCellWalletValue1');
+ copyTableCellWalletValue1.text("0xf7e9626dbaeb1a6c8b3d02379eb54b81f16e785f");
+ var copyTableCellWalletValue2 = $('.copyTableCellWalletValue2');
- phoneRadio.click(function(e) {
- phoneRadioCheck();
- });
+ var POPTitleContainer = $('.POPTitleContainer');
+ var POPTitleContainerShortend = $('.POPTitleContainerShortend');
+ var POPDescContainer = $('.POPDescContainer');
+ var POPDescContainerShortend = $('.POPDescContainerShortend');
- POPcheckbox.click(function(e) {
- if ($(this).find(".POPcheckboxSelected")[0]) {
- $(this).find(".POPcheckboxSelected").addClass("POPcheckboxUnselected");
- $(this).find(".POPcheckboxSelected").removeClass("POPcheckboxSelected");
- privacyPolicyCheckbox.prop( "checked", false );
- } else {
- $(this).find(".POPcheckboxUnselected").addClass("POPcheckboxSelected");
- $(this).find(".POPcheckboxUnselected").removeClass("POPcheckboxUnselected");
- privacyPolicyCheckbox.prop( "checked", true );
- }
- });
+ var step1CopyTable = $('#step1CopyTable');
+ var step3CopyTable = $('#step3CopyTable');
+
+ var checkButton = $('#verifyButton');
- function phoneRadioCheck() {
- POPradios.each(function(e) {
- $(this).find('.POPRadioInner').removeClass('POPradioSelected');
- $(this).find('.POPRadioInner').addClass('POPradioUnselected');
- });
- phoneRadio.find('.POPRadioInner').removeClass('POPradioUnselected');
- phoneRadio.find('.POPRadioInner').addClass('POPradioSelected');
- POPInputPhone.removeClass('hide');
- POPInputPhone.focus();
- POPInputWallet.addClass('hide');
- $("#radioCheckPhone").prop("checked", true);
- }
+ var topLabel = $('.topLabel');
+ var bottomLabelRight = $('.bottomLabelRight');
+ var homeButton = $('.homeButton');
+
+ var shareButton = $('.shareButton');
+
+ var copyHashTable = $('#copyHashTable');
+
+ var checkboxContainer = $(".checkboxContainer");
+ var POPcheckbox = $(".POPcheckbox");
+ var privacyPolicyCheckbox = $("#privacyPolicyCheckbox");
- walletRadio.click(function(e) {
- walletRadioCheck();
- });
+ var addressVal = $("#addressVal");
- function walletRadioCheck() {
- POPradios.each(function(e) {
- $(this).find('.POPRadioInner').removeClass('POPradioSelected');
- $(this).find('.POPRadioInner').addClass('POPradioUnselected');
- });
- walletRadio.find('.POPRadioInner').removeClass('POPradioUnselected');
- walletRadio.find('.POPRadioInner').addClass('POPradioSelected');
- POPInputWallet.removeClass('hide');
- POPInputWallet.focus();
- POPInputPhone.addClass('hide');
- $("#radioCheckWallet").prop("checked", true);
- }
+ function getConfigCallBack(web3, accounts, config) {
+ console.log(accounts);
+ if (accounts.length == 1) {
+ sender = accounts[0];
+ POPInputWallet.val(sender);
+ } else {
+ swal("Warning", "You haven't chosen any account in Oracles plugin. Please, choose your account in Oracles plugin and reload the page. Check Oracles network wiki for more info.", "warning");
+ }
- topLabel.click(function(e) {
- location.reload();
- });
+ var wallet = QueryString.wallet;
+ if (wallet) {
+ POPInputWallet.val(wallet);
+ changeStepNumber(null, 4);
+ walletRadioCheck();
+ getPhoneByAddress(web3, config, sender, POPInputWallet.val(), function(err, phone) {
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ if (!err) {
+ if (phone != 0) {
+ POPInputPhone.val(phone);
+ changeStepNumber(null, 3);
+ }
+ }
+ });
+ }
- bottomLabelRight.click(function(e) {
- location.reload();
- });
+ var clientCopyWallet = new ZeroClipboard( document.getElementById("copyWallet") );
- githubRibbon.click(function(e) {
- window.open("https://github.com/blocknotary/proofofphone", "_blank");
- });
+ clientCopyWallet.on( "ready", function( readyEvent ) {
+ clientCopyWallet.on( "beforecopy", function( event ) {
+ var addr = addressVal.text();
+ $("#copyWallet").attr("data-clipboard-text",addr);
+ });
+ clientCopyWallet.on( "aftercopy", function( event ) {
+ Materialize.toast('Address copied to buffer', 3000, 'rounded');
+ });
+ });
- homeButton.click(function(e) {
- location.reload();
- });
+ var clientShare = new ZeroClipboard( document.getElementById("POPShare") );
- checkButton.click(function(e) {
- changeStepNumber(null, 5);
- });
+ clientShare.on( "ready", function( readyEvent ) {
+ clientShare.on( "beforecopy", function( event ) {
+ var host = "https://"+window.location.hostname;
+ var newUrl = host + "/?wallet=" + successTableCellWalletValue.text().trim();
+ $("#POPShare").attr("data-clipboard-text",newUrl);
+ });
+ clientShare.on( "aftercopy", function( event ) {
+ Materialize.toast('url copied to buffer', 3000, 'rounded');
+ });
+ });
- POPSubmit.click(function(e) {
- submit();
- });
+ phoneRadio.click(function(e) {
+ phoneRadioCheck();
+ });
- POPInputPhone.keypress(function (e) {
- var key = e.which;
- if(key == 13) // the enter key code
- {
- POPSubmit.click();
- return false;
- }
- });
+ POPcheckbox.click(function(e) {
+ if ($(this).find(".POPcheckboxSelected")[0]) {
+ $(this).find(".POPcheckboxSelected").addClass("POPcheckboxUnselected");
+ $(this).find(".POPcheckboxSelected").removeClass("POPcheckboxSelected");
+ privacyPolicyCheckbox.prop( "checked", false );
+ } else {
+ $(this).find(".POPcheckboxUnselected").addClass("POPcheckboxSelected");
+ $(this).find(".POPcheckboxUnselected").removeClass("POPcheckboxUnselected");
+ privacyPolicyCheckbox.prop( "checked", true );
+ }
+ });
- POPInputSMS.keypress(function (e) {
- var key = e.which;
- if(key == 13) // the enter key code
- {
- POPSubmit.click();
- return false;
- }
- });
+ walletRadio.click(function(e) {
+ walletRadioCheck();
+ });
- POPInputWallet.keypress(function (e) {
- var key = e.which;
- if(key == 13) // the enter key code
- {
- POPSubmit.click();
- return false;
- }
- });
+ topLabel.click(function(e) {
+ location.reload();
+ });
- function submit() {
- var visibleInput = $('input:visible');
- var curStepNum = parseInt(stepNum.val());
- if (visibleInput.val() != "") {
- middleMainContainerInner.fadeOut(500);
- loader.removeClass('hide');
- switch(curStepNum) {
+ bottomLabelRight.click(function(e) {
+ location.reload();
+ });
+
+ githubRibbon.click(function(e) {
+ window.open("https://github.com/blocknotary/proofofphone", "_blank");
+ });
+
+ homeButton.click(function(e) {
+ location.reload();
+ });
+
+ checkButton.click(function(e) {
+ changeStepNumber(null, 4);
+ });
+
+ POPSubmit.click(function(e) {
+ submit(config, sender);
+ });
+
+ POPInputPhone.keypress(function (e) {
+ var key = e.which;
+ if (key == 13) { // the enter key code
+ POPSubmit.click();
+ return false;
+ }
+ });
+
+ POPInputSMS.keypress(function (e) {
+ var key = e.which;
+ if (key == 13) { // the enter key code
+ POPSubmit.click();
+ return false;
+ }
+ });
+
+ POPInputWallet.keypress(function (e) {
+ var key = e.which;
+ if (key == 13) { // the enter key code
+ POPSubmit.click();
+ return false;
+ }
+ });
+ }
+
+ function phoneRadioCheck() {
+ POPradios.each(function(e) {
+ $(this).find('.POPRadioInner').removeClass('POPradioSelected');
+ $(this).find('.POPRadioInner').addClass('POPradioUnselected');
+ });
+ phoneRadio.find('.POPRadioInner').removeClass('POPradioUnselected');
+ phoneRadio.find('.POPRadioInner').addClass('POPradioSelected');
+ POPInputPhone.removeClass('hide');
+ POPInputPhone.focus();
+ POPInputWallet.addClass('hide');
+ $("#radioCheckPhone").prop("checked", true);
+ }
+
+ function walletRadioCheck() {
+ POPradios.each(function(e) {
+ $(this).find('.POPRadioInner').removeClass('POPradioSelected');
+ $(this).find('.POPRadioInner').addClass('POPradioUnselected');
+ });
+ walletRadio.find('.POPRadioInner').removeClass('POPradioUnselected');
+ walletRadio.find('.POPRadioInner').addClass('POPradioSelected');
+ POPInputWallet.removeClass('hide');
+ POPInputWallet.focus();
+ POPInputPhone.addClass('hide');
+ $("#radioCheckWallet").prop("checked", true);
+ }
+
+ function submit(config, sender) {
+ var visibleInput = $('input:visible');
+ var curStepNum = parseInt(stepNum.val());
+ if (visibleInput.val() != "") {
+ middleMainContainerInner.fadeOut(500);
+ loader.removeClass('hide');
+ switch(curStepNum) {
+ case 1: {
+ var phoneNumber = parseInt(visibleInput.val());
+ sendCodeBySMS(phoneNumber, function(err, token) {
+ if (err) {
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ return showAlert(err, err.message);
+ }
+ addToken(web3, config, sender, phoneNumber, token, function(err, txHash) {
+ if (err) {
+ if (err.type != "REQUEST_REJECTED") showAlert(err, err.message);
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ return;
+ }
+ if (txHash) {
+ getTxCallBack(txHash, function() {
+ changeStepNumber(+1, null);
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ swal({
+ title: "Success",
+ text: "Code successfully sent by SMS",
+ type: "success"
+ });
+ });
+ }
+ });
+ });
+ } break;
+ case 2: {
+ var code = POPInputSMS.val();
+ var token = web3.sha3(code);
+ verifyCodeFromSMS(web3, config, sender, token, function(err, txHash) {
+ if (err) {
+ if (err.type != "REQUEST_REJECTED") showAlert(null, "Invalid code entered");
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ return;
+ }
+ if (txHash) {
+ getTxCallBack(txHash, function() {
+ changeStepNumber(+1, null);
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ });
+ }
+ });
+ } break;
+ case 4:
+ {
+ var radioVal = $('input[name=radioCheck]:checked').val();
+ if (radioVal == "wallet") {
+ getPhoneByAddress(web3, config, sender, POPInputWallet.val(), function(err, phone) {
+ if (err) return showAlert(err, err.message);
+ console.log(phone);
+ if (phone != 0) {
+ POPInputPhone.val(phone);
+ changeStepNumber(null, 3);
+ } else {
+ swal({
+ title: "Warning",
+ text: "Phone wasn't set for this wallet yet",
+ type: "warning"
+ });
+ }
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ });
+ } else {
+ getAddressByPhone(web3, config, sender, POPInputPhone.val(), function(err, addr) {
+ if (err) return showAlert(err, err.message);
+ if (addr != "0x0000000000000000000000000000000000000000" && addr != "0x") {
+ POPInputWallet.val(addr);
+ changeStepNumber(null, 3);
+ } else {
+ swal({
+ title: "Warning",
+ text: "This phone wasn't set for any wallet yet",
+ type: "warning"
+ });
+ }
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ });
+ }
+ }
+ break;
+ default:
+ {
+ middleMainContainerInner.fadeIn(500);
+ loader.addClass('hide');
+ }
+ break;
+ }
+ } else visibleInput.focus();
+ }
+
+ function changeStepNumber(addition, absolute) {
+ var newStepVal = 0;
+ if (addition) newStepVal = parseInt(stepNum.val()) + addition;
+ else newStepVal = absolute;
+ stepNum.val(newStepVal);
+ var newStepNum = parseInt(stepNum.val());
+
+ stepLabel.text("Step " + newStepNum);
+ switch(newStepNum) {
case 1:
- sendCodeBySMS(visibleInput.val(), changeStepNumber, function() {
- middleMainContainerInner.fadeIn(500);
- loader.addClass('hide');
- });
+ {
+ stepTitle.text("Submit your phone number");
+ bottomDesc.text("Enter a phone number you'd like to join with your Ethereum address. We will send you an SMS. After verification, we will ask you to deposit a service fee of 0.1 ether to a smart contract at the address");
+ stepLabel.removeClass("hide");
+ radioContainer.addClass("hide");
+ inputContainer.show();
+ POPBottomDescriptionContainer.show();
+ POPInputPhone.removeClass('hide');
+ POPInputPhone.focus();
+ POPInputSMS.addClass('hide');
+ POPInputWallet.addClass('hide');
+ POPBottomDescriptionContainer.removeClass("hide");
+ copyTable.show();
+ step1CopyTable.removeClass("hide");
+ step3CopyTable.addClass("hide");
+ bottomDescAddition.addClass("hide");
+ copyHashTable.addClass("hide");
+ successContainer.addClass("hide");
+ POPTitleContainerShortend.addClass("POPTitleContainer");
+ POPTitleContainerShortend.removeClass("POPTitleContainerShortend");
+ POPDescContainerShortend.addClass("POPDescContainer");
+ POPDescContainerShortend.removeClass("POPDescContainerShortend");
+ checkboxContainer.removeClass("hide");
+ }
break;
case 2:
- verifyCodeFromSMS(POPInputSMS.val(), POPInputPhone.val(), changeStepNumber, function() {
- middleMainContainerInner.fadeIn(500);
- loader.addClass('hide');
- });
+ {
+ stepTitle.text("Submit received code");
+ bottomDesc.text("Copy the code from the SMS to continue");
+ stepLabel.removeClass("hide");
+ radioContainer.addClass("hide");
+ inputContainer.show();
+ POPBottomDescriptionContainer.show();
+ POPInputPhone.addClass('hide');
+ POPInputSMS.removeClass('hide');
+ POPInputSMS.focus();
+ POPInputWallet.addClass('hide');
+ POPBottomDescriptionContainer.removeClass("hide");
+ step1CopyTable.addClass("hide");
+ step3CopyTable.addClass("hide");
+ bottomDescAddition.addClass("hide");
+ copyHashTable.addClass("hide");
+ successContainer.addClass("hide");
+ POPTitleContainerShortend.addClass("POPTitleContainer");
+ POPTitleContainerShortend.removeClass("POPTitleContainerShortend");
+ POPDescContainerShortend.addClass("POPDescContainer");
+ POPDescContainerShortend.removeClass("POPDescContainerShortend");
+ checkboxContainer.addClass("hide");
+ }
break;
case 3:
- addPhoneToWallet(POPInputPhone.val(), POPInputWallet.val(), POPInputSMS.val(), changeStepNumber, function() {
- middleMainContainerInner.fadeIn(500);
- loader.addClass('hide');
- });
- break;
- case 5:
{
- var radioVal = $('input[name=radioCheck]:checked').val();
- if (radioVal == "wallet") {
- getPhoneByAddress(POPInputWallet.val(), changeStepNumber, function() {
- middleMainContainerInner.fadeIn(500);
- loader.addClass('hide');
- });
- } else {
- getAddressByPhone(POPInputPhone.val(), changeStepNumber, function() {
- middleMainContainerInner.fadeIn(500);
- loader.addClass('hide');
- });
- }
+ stepTitle.text("Success");
+ stepLabel.addClass("hide");
+ POPBottomDescriptionContainer.hide();
+ bottomDescAddition2.html('There is a smart contract deployed to the Oracles network. You can find it here:\
+
'
+ + copyTableCellWalletValue1.text() +
+ '
This contract has the following public method signature:\
+ hasPhone (address _addr). \
+ If the _addr is registered in the contract\'s Phone Registry, the hasPhone method returns true. Otherwise it returns false.');
+
+ successTableCellWalletValue.text(POPInputWallet.val());
+ successTableCellPhoneValue.text(POPInputPhone.val());
+ radioContainer.addClass("hide");
+ inputContainer.hide();
+ POPBottomDescriptionContainer.addClass("hide");
+ step1CopyTable.addClass("hide");
+ step3CopyTable.addClass("hide");
+ bottomDescAddition.addClass("hide");
+ bottomDescAddition2.removeClass("hide");
+ copyHashTable.addClass("hide");
+ successContainer.removeClass("hide");
+ POPTitleContainerShortend.addClass("POPTitleContainer");
+ POPTitleContainerShortend.removeClass("POPTitleContainerShortend");
+ POPDescContainerShortend.addClass("POPDescContainer");
+ POPDescContainerShortend.removeClass("POPDescContainerShortend");
+ checkboxContainer.addClass("hide");
+
+ var clientCopyWallet3 = new ZeroClipboard( $("#copyWallet3")[0] );
+
+ clientCopyWallet3.on( "ready", function( readyEvent ) {
+ clientCopyWallet3.on( "aftercopy", function( event ) {
+ Materialize.toast('Address copied to buffer', 3000, 'rounded');
+ });
+ });
+ }
+ break;
+ case 4:
+ {
+ stepTitle.text("Check");
+ bottomDesc.html('Enter a phone number or an Ethereum address to continue. \
+ There is a smart contract deployed to the Oracles network. You can find it here:\
+
'
+ + copyTableCellWalletValue1.text() +
+ '
This contract has the following public method signature:\
+ hasPhone (address _addr). \
+ If the _addr is registered in the contract\'s Phone Registry, the hasPhone method returns true. Otherwise it returns false.');
+
+ POPBottomDescriptionContainer.show();
+ stepLabel.addClass("hide");
+ phoneRadioCheck();
+ radioContainer.removeClass("hide");
+ inputContainer.show();
+ POPBottomDescriptionContainer.show();
+ POPInputPhone.removeClass('hide');
+ POPInputPhone.focus();
+ POPInputSMS.addClass('hide');
+ POPInputWallet.addClass('hide');
+ POPBottomDescriptionContainer.removeClass("hide");
+ step1CopyTable.addClass("hide");
+ step3CopyTable.addClass("hide");
+ bottomDescAddition.addClass("hide");
+ bottomDescAddition2.addClass("hide");
+ copyHashTable.addClass("hide");
+ successContainer.addClass("hide");
+ POPTitleContainer.addClass("POPTitleContainerShortend");
+ POPTitleContainer.removeClass("POPTitleContainer");
+ POPDescContainer.addClass("POPDescContainerShortend");
+ POPDescContainer.removeClass("POPDescContainer");
+
+ var clientCopyWallet2 = new ZeroClipboard( $("#copyWallet2")[0] );
+
+ console.log(clientCopyWallet2);
+
+ clientCopyWallet2.on( "ready", function( readyEvent ) {
+ clientCopyWallet2.on( "aftercopy", function( event ) {
+ Materialize.toast('Address copied to buffer', 3000, 'rounded');
+ });
+ });
+ checkboxContainer.addClass("hide");
}
break;
default:
{
- middleMainContainerInner.fadeIn(500);
- loader.addClass('hide');
+ stepTitle.text("Submit your phone number");
+ stepLabel.removeClass("hide");
+ POPBottomDescriptionContainer.removeClass("hide");
+ step1CopyTable.addClass("hide");
+ step3CopyTable.addClass("hide");
+ bottomDescAddition.addClass("hide");
+ bottomDescAddition2.addClass("hide");
+ copyHashTable.addClass("hide");
+ successContainer.addClass("hide");
}
break;
}
- } else visibleInput.focus();
- }
-
- function changeStepNumber(addition, absolute) {
- console.log(hashToAddress);
- var newStepVal = 0;
- if (addition) newStepVal = parseInt(stepNum.val()) + addition;
- else newStepVal = absolute;
- stepNum.val(newStepVal);
- var newStepNum = parseInt(stepNum.val());
-
- stepLabel.text("Step " + newStepNum);
- switch(newStepNum) {
- case 1:
- {
- stepTitle.text("Submit your phone number");
- bottomDesc.text("Enter a phone number you'd like to join with your Ethereum address. We will send you an SMS. After verification, we will ask you to deposit a service fee of 0.1 ether to a smart contract at the address");
- stepLabel.removeClass("hide");
- radioContainer.addClass("hide");
- inputContainer.show();
- POPBottomDescriptionContainer.show();
- POPInputPhone.removeClass('hide');
- POPInputPhone.focus();
- POPInputSMS.addClass('hide');
- POPInputWallet.addClass('hide');
- POPBottomDescriptionContainer.removeClass("hide");
- copyTable.show();
- step1CopyTable.removeClass("hide");
- step3CopyTable.addClass("hide");
- bottomDescAddition.addClass("hide");
- copyHashTable.addClass("hide");
- successContainer.addClass("hide");
- POPTitleContainerShortend.addClass("POPTitleContainer");
- POPTitleContainerShortend.removeClass("POPTitleContainerShortend");
- POPDescContainerShortend.addClass("POPDescContainer");
- POPDescContainerShortend.removeClass("POPDescContainerShortend");
- checkboxContainer.removeClass("hide");
- }
- break;
- case 2:
- {
- stepTitle.text("Submit received code");
- bottomDesc.text("Copy the code from the SMS to continue");
- stepLabel.removeClass("hide");
- radioContainer.addClass("hide");
- inputContainer.show();
- POPBottomDescriptionContainer.show();
- POPInputPhone.addClass('hide');
- POPInputSMS.removeClass('hide');
- POPInputSMS.focus();
- POPInputWallet.addClass('hide');
- POPBottomDescriptionContainer.removeClass("hide");
- step1CopyTable.addClass("hide");
- step3CopyTable.addClass("hide");
- bottomDescAddition.addClass("hide");
- copyHashTable.addClass("hide");
- successContainer.addClass("hide");
- POPTitleContainerShortend.addClass("POPTitleContainer");
- POPTitleContainerShortend.removeClass("POPTitleContainerShortend");
- POPDescContainerShortend.addClass("POPDescContainer");
- POPDescContainerShortend.removeClass("POPDescContainerShortend");
- checkboxContainer.addClass("hide");
- }
- break;
- case 3:
- {
- stepTitle.text("Submit your Ethereum address");
- bottomDesc.text("Deposit service fee of 0.1 ETH to a smart contract with a message");
-
- $("#hashVal").text(hashToAddress);
- var clientCopyHash = new ZeroClipboard( document.getElementById("hashCopy") );
-
- clientCopyHash.on( "ready", function( readyEvent ) {
- clientCopyHash.on( "beforecopy", function( event ) {
- $("#hashCopy").attr("data-clipboard-text", hashToAddress);
- });
- clientCopyHash.on( "aftercopy", function( event ) {
- Materialize.toast('message copied to buffer', 3000, 'rounded');
- });
- });
-
- bottomDescAddition.html("at the address");
- stepLabel.removeClass("hide");
- radioContainer.addClass("hide");
- inputContainer.show();
- POPBottomDescriptionContainer.show();
- POPInputPhone.addClass('hide');
- POPInputSMS.addClass('hide');
- POPInputWallet.removeClass('hide');
- POPInputWallet.focus();
- POPBottomDescriptionContainer.removeClass("hide");
- step1CopyTable.addClass("hide");
- step3CopyTable.removeClass("hide");
- bottomDescAddition.removeClass("hide");
- copyHashTable.removeClass("hide");
- successContainer.addClass("hide");
- POPTitleContainerShortend.addClass("POPTitleContainer");
- POPTitleContainerShortend.removeClass("POPTitleContainerShortend");
- POPDescContainerShortend.addClass("POPDescContainer");
- POPDescContainerShortend.removeClass("POPDescContainerShortend");
- checkboxContainer.addClass("hide");
- }
- break;
- case 4:
- {
- stepTitle.text("Success");
- stepLabel.addClass("hide");
- POPBottomDescriptionContainer.hide();
- /*bottomDescAddition2.html('There is a smart contract has the following public method signature:\
-
\
- hasPhone (address _addr)\
-
\
- If the _addr is registered in the contract\'s Phone Registry, the hasPhone method returns true. Otherwise it returns false.');
- */
- bottomDescAddition2.html('There is a smart contract deployed to the public ethereum Blockchain. You can find it here:\
-
'
- + copyTableCellWalletValue1.text() +
- '
This contract has the following public method signature:\
- hasPhone (address _addr). \
- If the _addr is registered in the contract\'s Phone Registry, the hasPhone method returns true. Otherwise it returns false.');
-
- successTableCellWalletValue.text(POPInputWallet.val());
- successTableCellPhoneValue.text(POPInputPhone.val());
- radioContainer.addClass("hide");
- inputContainer.hide();
- POPBottomDescriptionContainer.addClass("hide");
- step1CopyTable.addClass("hide");
- step3CopyTable.addClass("hide");
- bottomDescAddition.addClass("hide");
- bottomDescAddition2.removeClass("hide");
- copyHashTable.addClass("hide");
- successContainer.removeClass("hide");
- POPTitleContainerShortend.addClass("POPTitleContainer");
- POPTitleContainerShortend.removeClass("POPTitleContainerShortend");
- POPDescContainerShortend.addClass("POPDescContainer");
- POPDescContainerShortend.removeClass("POPDescContainerShortend");
- checkboxContainer.addClass("hide");
-
- var clientCopyWallet3 = new ZeroClipboard( $("#copyWallet3")[0] );
-
- clientCopyWallet3.on( "ready", function( readyEvent ) {
- clientCopyWallet3.on( "aftercopy", function( event ) {
- Materialize.toast('Address copied to buffer', 3000, 'rounded');
- });
- });
- }
- break;
- case 5:
- {
- stepTitle.text("Check");
- bottomDesc.html('Enter a phone number or an ethereum address to continue. \
- There is a smart contract deployed to the public ethereum Blockchain. You can find it here:\
-