Skip to content

Commit

Permalink
UI of Second Version Improved
Browse files Browse the repository at this point in the history
  • Loading branch information
remedcu committed Nov 8, 2020
1 parent ffeb24d commit db23813
Show file tree
Hide file tree
Showing 18 changed files with 2,350 additions and 1,192 deletions.
2 changes: 1 addition & 1 deletion .solcover.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module.exports = {
providerOptions: {
total_accounts: 12
total_accounts: 15
}
}
158 changes: 80 additions & 78 deletions client/deploy.js
Original file line number Diff line number Diff line change
@@ -1,93 +1,95 @@
import constants from '@openzeppelin/test-helpers/src/constants';
import Web3 from 'web3';
import Inherichain from '../build/contracts/Inherichain.json';
import constants from "@openzeppelin/test-helpers/src/constants";
import Web3 from "web3";
import Inherichain from "../build/contracts/Inherichain.json";

let web3;
let inherichain;
let accounts = [];

const initWeb3 = () => {
return new Promise((resolve, reject) => {
// New Metamask
if(typeof window.ethereum !== 'undefined') {
web3 = new Web3(window.ethereum);
window.ethereum.enable()
.then(() => {
resolve(
new Web3(window.ethereum)
);
})
.catch(error => {
reject(error);
});
return;
}
// Old Metamask
if(typeof window.web3 !== 'undefined') {
return resolve(
new Web3(window.web3.currentProvider)
);
}
// For ganache-cli (for Ganache GUI, use 9545 instead of 8545)
resolve(new Web3('http://localhost:8545'));
});
return new Promise((resolve, reject) => {
// New Metamask
if (typeof window.ethereum !== "undefined") {
web3 = new Web3(window.ethereum);
window.ethereum
.enable()
.then(() => {
resolve(new Web3(window.ethereum));
})
.catch((error) => {
reject(error);
});
return;
}
// Old Metamask
if (typeof window.web3 !== "undefined") {
return resolve(new Web3(window.web3.currentProvider));
}
// For ganache-cli (for Ganache GUI, use 9545 instead of 8545)
resolve(new Web3("http://localhost:8545"));
});
};

const initAccount = () => {

web3.eth.getAccounts()
.then(_accounts => {
accounts = _accounts;
})

}
web3.eth.getAccounts().then((_accounts) => {
accounts = _accounts;
});
};

const initApp = () => {
const createWallet = document.getElementById("createWallet");
const createWalletStatus = document.getElementById("createWalletStatus");

const createWallet = document.getElementById('createWallet');
const createWalletStatus = document.getElementById('createWalletStatus');

createWallet.addEventListener('submit', async (e) => {
createWalletStatus.innerHTML = 'Transaction Pending...';
e.preventDefault();
const owner = e.target.elements[0].value;
const backupOwner = e.target.elements[1].value;
const heir = e.target.elements[2].value;
const charity = e.target.elements[3].value;
const approverOne = e.target.elements[4].value;
const approverTwo = e.target.elements[5].value;
const approverThree = e.target.elements[6].value;
const deadline = Number(e.target.elements[7].value);
const approverDeadline = Number(e.target.elements[8].value);
const charityDeadline = Number(e.target.elements[9].value);
inherichain = await new web3.eth.Contract(Inherichain.abi);
await inherichain.deploy({
data: Inherichain.bytecode,
arguments: [owner, backupOwner, heir, charity, [approverOne, approverTwo, approverThree], deadline, approverDeadline, charityDeadline]
})
.send({
from: accounts[0]
})
.then((instance) => {
inherichain = instance;
createWalletStatus.innerHTML = `Wallet was successfully created with address: ${inherichain.options.address}. Please keep this address saved somewhere.`;
})
.catch((err) => {
createWalletStatus.innerHTML = `There was an error while creating a new Wallet.`;
console.log(err);
});
});

}
createWallet.addEventListener("submit", async (e) => {
createWalletStatus.innerHTML = "Transaction Pending...";
e.preventDefault();
const owner = e.target.elements[0].value;
const backupOwner = e.target.elements[1].value;
const heir = e.target.elements[2].value;
const charity = e.target.elements[3].value;
const approverOne = e.target.elements[4].value;
const approverTwo = e.target.elements[5].value;
const approverThree = e.target.elements[6].value;
const deadline = Number(e.target.elements[7].value);
const approverDeadline = Number(e.target.elements[8].value);
const charityDeadline = Number(e.target.elements[9].value);
inherichain = await new web3.eth.Contract(Inherichain.abi);
await inherichain
.deploy({
data: Inherichain.bytecode,
arguments: [
owner,
backupOwner,
heir,
charity,
[approverOne, approverTwo, approverThree],
deadline,
approverDeadline,
charityDeadline,
],
})
.send({
from: accounts[0],
})
.then((instance) => {
inherichain = instance;
createWalletStatus.innerHTML = `Wallet was successfully created with address: ${inherichain.options.address}. Please keep this address saved somewhere.`;
})
.catch((err) => {
createWalletStatus.innerHTML = `There was an error while creating a new Wallet.`;
console.log(err);
});
});
};

document.addEventListener('DOMContentLoaded', () => {
initWeb3()
.then(_web3 => {
web3 = _web3;
initAccount();
initApp();
document.addEventListener("DOMContentLoaded", () => {
initWeb3()
.then((_web3) => {
web3 = _web3;
initAccount();
initApp();
})
.catch(error => {
console.log(error);
.catch((error) => {
console.log(error);
});
});
});
74 changes: 34 additions & 40 deletions client/index.js
Original file line number Diff line number Diff line change
@@ -1,51 +1,45 @@
import Web3 from 'web3';
import Web3 from "web3";

let web3;
let accounts = [];

const initWeb3 = () => {
return new Promise((resolve, reject) => {
// New Metamask
if(typeof window.ethereum !== 'undefined') {
const web3 = new Web3(window.ethereum);
window.ethereum.enable()
.then(() => {
resolve(
new Web3(window.ethereum)
);
})
.catch(error => {
reject(error);
});
return;
}
// Old Metamask
if(typeof window.web3 !== 'undefined') {
return resolve(
new Web3(window.web3.currentProvider)
);
}
// For ganache-cli (for Ganache GUI, use 9545 instead of 8545)
resolve(new Web3('http://localhost:8545'));
});
return new Promise((resolve, reject) => {
// New Metamask
if (typeof window.ethereum !== "undefined") {
const web3 = new Web3(window.ethereum);
window.ethereum
.enable()
.then(() => {
resolve(new Web3(window.ethereum));
})
.catch((error) => {
reject(error);
});
return;
}
// Old Metamask
if (typeof window.web3 !== "undefined") {
return resolve(new Web3(window.web3.currentProvider));
}
// For ganache-cli (for Ganache GUI, use 9545 instead of 8545)
resolve(new Web3("http://localhost:8545"));
});
};

const initApp = () => {
web3.eth.getAccounts().then((_accounts) => {
accounts = _accounts;
});
};

web3.eth.getAccounts()
.then(_accounts => {
accounts = _accounts;
})

}

document.addEventListener('DOMContentLoaded', () => {
initWeb3()
.then(_web3 => {
web3 = _web3;
initApp();
document.addEventListener("DOMContentLoaded", () => {
initWeb3()
.then((_web3) => {
web3 = _web3;
initApp();
})
.catch(error => {
console.log(error);
.catch((error) => {
console.log(error);
});
});
});

0 comments on commit db23813

Please sign in to comment.