coffee-supplychain-ethereum
coffee-supplychain-ethereum copied to clipboard
Insufficient access, Your Account is blocked by Admin , Please contact to Admin
Hi there. I am trying to run the program, but encountered such error.
I run the UI implementation with XAMPP and Metamask is in rinkeby testnet with admin account. For some reasons, it show me this.
I deployed the contract on remix in rinkeby testnet while followed all your deployment instructions (README.txt) in the contracts folder.
Afterwards, I pasted the 3 contracts and admin address in the UI app.js. Can you please kindly point out the issue for me? thank you
@CheeKeatSong can you please include the Browser's URL address bar in screenshot posted above
Here you go. Also for your FYI, when I manually changed the url to admin.php, it redirects me back to index page.
I have resolved the error. Please show your app.js file here.
I have resolved the error. Please show your app.js file here.
var globIcoAddress = { /'old-CoffeeMain': "0xfA171Cda184d815D20a318fCe9920AafdC04934e", 'old-CoffeeUser': "0x26d723acFe39f93A9702592dD9371851f81cF59F",/
'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d",
'CoffeeUser': "0x80f7b3Be3e1bAC2664630CeE4431f7855fA80802",
'Storage': " 0x3C942D65A53Cf9A4D41E84256C27ceEfDE2F84A4"
};
var globAdminAddress = "0x5A637C154f35fCa67E339d8A967b062bEf5eF48d";
var globMainContract = false;
var globUserContract = false;
var globCoinbase = false;
var globUserData = [];
var web3;
window.addEventListener('load', function()
{
$("#storageContractAddress").html(globIcoAddress.Storage);
$("#coffeeSupplychainContractAddress").html(globIcoAddress.CoffeeMain);
$("#userContractAddress").html(globIcoAddress.CoffeeUser);
if (typeof web3 !== 'undefined')
{
web3 = new Web3(web3.currentProvider);
// web3 = new Web3("https://rinkeby.infura.io/8U0AE4DUGSh8lVO3zmma");
console.log("init12", web3);
} else {
// set the provider you want from Web3.providers
console.log("init2");
web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"));
}
getCurrentAccountAddress((address)=>{
/* To Restrict User in Admin Section */
var currentPath = window.location.pathname;
var tmpStack = currentPath.split("/");
var currentPanel = tmpStack.pop();
if(currentPanel == "admin.php")
{
if(address != globAdminAddress){
window.location = "index.php";
}
}
});
console.log("init");
initContract();
updateLoginAccountStatus();
/* setInterval(function () {
updateLoginAccountStatus();
}, 500); */
});
function initContract()
{
globMainContract = new web3.eth.Contract(CoffeeSupplyChainAbi,globIcoAddress.CoffeeMain);
$(window).trigger("mainContractReady");
console.log('init 3');
globUserContract = new web3.eth.Contract(SupplyChainUserAbi,globIcoAddress.CoffeeUser);
$(window).trigger("userContractReady");
console.log('init 4');
}
function updateLoginAccountStatus(){
console.log('init 5');
web3.eth.getAccounts(function(err,accounts){
if(err){
console.log('An error occurred '+ err);
}
else if(accounts.length == 0){
console.log("Account",accounts.length);
sweetAlert('Error', 'Please login to MetaMask..!error'+accounts[0], 'error');
$("#currentUserAddress").html("chandan3");
}
else{
initAccountDetails();
}
});
}
function initAccountDetails(){
/*
* Get Current wallet account address
*/
getCurrentAccountAddress((address)=>{
globCoinbase = address;
$("#currentUserAddress").html(globCoinbase);
$(window).trigger("coinbaseReady");
});
}
function getCurrentAccountAddress(callback){
callback = callback || false;
web3.eth.getCoinbase()
.then((_coinbase)=>{
callback(_coinbase);
})
.catch((err)=>{
if(callback){
callback(0);
}
})
}
function getUserDetails(contractRef,userAddress,callback){
callback = callback || false;
contractRef.methods.getUser(userAddress).call()
.then((result)=>{
callback(result);
})
.catch((error)=>{
sweetAlert("Error","Unable to get User Details","error");
callback(0);
});
}
function getCultivationData(contractRef,batchNo,callback){
if(batchNo == undefined)
{
callback(0);
return;
}
callback = callback || false;
contractRef.methods.getBasicDetails(batchNo).call()
.then((result)=>{
callback(result);
})
.catch((error)=>{
sweetAlert("Error","Unable to get Cultivation Details","error");
callback(0);
});
}
function getFarmInspectorData(contractRef,batchNo,callback){
if(batchNo == undefined)
{
callback(0);
return;
}
callback = callback || false;
contractRef.methods.getFarmInspectorData(batchNo).call()
.then((result)=>{
callback(result);
})
.catch((error)=>{
sweetAlert("Error","Unable to get Farm Inspection Details","error");
callback(0);
});
}
function getHarvesterData(contractRef,batchNo,callback){
if(batchNo == undefined)
{
callback(0);
return;
}
callback = callback || false;
contractRef.methods.getHarvesterData(batchNo).call()
.then((result)=>{
callback(result);
})
.catch((error)=>{
sweetAlert("Error","Unable to get Harvesting Details","error");
callback(0);
});
}
function getExporterData(contractRef,batchNo,callback){
if(batchNo == undefined)
{
callback(0);
return;
}
callback = callback || false;
contractRef.methods.getExporterData(batchNo).call()
.then((result)=>{
callback(result);
})
.catch((error)=>{
sweetAlert("Error","Unable to get Exporting Details","error");
callback(0);
});
}
function getImporterData(contractRef,batchNo,callback){
if(batchNo == undefined)
{
callback(0);
return;
}
callback = callback || false;
contractRef.methods.getImporterData(batchNo).call()
.then((result)=>{
callback(result);
})
.catch((error)=>{
sweetAlert("Error","Unable to get Importing Details","error");
callback(0);
});
}
function getProcessorData(contractRef,batchNo,callback){
if(batchNo == undefined)
{
callback(0);
return;
}
callback = callback || false;
contractRef.methods.getProcessorData(batchNo).call()
.then((result)=>{
callback(result);
})
.catch((error)=>{
sweetAlert("Error","Unable to get Processing Details","error");
callback(0);
});
}
function getUserEvents(contractRef)
{
contractRef.getPastEvents('UserUpdate',{
fromBlock: 0
}).then(function (events){
$("#tblUser").DataTable().destroy();
$("#tblUser tbody").html(buildUserDetails(events));
$("#tblUser").DataTable({
"displayLength": 3,
"order": [[ 1, "asc" ]]
});
}).catch((err)=>{
console.log(err);
});
}
function buildUserDetails(events){
var filteredUser = {};
var isNewUser = false;
/*filtering latest updated user record*/
$(events).each(function(index,event){
if(filteredUser[event.returnValues.user] == undefined)
{
filteredUser[event.returnValues.user] = {};
filteredUser[event.returnValues.user].address = event.address;
filteredUser[event.returnValues.user].role = event.returnValues.role;
filteredUser[event.returnValues.user].user = event.returnValues.user;
filteredUser[event.returnValues.user].name = event.returnValues.name;
filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo;
filteredUser[event.returnValues.user].blockNumber = event.blockNumber;
}
else if(filteredUser[event.returnValues.user].blockNumber < event.blockNumber)
{
filteredUser[event.returnValues.user].address = event.address;
filteredUser[event.returnValues.user].role = event.returnValues.role;
filteredUser[event.returnValues.user].user = event.returnValues.user;
filteredUser[event.returnValues.user].name = event.returnValues.name;
filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo;
filteredUser[event.returnValues.user].blockNumber = event.blockNumber;
}
});
var builtUser = [];
for(tmpUser in filteredUser)
{
builtUser.push(filteredUser[tmpUser]);
}
/*build user Table*/
$("#totalUsers").html(builtUser.length);
return buildUserTable(builtUser);
}
function buildUserTable(globUserData){
var tbody = "";
var roleClass = "";
$(globUserData).each(function(index,data){
var role = data.role;
if(role == 'FARM_INSPECTION'){
roleClass = "info";
}else if(role == 'HARVESTER'){
roleClass = "success";
}else if(role == 'EXPORTER'){
roleClass = "warning";
}else if(role == 'IMPORTER'){
roleClass = "danger";
}else if(role == 'PROCESSOR'){
roleClass = "primary";
}
tbody += `<tr>
<td>`+data.user+`</td>
<td>`+data.name+`</td>
<td>`+data.contactNo+`</td>
<td><span class="label label-`+roleClass+` font-weight-100">`+role+`</span></td>
<td><a href="javascript:void(0);" class="text-inverse p-r-10" data-toggle="tooltip" data-userAddress="`+data.user+`" onclick="openEditUser(this);" title="Edit"><i class="ti-marker-alt"></i></a> </td>
</tr>`;
});
return tbody;
}
function handleTransactionResponse(txHash,finalMessage)
{
var txLink = "https://rinkeby.etherscan.io/tx/" + txHash ;
var txLinkHref = "<a target='_blank' href='"+txLink+"'> Click here for Transaction Status </a>" ;
sweetAlert("Success", "Please Check Transaction Status here : "+txLinkHref, "success");
$("#linkOngoingTransaction").html(txLinkHref);
$("#divOngoingTransaction").fadeIn();
/*scroll to top*/
$('html, body').animate({ scrollTop: 0 }, 'slow', function () {});
}
function handleTransactionReceipt(receipt,finalMessage)
{
$("#linkOngoingTransaction").html("");
$("#divOngoingTransaction").fadeOut();
// sweetAlert("Success", "Token Purchase Complete ", "success");
sweetAlert("Success", finalMessage, "success");
}
function handleGenericError(error_message)
{
if(error_message.includes("MetaMask Tx Signature"))
{
sweetAlert("Error", "Transaction Refused ", "error");
}
else
{
// sweetAlert("Error", "Error Occured, Please Try Again , if problem persist get in touch with us. ", "error");
sweetAlert("Error", error_message, "error");
}
}
function changeSwitchery(element, checked) {
if ( ( element.is(':checked') && checked == false ) || ( !element.is(':checked') && checked == true ) ) {
element.parent().find('.switchery').trigger('click');
}
}
/*==================================Bootstrap Model Start=========================================*/
function startLoader(){
$(".preloader").fadeIn();
}
function stopLoader(){
$(".preloader").fadeOut();
}
/*Set Default inactive*/
$("#userFormClick").click(function(){
$("#userForm").trigger('reset');
changeSwitchery($("#isActive"),false);
$("#userModelTitle").html("Add User");
$("#imageHash").html('');
$("#userFormModel").modal();
});
/*Edit User Model Form*/
function openEditUser(ref){
var userAddress = $(ref).attr("data-userAddress");
startLoader();
getUserDetails(globUserContract,userAddress,function(result){
$("#userWalletAddress").val(userAddress);
$("#userName").val(result.name);
$("#userContactNo").val(result.contactNo);
$("#userProfileHash").val(result.profileHash);
$('#userRoles').val(result.role).prop('selected', true);
var profileImageLink = 'https://ipfs.io/ipfs/'+result.profileHash;
var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>';
$("#imageHash").html(btnViewImage);
changeSwitchery($("#isActive"),result.isActive);
$("#userModelTitle").html("Update User");
stopLoader();
$("#userFormModel").modal();
});
}
// ipfs = window.IpfsApi('localhost', 5001);
ipfs = window.IpfsApi('ipfs.infura.io', '5001', {protocol: 'https'})
function handleFileUpload(event){
const file = event.target.files[0];
let reader = new window.FileReader();
reader.onloadend = function () {
$("#userFormBtn").prop('disabled',true);
$("i.fa-spinner").show();
$("#imageHash").html('Processing......');
saveToIpfs(reader)
}
reader.readAsArrayBuffer(file)
}
function saveToIpfs(reader){
let ipfsId;
const Buffer = window.IpfsApi().Buffer;
const buffer = Buffer.from(reader.result);
/*Upload Buffer to IPFS*/
ipfs.files.add(buffer, (err, result) => {
if (err) {
console.error(err)
return
}
var imageHash = result[0].hash;
var profileImageLink = 'https://ipfs.io/ipfs/'+imageHash;
var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>';
$("#userProfileHash").val(imageHash);
$("#imageHash").html(btnViewImage);
$("#userFormBtn").prop('disabled',false);
$("i.fa-spinner").hide();
});
}
Write all the addresses in small. For example, Replace 'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d" by 'CoffeeMain': "0x7961442d3a5e13d4933f7dba96f158dbda391c6d" and same for the other two variables.
I have resolved the error. Please show your app.js file here.
var globIcoAddress = { /'old-CoffeeMain': "0xfA171Cda184d815D20a318fCe9920AafdC04934e", 'old-CoffeeUser': "0x26d723acFe39f93A9702592dD9371851f81cF59F",/
'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d", 'CoffeeUser': "0x80f7b3Be3e1bAC2664630CeE4431f7855fA80802", 'Storage': " 0x3C942D65A53Cf9A4D41E84256C27ceEfDE2F84A4" }; var globAdminAddress = "0x5A637C154f35fCa67E339d8A967b062bEf5eF48d"; var globMainContract = false; var globUserContract = false; var globCoinbase = false; var globUserData = []; var web3; window.addEventListener('load', function() { $("#storageContractAddress").html(globIcoAddress.Storage); $("#coffeeSupplychainContractAddress").html(globIcoAddress.CoffeeMain); $("#userContractAddress").html(globIcoAddress.CoffeeUser); if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); // web3 = new Web3("https://rinkeby.infura.io/8U0AE4DUGSh8lVO3zmma"); console.log("init12", web3); } else { // set the provider you want from Web3.providers console.log("init2"); web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545")); } getCurrentAccountAddress((address)=>{ /* To Restrict User in Admin Section */ var currentPath = window.location.pathname; var tmpStack = currentPath.split("/"); var currentPanel = tmpStack.pop(); if(currentPanel == "admin.php") { if(address != globAdminAddress){ window.location = "index.php"; } } }); console.log("init"); initContract(); updateLoginAccountStatus(); /* setInterval(function () { updateLoginAccountStatus(); }, 500); */ }); function initContract() { globMainContract = new web3.eth.Contract(CoffeeSupplyChainAbi,globIcoAddress.CoffeeMain); $(window).trigger("mainContractReady"); console.log('init 3'); globUserContract = new web3.eth.Contract(SupplyChainUserAbi,globIcoAddress.CoffeeUser); $(window).trigger("userContractReady"); console.log('init 4'); } function updateLoginAccountStatus(){ console.log('init 5'); web3.eth.getAccounts(function(err,accounts){ if(err){ console.log('An error occurred '+ err); } else if(accounts.length == 0){ console.log("Account",accounts.length); sweetAlert('Error', 'Please login to MetaMask..!error'+accounts[0], 'error'); $("#currentUserAddress").html("chandan3"); } else{ initAccountDetails(); } }); } function initAccountDetails(){ /* * Get Current wallet account address */ getCurrentAccountAddress((address)=>{ globCoinbase = address; $("#currentUserAddress").html(globCoinbase); $(window).trigger("coinbaseReady"); }); } function getCurrentAccountAddress(callback){ callback = callback || false; web3.eth.getCoinbase() .then((_coinbase)=>{ callback(_coinbase); }) .catch((err)=>{ if(callback){ callback(0); } }) } function getUserDetails(contractRef,userAddress,callback){ callback = callback || false; contractRef.methods.getUser(userAddress).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get User Details","error"); callback(0); }); } function getCultivationData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getBasicDetails(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Cultivation Details","error"); callback(0); }); } function getFarmInspectorData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getFarmInspectorData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Farm Inspection Details","error"); callback(0); }); } function getHarvesterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getHarvesterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Harvesting Details","error"); callback(0); }); } function getExporterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getExporterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Exporting Details","error"); callback(0); }); } function getImporterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getImporterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Importing Details","error"); callback(0); }); } function getProcessorData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getProcessorData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Processing Details","error"); callback(0); }); } function getUserEvents(contractRef) { contractRef.getPastEvents('UserUpdate',{ fromBlock: 0 }).then(function (events){ $("#tblUser").DataTable().destroy(); $("#tblUser tbody").html(buildUserDetails(events)); $("#tblUser").DataTable({ "displayLength": 3, "order": [[ 1, "asc" ]] }); }).catch((err)=>{ console.log(err); }); } function buildUserDetails(events){ var filteredUser = {}; var isNewUser = false; /*filtering latest updated user record*/ $(events).each(function(index,event){ if(filteredUser[event.returnValues.user] == undefined) { filteredUser[event.returnValues.user] = {}; filteredUser[event.returnValues.user].address = event.address; filteredUser[event.returnValues.user].role = event.returnValues.role; filteredUser[event.returnValues.user].user = event.returnValues.user; filteredUser[event.returnValues.user].name = event.returnValues.name; filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo; filteredUser[event.returnValues.user].blockNumber = event.blockNumber; } else if(filteredUser[event.returnValues.user].blockNumber < event.blockNumber) { filteredUser[event.returnValues.user].address = event.address; filteredUser[event.returnValues.user].role = event.returnValues.role; filteredUser[event.returnValues.user].user = event.returnValues.user; filteredUser[event.returnValues.user].name = event.returnValues.name; filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo; filteredUser[event.returnValues.user].blockNumber = event.blockNumber; } }); var builtUser = []; for(tmpUser in filteredUser) { builtUser.push(filteredUser[tmpUser]); } /*build user Table*/ $("#totalUsers").html(builtUser.length); return buildUserTable(builtUser); } function buildUserTable(globUserData){ var tbody = ""; var roleClass = ""; $(globUserData).each(function(index,data){ var role = data.role; if(role == 'FARM_INSPECTION'){ roleClass = "info"; }else if(role == 'HARVESTER'){ roleClass = "success"; }else if(role == 'EXPORTER'){ roleClass = "warning"; }else if(role == 'IMPORTER'){ roleClass = "danger"; }else if(role == 'PROCESSOR'){ roleClass = "primary"; } tbody += `<tr> <td>`+data.user+`</td> <td>`+data.name+`</td> <td>`+data.contactNo+`</td> <td><span class="label label-`+roleClass+` font-weight-100">`+role+`</span></td> <td><a href="javascript:void(0);" class="text-inverse p-r-10" data-toggle="tooltip" data-userAddress="`+data.user+`" onclick="openEditUser(this);" title="Edit"><i class="ti-marker-alt"></i></a> </td> </tr>`; }); return tbody; } function handleTransactionResponse(txHash,finalMessage) { var txLink = "https://rinkeby.etherscan.io/tx/" + txHash ; var txLinkHref = "<a target='_blank' href='"+txLink+"'> Click here for Transaction Status </a>" ; sweetAlert("Success", "Please Check Transaction Status here : "+txLinkHref, "success"); $("#linkOngoingTransaction").html(txLinkHref); $("#divOngoingTransaction").fadeIn(); /*scroll to top*/ $('html, body').animate({ scrollTop: 0 }, 'slow', function () {}); } function handleTransactionReceipt(receipt,finalMessage) { $("#linkOngoingTransaction").html(""); $("#divOngoingTransaction").fadeOut(); // sweetAlert("Success", "Token Purchase Complete ", "success"); sweetAlert("Success", finalMessage, "success"); } function handleGenericError(error_message) { if(error_message.includes("MetaMask Tx Signature")) { sweetAlert("Error", "Transaction Refused ", "error"); } else { // sweetAlert("Error", "Error Occured, Please Try Again , if problem persist get in touch with us. ", "error"); sweetAlert("Error", error_message, "error"); } } function changeSwitchery(element, checked) { if ( ( element.is(':checked') && checked == false ) || ( !element.is(':checked') && checked == true ) ) { element.parent().find('.switchery').trigger('click'); } } /*==================================Bootstrap Model Start=========================================*/ function startLoader(){ $(".preloader").fadeIn(); } function stopLoader(){ $(".preloader").fadeOut(); } /*Set Default inactive*/ $("#userFormClick").click(function(){ $("#userForm").trigger('reset'); changeSwitchery($("#isActive"),false); $("#userModelTitle").html("Add User"); $("#imageHash").html(''); $("#userFormModel").modal(); }); /*Edit User Model Form*/ function openEditUser(ref){ var userAddress = $(ref).attr("data-userAddress"); startLoader(); getUserDetails(globUserContract,userAddress,function(result){ $("#userWalletAddress").val(userAddress); $("#userName").val(result.name); $("#userContactNo").val(result.contactNo); $("#userProfileHash").val(result.profileHash); $('#userRoles').val(result.role).prop('selected', true); var profileImageLink = 'https://ipfs.io/ipfs/'+result.profileHash; var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>'; $("#imageHash").html(btnViewImage); changeSwitchery($("#isActive"),result.isActive); $("#userModelTitle").html("Update User"); stopLoader(); $("#userFormModel").modal(); }); } // ipfs = window.IpfsApi('localhost', 5001); ipfs = window.IpfsApi('ipfs.infura.io', '5001', {protocol: 'https'}) function handleFileUpload(event){ const file = event.target.files[0]; let reader = new window.FileReader(); reader.onloadend = function () { $("#userFormBtn").prop('disabled',true); $("i.fa-spinner").show(); $("#imageHash").html('Processing......'); saveToIpfs(reader) } reader.readAsArrayBuffer(file) } function saveToIpfs(reader){ let ipfsId; const Buffer = window.IpfsApi().Buffer; const buffer = Buffer.from(reader.result); /*Upload Buffer to IPFS*/ ipfs.files.add(buffer, (err, result) => { if (err) { console.error(err) return } var imageHash = result[0].hash; var profileImageLink = 'https://ipfs.io/ipfs/'+imageHash; var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>'; $("#userProfileHash").val(imageHash); $("#imageHash").html(btnViewImage); $("#userFormBtn").prop('disabled',false); $("i.fa-spinner").hide(); }); }
Write all the addresses in small. For example, Replace 'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d" by 'CoffeeMain': "0x7961442d3a5e13d4933f7dba96f158dbda391c6d" and same for the other two variables.
I have resolved the error. Please show your app.js file here.
var globIcoAddress = { /'old-CoffeeMain': "0xfA171Cda184d815D20a318fCe9920AafdC04934e", 'old-CoffeeUser': "0x26d723acFe39f93A9702592dD9371851f81cF59F",/
'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d", 'CoffeeUser': "0x80f7b3Be3e1bAC2664630CeE4431f7855fA80802", 'Storage': " 0x3C942D65A53Cf9A4D41E84256C27ceEfDE2F84A4" }; var globAdminAddress = "0x5A637C154f35fCa67E339d8A967b062bEf5eF48d"; var globMainContract = false; var globUserContract = false; var globCoinbase = false; var globUserData = []; var web3; window.addEventListener('load', function() { $("#storageContractAddress").html(globIcoAddress.Storage); $("#coffeeSupplychainContractAddress").html(globIcoAddress.CoffeeMain); $("#userContractAddress").html(globIcoAddress.CoffeeUser); if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); // web3 = new Web3("https://rinkeby.infura.io/8U0AE4DUGSh8lVO3zmma"); console.log("init12", web3); } else { // set the provider you want from Web3.providers console.log("init2"); web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545")); } getCurrentAccountAddress((address)=>{ /* To Restrict User in Admin Section */ var currentPath = window.location.pathname; var tmpStack = currentPath.split("/"); var currentPanel = tmpStack.pop(); if(currentPanel == "admin.php") { if(address != globAdminAddress){ window.location = "index.php"; } } }); console.log("init"); initContract(); updateLoginAccountStatus(); /* setInterval(function () { updateLoginAccountStatus(); }, 500); */ }); function initContract() { globMainContract = new web3.eth.Contract(CoffeeSupplyChainAbi,globIcoAddress.CoffeeMain); $(window).trigger("mainContractReady"); console.log('init 3'); globUserContract = new web3.eth.Contract(SupplyChainUserAbi,globIcoAddress.CoffeeUser); $(window).trigger("userContractReady"); console.log('init 4'); } function updateLoginAccountStatus(){ console.log('init 5'); web3.eth.getAccounts(function(err,accounts){ if(err){ console.log('An error occurred '+ err); } else if(accounts.length == 0){ console.log("Account",accounts.length); sweetAlert('Error', 'Please login to MetaMask..!error'+accounts[0], 'error'); $("#currentUserAddress").html("chandan3"); } else{ initAccountDetails(); } }); } function initAccountDetails(){ /* * Get Current wallet account address */ getCurrentAccountAddress((address)=>{ globCoinbase = address; $("#currentUserAddress").html(globCoinbase); $(window).trigger("coinbaseReady"); }); } function getCurrentAccountAddress(callback){ callback = callback || false; web3.eth.getCoinbase() .then((_coinbase)=>{ callback(_coinbase); }) .catch((err)=>{ if(callback){ callback(0); } }) } function getUserDetails(contractRef,userAddress,callback){ callback = callback || false; contractRef.methods.getUser(userAddress).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get User Details","error"); callback(0); }); } function getCultivationData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getBasicDetails(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Cultivation Details","error"); callback(0); }); } function getFarmInspectorData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getFarmInspectorData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Farm Inspection Details","error"); callback(0); }); } function getHarvesterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getHarvesterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Harvesting Details","error"); callback(0); }); } function getExporterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getExporterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Exporting Details","error"); callback(0); }); } function getImporterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getImporterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Importing Details","error"); callback(0); }); } function getProcessorData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getProcessorData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Processing Details","error"); callback(0); }); } function getUserEvents(contractRef) { contractRef.getPastEvents('UserUpdate',{ fromBlock: 0 }).then(function (events){ $("#tblUser").DataTable().destroy(); $("#tblUser tbody").html(buildUserDetails(events)); $("#tblUser").DataTable({ "displayLength": 3, "order": [[ 1, "asc" ]] }); }).catch((err)=>{ console.log(err); }); } function buildUserDetails(events){ var filteredUser = {}; var isNewUser = false; /*filtering latest updated user record*/ $(events).each(function(index,event){ if(filteredUser[event.returnValues.user] == undefined) { filteredUser[event.returnValues.user] = {}; filteredUser[event.returnValues.user].address = event.address; filteredUser[event.returnValues.user].role = event.returnValues.role; filteredUser[event.returnValues.user].user = event.returnValues.user; filteredUser[event.returnValues.user].name = event.returnValues.name; filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo; filteredUser[event.returnValues.user].blockNumber = event.blockNumber; } else if(filteredUser[event.returnValues.user].blockNumber < event.blockNumber) { filteredUser[event.returnValues.user].address = event.address; filteredUser[event.returnValues.user].role = event.returnValues.role; filteredUser[event.returnValues.user].user = event.returnValues.user; filteredUser[event.returnValues.user].name = event.returnValues.name; filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo; filteredUser[event.returnValues.user].blockNumber = event.blockNumber; } }); var builtUser = []; for(tmpUser in filteredUser) { builtUser.push(filteredUser[tmpUser]); } /*build user Table*/ $("#totalUsers").html(builtUser.length); return buildUserTable(builtUser); } function buildUserTable(globUserData){ var tbody = ""; var roleClass = ""; $(globUserData).each(function(index,data){ var role = data.role; if(role == 'FARM_INSPECTION'){ roleClass = "info"; }else if(role == 'HARVESTER'){ roleClass = "success"; }else if(role == 'EXPORTER'){ roleClass = "warning"; }else if(role == 'IMPORTER'){ roleClass = "danger"; }else if(role == 'PROCESSOR'){ roleClass = "primary"; } tbody += `<tr> <td>`+data.user+`</td> <td>`+data.name+`</td> <td>`+data.contactNo+`</td> <td><span class="label label-`+roleClass+` font-weight-100">`+role+`</span></td> <td><a href="javascript:void(0);" class="text-inverse p-r-10" data-toggle="tooltip" data-userAddress="`+data.user+`" onclick="openEditUser(this);" title="Edit"><i class="ti-marker-alt"></i></a> </td> </tr>`; }); return tbody; } function handleTransactionResponse(txHash,finalMessage) { var txLink = "https://rinkeby.etherscan.io/tx/" + txHash ; var txLinkHref = "<a target='_blank' href='"+txLink+"'> Click here for Transaction Status </a>" ; sweetAlert("Success", "Please Check Transaction Status here : "+txLinkHref, "success"); $("#linkOngoingTransaction").html(txLinkHref); $("#divOngoingTransaction").fadeIn(); /*scroll to top*/ $('html, body').animate({ scrollTop: 0 }, 'slow', function () {}); } function handleTransactionReceipt(receipt,finalMessage) { $("#linkOngoingTransaction").html(""); $("#divOngoingTransaction").fadeOut(); // sweetAlert("Success", "Token Purchase Complete ", "success"); sweetAlert("Success", finalMessage, "success"); } function handleGenericError(error_message) { if(error_message.includes("MetaMask Tx Signature")) { sweetAlert("Error", "Transaction Refused ", "error"); } else { // sweetAlert("Error", "Error Occured, Please Try Again , if problem persist get in touch with us. ", "error"); sweetAlert("Error", error_message, "error"); } } function changeSwitchery(element, checked) { if ( ( element.is(':checked') && checked == false ) || ( !element.is(':checked') && checked == true ) ) { element.parent().find('.switchery').trigger('click'); } } /*==================================Bootstrap Model Start=========================================*/ function startLoader(){ $(".preloader").fadeIn(); } function stopLoader(){ $(".preloader").fadeOut(); } /*Set Default inactive*/ $("#userFormClick").click(function(){ $("#userForm").trigger('reset'); changeSwitchery($("#isActive"),false); $("#userModelTitle").html("Add User"); $("#imageHash").html(''); $("#userFormModel").modal(); }); /*Edit User Model Form*/ function openEditUser(ref){ var userAddress = $(ref).attr("data-userAddress"); startLoader(); getUserDetails(globUserContract,userAddress,function(result){ $("#userWalletAddress").val(userAddress); $("#userName").val(result.name); $("#userContactNo").val(result.contactNo); $("#userProfileHash").val(result.profileHash); $('#userRoles').val(result.role).prop('selected', true); var profileImageLink = 'https://ipfs.io/ipfs/'+result.profileHash; var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>'; $("#imageHash").html(btnViewImage); changeSwitchery($("#isActive"),result.isActive); $("#userModelTitle").html("Update User"); stopLoader(); $("#userFormModel").modal(); }); } // ipfs = window.IpfsApi('localhost', 5001); ipfs = window.IpfsApi('ipfs.infura.io', '5001', {protocol: 'https'}) function handleFileUpload(event){ const file = event.target.files[0]; let reader = new window.FileReader(); reader.onloadend = function () { $("#userFormBtn").prop('disabled',true); $("i.fa-spinner").show(); $("#imageHash").html('Processing......'); saveToIpfs(reader) } reader.readAsArrayBuffer(file) } function saveToIpfs(reader){ let ipfsId; const Buffer = window.IpfsApi().Buffer; const buffer = Buffer.from(reader.result); /*Upload Buffer to IPFS*/ ipfs.files.add(buffer, (err, result) => { if (err) { console.error(err) return } var imageHash = result[0].hash; var profileImageLink = 'https://ipfs.io/ipfs/'+imageHash; var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>'; $("#userProfileHash").val(imageHash); $("#imageHash").html(btnViewImage); $("#userFormBtn").prop('disabled',false); $("i.fa-spinner").hide(); }); }
this didn't work
Write all the addresses in small. For example, Replace 'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d" by 'CoffeeMain': "0x7961442d3a5e13d4933f7dba96f158dbda391c6d" and same for the other two variables.
I have resolved the error. Please show your app.js file here.
var globIcoAddress = { /'old-CoffeeMain': "0xfA171Cda184d815D20a318fCe9920AafdC04934e", 'old-CoffeeUser': "0x26d723acFe39f93A9702592dD9371851f81cF59F",/
'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d", 'CoffeeUser': "0x80f7b3Be3e1bAC2664630CeE4431f7855fA80802", 'Storage': " 0x3C942D65A53Cf9A4D41E84256C27ceEfDE2F84A4" }; var globAdminAddress = "0x5A637C154f35fCa67E339d8A967b062bEf5eF48d"; var globMainContract = false; var globUserContract = false; var globCoinbase = false; var globUserData = []; var web3; window.addEventListener('load', function() { $("#storageContractAddress").html(globIcoAddress.Storage); $("#coffeeSupplychainContractAddress").html(globIcoAddress.CoffeeMain); $("#userContractAddress").html(globIcoAddress.CoffeeUser); if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); // web3 = new Web3("https://rinkeby.infura.io/8U0AE4DUGSh8lVO3zmma"); console.log("init12", web3); } else { // set the provider you want from Web3.providers console.log("init2"); web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545")); } getCurrentAccountAddress((address)=>{ /* To Restrict User in Admin Section */ var currentPath = window.location.pathname; var tmpStack = currentPath.split("/"); var currentPanel = tmpStack.pop(); if(currentPanel == "admin.php") { if(address != globAdminAddress){ window.location = "index.php"; } } }); console.log("init"); initContract(); updateLoginAccountStatus(); /* setInterval(function () { updateLoginAccountStatus(); }, 500); */ }); function initContract() { globMainContract = new web3.eth.Contract(CoffeeSupplyChainAbi,globIcoAddress.CoffeeMain); $(window).trigger("mainContractReady"); console.log('init 3'); globUserContract = new web3.eth.Contract(SupplyChainUserAbi,globIcoAddress.CoffeeUser); $(window).trigger("userContractReady"); console.log('init 4'); } function updateLoginAccountStatus(){ console.log('init 5'); web3.eth.getAccounts(function(err,accounts){ if(err){ console.log('An error occurred '+ err); } else if(accounts.length == 0){ console.log("Account",accounts.length); sweetAlert('Error', 'Please login to MetaMask..!error'+accounts[0], 'error'); $("#currentUserAddress").html("chandan3"); } else{ initAccountDetails(); } }); } function initAccountDetails(){ /* * Get Current wallet account address */ getCurrentAccountAddress((address)=>{ globCoinbase = address; $("#currentUserAddress").html(globCoinbase); $(window).trigger("coinbaseReady"); }); } function getCurrentAccountAddress(callback){ callback = callback || false; web3.eth.getCoinbase() .then((_coinbase)=>{ callback(_coinbase); }) .catch((err)=>{ if(callback){ callback(0); } }) } function getUserDetails(contractRef,userAddress,callback){ callback = callback || false; contractRef.methods.getUser(userAddress).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get User Details","error"); callback(0); }); } function getCultivationData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getBasicDetails(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Cultivation Details","error"); callback(0); }); } function getFarmInspectorData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getFarmInspectorData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Farm Inspection Details","error"); callback(0); }); } function getHarvesterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getHarvesterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Harvesting Details","error"); callback(0); }); } function getExporterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getExporterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Exporting Details","error"); callback(0); }); } function getImporterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getImporterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Importing Details","error"); callback(0); }); } function getProcessorData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getProcessorData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Processing Details","error"); callback(0); }); } function getUserEvents(contractRef) { contractRef.getPastEvents('UserUpdate',{ fromBlock: 0 }).then(function (events){ $("#tblUser").DataTable().destroy(); $("#tblUser tbody").html(buildUserDetails(events)); $("#tblUser").DataTable({ "displayLength": 3, "order": [[ 1, "asc" ]] }); }).catch((err)=>{ console.log(err); }); } function buildUserDetails(events){ var filteredUser = {}; var isNewUser = false; /*filtering latest updated user record*/ $(events).each(function(index,event){ if(filteredUser[event.returnValues.user] == undefined) { filteredUser[event.returnValues.user] = {}; filteredUser[event.returnValues.user].address = event.address; filteredUser[event.returnValues.user].role = event.returnValues.role; filteredUser[event.returnValues.user].user = event.returnValues.user; filteredUser[event.returnValues.user].name = event.returnValues.name; filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo; filteredUser[event.returnValues.user].blockNumber = event.blockNumber; } else if(filteredUser[event.returnValues.user].blockNumber < event.blockNumber) { filteredUser[event.returnValues.user].address = event.address; filteredUser[event.returnValues.user].role = event.returnValues.role; filteredUser[event.returnValues.user].user = event.returnValues.user; filteredUser[event.returnValues.user].name = event.returnValues.name; filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo; filteredUser[event.returnValues.user].blockNumber = event.blockNumber; } }); var builtUser = []; for(tmpUser in filteredUser) { builtUser.push(filteredUser[tmpUser]); } /*build user Table*/ $("#totalUsers").html(builtUser.length); return buildUserTable(builtUser); } function buildUserTable(globUserData){ var tbody = ""; var roleClass = ""; $(globUserData).each(function(index,data){ var role = data.role; if(role == 'FARM_INSPECTION'){ roleClass = "info"; }else if(role == 'HARVESTER'){ roleClass = "success"; }else if(role == 'EXPORTER'){ roleClass = "warning"; }else if(role == 'IMPORTER'){ roleClass = "danger"; }else if(role == 'PROCESSOR'){ roleClass = "primary"; } tbody += `<tr> <td>`+data.user+`</td> <td>`+data.name+`</td> <td>`+data.contactNo+`</td> <td><span class="label label-`+roleClass+` font-weight-100">`+role+`</span></td> <td><a href="javascript:void(0);" class="text-inverse p-r-10" data-toggle="tooltip" data-userAddress="`+data.user+`" onclick="openEditUser(this);" title="Edit"><i class="ti-marker-alt"></i></a> </td> </tr>`; }); return tbody; } function handleTransactionResponse(txHash,finalMessage) { var txLink = "https://rinkeby.etherscan.io/tx/" + txHash ; var txLinkHref = "<a target='_blank' href='"+txLink+"'> Click here for Transaction Status </a>" ; sweetAlert("Success", "Please Check Transaction Status here : "+txLinkHref, "success"); $("#linkOngoingTransaction").html(txLinkHref); $("#divOngoingTransaction").fadeIn(); /*scroll to top*/ $('html, body').animate({ scrollTop: 0 }, 'slow', function () {}); } function handleTransactionReceipt(receipt,finalMessage) { $("#linkOngoingTransaction").html(""); $("#divOngoingTransaction").fadeOut(); // sweetAlert("Success", "Token Purchase Complete ", "success"); sweetAlert("Success", finalMessage, "success"); } function handleGenericError(error_message) { if(error_message.includes("MetaMask Tx Signature")) { sweetAlert("Error", "Transaction Refused ", "error"); } else { // sweetAlert("Error", "Error Occured, Please Try Again , if problem persist get in touch with us. ", "error"); sweetAlert("Error", error_message, "error"); } } function changeSwitchery(element, checked) { if ( ( element.is(':checked') && checked == false ) || ( !element.is(':checked') && checked == true ) ) { element.parent().find('.switchery').trigger('click'); } } /*==================================Bootstrap Model Start=========================================*/ function startLoader(){ $(".preloader").fadeIn(); } function stopLoader(){ $(".preloader").fadeOut(); } /*Set Default inactive*/ $("#userFormClick").click(function(){ $("#userForm").trigger('reset'); changeSwitchery($("#isActive"),false); $("#userModelTitle").html("Add User"); $("#imageHash").html(''); $("#userFormModel").modal(); }); /*Edit User Model Form*/ function openEditUser(ref){ var userAddress = $(ref).attr("data-userAddress"); startLoader(); getUserDetails(globUserContract,userAddress,function(result){ $("#userWalletAddress").val(userAddress); $("#userName").val(result.name); $("#userContactNo").val(result.contactNo); $("#userProfileHash").val(result.profileHash); $('#userRoles').val(result.role).prop('selected', true); var profileImageLink = 'https://ipfs.io/ipfs/'+result.profileHash; var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>'; $("#imageHash").html(btnViewImage); changeSwitchery($("#isActive"),result.isActive); $("#userModelTitle").html("Update User"); stopLoader(); $("#userFormModel").modal(); }); } // ipfs = window.IpfsApi('localhost', 5001); ipfs = window.IpfsApi('ipfs.infura.io', '5001', {protocol: 'https'}) function handleFileUpload(event){ const file = event.target.files[0]; let reader = new window.FileReader(); reader.onloadend = function () { $("#userFormBtn").prop('disabled',true); $("i.fa-spinner").show(); $("#imageHash").html('Processing......'); saveToIpfs(reader) } reader.readAsArrayBuffer(file) } function saveToIpfs(reader){ let ipfsId; const Buffer = window.IpfsApi().Buffer; const buffer = Buffer.from(reader.result); /*Upload Buffer to IPFS*/ ipfs.files.add(buffer, (err, result) => { if (err) { console.error(err) return } var imageHash = result[0].hash; var profileImageLink = 'https://ipfs.io/ipfs/'+imageHash; var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>'; $("#userProfileHash").val(imageHash); $("#imageHash").html(btnViewImage); $("#userFormBtn").prop('disabled',false); $("i.fa-spinner").hide(); }); }
this didn't work
Write all the addresses in small. For example, Replace 'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d" by 'CoffeeMain': "0x7961442d3a5e13d4933f7dba96f158dbda391c6d" and same for the other two variables.
I have resolved the error. Please show your app.js file here.
var globIcoAddress = { /'old-CoffeeMain': "0xfA171Cda184d815D20a318fCe9920AafdC04934e", 'old-CoffeeUser': "0x26d723acFe39f93A9702592dD9371851f81cF59F",/
'CoffeeMain': "0x7961442d3a5E13D4933f7DbA96F158DBDa391c6d", 'CoffeeUser': "0x80f7b3Be3e1bAC2664630CeE4431f7855fA80802", 'Storage': " 0x3C942D65A53Cf9A4D41E84256C27ceEfDE2F84A4" }; var globAdminAddress = "0x5A637C154f35fCa67E339d8A967b062bEf5eF48d"; var globMainContract = false; var globUserContract = false; var globCoinbase = false; var globUserData = []; var web3; window.addEventListener('load', function() { $("#storageContractAddress").html(globIcoAddress.Storage); $("#coffeeSupplychainContractAddress").html(globIcoAddress.CoffeeMain); $("#userContractAddress").html(globIcoAddress.CoffeeUser); if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); // web3 = new Web3("https://rinkeby.infura.io/8U0AE4DUGSh8lVO3zmma"); console.log("init12", web3); } else { // set the provider you want from Web3.providers console.log("init2"); web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545")); } getCurrentAccountAddress((address)=>{ /* To Restrict User in Admin Section */ var currentPath = window.location.pathname; var tmpStack = currentPath.split("/"); var currentPanel = tmpStack.pop(); if(currentPanel == "admin.php") { if(address != globAdminAddress){ window.location = "index.php"; } } }); console.log("init"); initContract(); updateLoginAccountStatus(); /* setInterval(function () { updateLoginAccountStatus(); }, 500); */ }); function initContract() { globMainContract = new web3.eth.Contract(CoffeeSupplyChainAbi,globIcoAddress.CoffeeMain); $(window).trigger("mainContractReady"); console.log('init 3'); globUserContract = new web3.eth.Contract(SupplyChainUserAbi,globIcoAddress.CoffeeUser); $(window).trigger("userContractReady"); console.log('init 4'); } function updateLoginAccountStatus(){ console.log('init 5'); web3.eth.getAccounts(function(err,accounts){ if(err){ console.log('An error occurred '+ err); } else if(accounts.length == 0){ console.log("Account",accounts.length); sweetAlert('Error', 'Please login to MetaMask..!error'+accounts[0], 'error'); $("#currentUserAddress").html("chandan3"); } else{ initAccountDetails(); } }); } function initAccountDetails(){ /* * Get Current wallet account address */ getCurrentAccountAddress((address)=>{ globCoinbase = address; $("#currentUserAddress").html(globCoinbase); $(window).trigger("coinbaseReady"); }); } function getCurrentAccountAddress(callback){ callback = callback || false; web3.eth.getCoinbase() .then((_coinbase)=>{ callback(_coinbase); }) .catch((err)=>{ if(callback){ callback(0); } }) } function getUserDetails(contractRef,userAddress,callback){ callback = callback || false; contractRef.methods.getUser(userAddress).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get User Details","error"); callback(0); }); } function getCultivationData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getBasicDetails(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Cultivation Details","error"); callback(0); }); } function getFarmInspectorData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getFarmInspectorData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Farm Inspection Details","error"); callback(0); }); } function getHarvesterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getHarvesterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Harvesting Details","error"); callback(0); }); } function getExporterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getExporterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Exporting Details","error"); callback(0); }); } function getImporterData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getImporterData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Importing Details","error"); callback(0); }); } function getProcessorData(contractRef,batchNo,callback){ if(batchNo == undefined) { callback(0); return; } callback = callback || false; contractRef.methods.getProcessorData(batchNo).call() .then((result)=>{ callback(result); }) .catch((error)=>{ sweetAlert("Error","Unable to get Processing Details","error"); callback(0); }); } function getUserEvents(contractRef) { contractRef.getPastEvents('UserUpdate',{ fromBlock: 0 }).then(function (events){ $("#tblUser").DataTable().destroy(); $("#tblUser tbody").html(buildUserDetails(events)); $("#tblUser").DataTable({ "displayLength": 3, "order": [[ 1, "asc" ]] }); }).catch((err)=>{ console.log(err); }); } function buildUserDetails(events){ var filteredUser = {}; var isNewUser = false; /*filtering latest updated user record*/ $(events).each(function(index,event){ if(filteredUser[event.returnValues.user] == undefined) { filteredUser[event.returnValues.user] = {}; filteredUser[event.returnValues.user].address = event.address; filteredUser[event.returnValues.user].role = event.returnValues.role; filteredUser[event.returnValues.user].user = event.returnValues.user; filteredUser[event.returnValues.user].name = event.returnValues.name; filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo; filteredUser[event.returnValues.user].blockNumber = event.blockNumber; } else if(filteredUser[event.returnValues.user].blockNumber < event.blockNumber) { filteredUser[event.returnValues.user].address = event.address; filteredUser[event.returnValues.user].role = event.returnValues.role; filteredUser[event.returnValues.user].user = event.returnValues.user; filteredUser[event.returnValues.user].name = event.returnValues.name; filteredUser[event.returnValues.user].contactNo = event.returnValues.contactNo; filteredUser[event.returnValues.user].blockNumber = event.blockNumber; } }); var builtUser = []; for(tmpUser in filteredUser) { builtUser.push(filteredUser[tmpUser]); } /*build user Table*/ $("#totalUsers").html(builtUser.length); return buildUserTable(builtUser); } function buildUserTable(globUserData){ var tbody = ""; var roleClass = ""; $(globUserData).each(function(index,data){ var role = data.role; if(role == 'FARM_INSPECTION'){ roleClass = "info"; }else if(role == 'HARVESTER'){ roleClass = "success"; }else if(role == 'EXPORTER'){ roleClass = "warning"; }else if(role == 'IMPORTER'){ roleClass = "danger"; }else if(role == 'PROCESSOR'){ roleClass = "primary"; } tbody += `<tr> <td>`+data.user+`</td> <td>`+data.name+`</td> <td>`+data.contactNo+`</td> <td><span class="label label-`+roleClass+` font-weight-100">`+role+`</span></td> <td><a href="javascript:void(0);" class="text-inverse p-r-10" data-toggle="tooltip" data-userAddress="`+data.user+`" onclick="openEditUser(this);" title="Edit"><i class="ti-marker-alt"></i></a> </td> </tr>`; }); return tbody; } function handleTransactionResponse(txHash,finalMessage) { var txLink = "https://rinkeby.etherscan.io/tx/" + txHash ; var txLinkHref = "<a target='_blank' href='"+txLink+"'> Click here for Transaction Status </a>" ; sweetAlert("Success", "Please Check Transaction Status here : "+txLinkHref, "success"); $("#linkOngoingTransaction").html(txLinkHref); $("#divOngoingTransaction").fadeIn(); /*scroll to top*/ $('html, body').animate({ scrollTop: 0 }, 'slow', function () {}); } function handleTransactionReceipt(receipt,finalMessage) { $("#linkOngoingTransaction").html(""); $("#divOngoingTransaction").fadeOut(); // sweetAlert("Success", "Token Purchase Complete ", "success"); sweetAlert("Success", finalMessage, "success"); } function handleGenericError(error_message) { if(error_message.includes("MetaMask Tx Signature")) { sweetAlert("Error", "Transaction Refused ", "error"); } else { // sweetAlert("Error", "Error Occured, Please Try Again , if problem persist get in touch with us. ", "error"); sweetAlert("Error", error_message, "error"); } } function changeSwitchery(element, checked) { if ( ( element.is(':checked') && checked == false ) || ( !element.is(':checked') && checked == true ) ) { element.parent().find('.switchery').trigger('click'); } } /*==================================Bootstrap Model Start=========================================*/ function startLoader(){ $(".preloader").fadeIn(); } function stopLoader(){ $(".preloader").fadeOut(); } /*Set Default inactive*/ $("#userFormClick").click(function(){ $("#userForm").trigger('reset'); changeSwitchery($("#isActive"),false); $("#userModelTitle").html("Add User"); $("#imageHash").html(''); $("#userFormModel").modal(); }); /*Edit User Model Form*/ function openEditUser(ref){ var userAddress = $(ref).attr("data-userAddress"); startLoader(); getUserDetails(globUserContract,userAddress,function(result){ $("#userWalletAddress").val(userAddress); $("#userName").val(result.name); $("#userContactNo").val(result.contactNo); $("#userProfileHash").val(result.profileHash); $('#userRoles').val(result.role).prop('selected', true); var profileImageLink = 'https://ipfs.io/ipfs/'+result.profileHash; var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>'; $("#imageHash").html(btnViewImage); changeSwitchery($("#isActive"),result.isActive); $("#userModelTitle").html("Update User"); stopLoader(); $("#userFormModel").modal(); }); } // ipfs = window.IpfsApi('localhost', 5001); ipfs = window.IpfsApi('ipfs.infura.io', '5001', {protocol: 'https'}) function handleFileUpload(event){ const file = event.target.files[0]; let reader = new window.FileReader(); reader.onloadend = function () { $("#userFormBtn").prop('disabled',true); $("i.fa-spinner").show(); $("#imageHash").html('Processing......'); saveToIpfs(reader) } reader.readAsArrayBuffer(file) } function saveToIpfs(reader){ let ipfsId; const Buffer = window.IpfsApi().Buffer; const buffer = Buffer.from(reader.result); /*Upload Buffer to IPFS*/ ipfs.files.add(buffer, (err, result) => { if (err) { console.error(err) return } var imageHash = result[0].hash; var profileImageLink = 'https://ipfs.io/ipfs/'+imageHash; var btnViewImage = '<a href="'+profileImageLink+'" target="_blank" class=" text-danger"><i class="fa fa-eye"></i> View Image</a>'; $("#userProfileHash").val(imageHash); $("#imageHash").html(btnViewImage); $("#userFormBtn").prop('disabled',false); $("i.fa-spinner").hide(); }); }
this didn't work
Well, you have to change this one as well: var globAdminAddress = "0x5A637C154f35fCa67E339d8A967b062bEf5eF48d"
I tried all above but didn't work
I'm getting the same problem. Did you solve the question? I put all addresses in small letters, but it doesn't work when I'm accessing as a user.
Same issue... looking for some help. Did anyone find a solution for it?
I must say that it took me hours to pass the 'Please login to MetaMask..!' since web3.eth.getAccounts() would return empty; when finally, with no code modification, Metamask worked.
I found the mistake - for my case!
The point is that I was trying to access the user.php while there was no user created. I first had to login into admin.php and create a user if needed (I used the same wallet address or could be any other one).
I found the mistake - for my case!
The point is that I was trying to access the user.php while there was no user created. I first had to login into admin.php and create a user if needed (I used the same wallet address or could be any other one).
Hello Rogergili, Could you elaborate more on how to do this? I didn't quite understand you here! Thanks :)
Got the same issue.
Changing globAdminAddress
to lowercase helped me access admin.php
and add some users. Login from added users addresses through index.php
works well, but trying to log from admin address still gives "Insufficient access".
did anyone solve the problem? I am still having trouble getting into the admins panel