Skip to content

Commit

Permalink
Added Basic Frontend to v2. Test Pending.
Browse files Browse the repository at this point in the history
  • Loading branch information
remedcu committed Nov 8, 2020
1 parent 8f085c5 commit ffeb24d
Show file tree
Hide file tree
Showing 5 changed files with 124 additions and 38 deletions.
14 changes: 8 additions & 6 deletions client/deploy.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,17 @@ const initApp = () => {
const owner = e.target.elements[0].value;
const backupOwner = e.target.elements[1].value;
const heir = e.target.elements[2].value;
const approverOne = e.target.elements[3].value;
const approverTwo = e.target.elements[4].value;
const approverThree = e.target.elements[5].value;
const deadline = Number(e.target.elements[6].value);
const approverDeadline = Number(e.target.elements[7].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, [approverOne, approverTwo, approverThree], deadline, approverDeadline]
arguments: [owner, backupOwner, heir, charity, [approverOne, approverTwo, approverThree], deadline, approverDeadline, charityDeadline]
})
.send({
from: accounts[0]
Expand Down
75 changes: 64 additions & 11 deletions client/interact.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import Inherichain from '../build/contracts/Inherichain.json';
let web3;
let inherichain;
let accounts = [];
let status = ['Initial', 'Heir Claimed', 'Approver Approved', 'Initiated Charity']

const initWeb3 = () => {
return new Promise((resolve, reject) => {
Expand Down Expand Up @@ -59,20 +60,21 @@ const getData = () => {
const currentOwner = document.getElementById('currentOwner');
const currentBackupOwner = document.getElementById('currentBackupOwner');
const currentHeir = document.getElementById('currentHeir');
const currentCharity = document.getElementById('currentCharity');
const approverOne = document.getElementById('currentApproverOne');
const approverTwo = document.getElementById('currentApproverTwo');
const approverThree = document.getElementById('currentApproverThree');
const approverCount = document.getElementById('currentApproverCount');
const deadline = document.getElementById('currentDeadline');
const approverDeadline = document.getElementById('currentApproverDeadline');
const claimStarted = document.getElementById('currentClaimStartedStatus');
const claimStatus = document.getElementById('currentClaimStatus');
const charityDeadline = document.getElementById('currentCharityDeadline');
const contractStatus = document.getElementById('currentContractStatus');
const claimTime = document.getElementById('currentClaimTime');
const voteCount = document.getElementById('currentVoteCount');

web3.eth.getBalance(accounts[0])
.then(values => {
currentUserBalance.innerHTML = web3.utils.fromWei(values);
currentUserBalance.innerHTML = web3.utils.fromWei(values) + ' ETH';
})
.catch(error => {
currentUserBalance.innerHTML = 'There was an error while reading the data.';
Expand All @@ -81,7 +83,7 @@ const getData = () => {

web3.eth.getBalance(inherichain.options.address)
.then(values => {
currentContractBalance.innerHTML = web3.utils.fromWei(values);
currentContractBalance.innerHTML = web3.utils.fromWei(values) + ' ETH';
})
.catch(error => {
currentContractBalance.innerHTML = 'There was an error while reading the data.';
Expand Down Expand Up @@ -118,6 +120,16 @@ const getData = () => {
console.log(error);
});

inherichain.methods.charity()
.call({from: accounts[0]})
.then(values => {
currentCharity.innerHTML = values;
})
.catch(error => {
currentCharity.innerHTML = 'There was an error while reading the data.';
console.log(error);
});

inherichain.methods.approvers(0)
.call({from: accounts[0]})
.then(values => {
Expand Down Expand Up @@ -178,23 +190,23 @@ const getData = () => {
console.log(error);
});

inherichain.methods.claimStarted()
inherichain.methods.charityDeadline()
.call({from: accounts[0]})
.then(values => {
claimStarted.innerHTML = values;
charityDeadline.innerHTML = values;
})
.catch(error => {
claimStarted.innerHTML = 'There was an error while reading the data.';
charityDeadline.innerHTML = 'There was an error while reading the data.';
console.log(error);
});

inherichain.methods.claimStatus()
inherichain.methods.status()
.call({from: accounts[0]})
.then(values => {
claimStatus.innerHTML = values;
contractStatus.innerHTML = status[values];
})
.catch(error => {
claimStatus.innerHTML = 'There was an error while reading the data.';
contractStatus.innerHTML = 'There was an error while reading the data.';
console.log(error);
});

Expand Down Expand Up @@ -224,6 +236,7 @@ const clearStatus = () => {
const userDepositStatus = document.getElementById('userDepositStatus');
const ownerUpdateBackupOwnerStatus = document.getElementById('ownerUpdateBackupOwnerStatus');
const ownerUpdateHeirStatus = document.getElementById('ownerUpdateHeirStatus');
const ownerUpdateCharityStatus = document.getElementById('ownerUpdateCharityStatus');
const ownerAddApproverStatus = document.getElementById('ownerAddApproverStatus');
const ownerDeleteApproverStatus = document.getElementById('ownerDeleteApproverStatus');
const ownerUpdateDeadlineStatus = document.getElementById('ownerUpdateDeadlineStatus');
Expand All @@ -237,10 +250,12 @@ const clearStatus = () => {
const accessWalletApproverStatus = document.getElementById('accessWalletApproverStatus');
const accessWalletDeadlineStatus = document.getElementById('accessWalletDeadlineStatus');
const approverAcceptanceStatus = document.getElementById('approverAcceptanceStatus');
const initiateCharityStatus = document.getElementById('initiateCharityStatus');

userDepositStatus.innerHTML = '';
ownerUpdateBackupOwnerStatus.innerHTML = '';
ownerUpdateHeirStatus.innerHTML = '';
ownerUpdateCharityStatus.innerHTML = '';
ownerAddApproverStatus.innerHTML = '';
ownerDeleteApproverStatus.innerHTML = '';
ownerUpdateDeadlineStatus.innerHTML = '';
Expand All @@ -254,12 +269,14 @@ const clearStatus = () => {
accessWalletApproverStatus.innerHTML = '';
accessWalletDeadlineStatus.innerHTML = '';
approverAcceptanceStatus.innerHTML = '';
initiateCharityStatus.innerHTML = '';
}

const initApp = () => {
const userDepositETH = document.getElementById('userDepositETH');
const ownerUpdateBackupOwner = document.getElementById('ownerUpdateBackupOwner');
const ownerUpdateHeir = document.getElementById('ownerUpdateHeir');
const ownerUpdateCharity = document.getElementById('ownerUpdateCharity');
const ownerAddApprover = document.getElementById('ownerAddApprover');
const ownerDeleteApprover = document.getElementById('ownerDeleteApprover');
const ownerUpdateDeadline = document.getElementById('ownerUpdateDeadline');
Expand All @@ -273,10 +290,12 @@ const initApp = () => {
const accessWalletApprover = document.getElementById('accessWalletApprover');
const accessWalletDeadline = document.getElementById('accessWalletDeadline');
const approverAcceptance = document.getElementById('approverAcceptance');
const initiateCharity = document.getElementById('initiateCharity');

const userDepositStatus = document.getElementById('userDepositStatus');
const ownerUpdateBackupOwnerStatus = document.getElementById('ownerUpdateBackupOwnerStatus');
const ownerUpdateHeirStatus = document.getElementById('ownerUpdateHeirStatus');
const ownerUpdateCharityStatus = document.getElementById('ownerUpdateCharityStatus');
const ownerAddApproverStatus = document.getElementById('ownerAddApproverStatus');
const ownerDeleteApproverStatus = document.getElementById('ownerDeleteApproverStatus');
const ownerUpdateDeadlineStatus = document.getElementById('ownerUpdateDeadlineStatus');
Expand All @@ -290,6 +309,7 @@ const initApp = () => {
const accessWalletApproverStatus = document.getElementById('accessWalletApproverStatus');
const accessWalletDeadlineStatus = document.getElementById('accessWalletDeadlineStatus');
const approverAcceptanceStatus = document.getElementById('approverAcceptanceStatus');
const initiateCharityStatus = document.getElementById('initiateCharityStatus');

userDepositETH.addEventListener('submit', async (e) => {
clearStatus();
Expand Down Expand Up @@ -345,6 +365,23 @@ const initApp = () => {
});
});

ownerUpdateCharity.addEventListener('submit', async (e) => {
clearStatus();
ownerUpdateCharityStatus.innerHTML = 'Transaction Pending...';
e.preventDefault();
const address = e.target.elements[0].value;
inherichain.methods.updateCharity(address)
.send({from: accounts[0]})
.then(() => {
ownerUpdateCharityStatus.innerHTML = 'Success!';
getData();
})
.catch(error => {
ownerUpdateCharityStatus.innerHTML = 'There was an error!';
console.log(error);
});
});

ownerAddApprover.addEventListener('submit', async (e) => {
clearStatus();
ownerAddApproverStatus.innerHTML = 'Transaction Pending...';
Expand Down Expand Up @@ -385,7 +422,8 @@ const initApp = () => {
e.preventDefault();
const deadline = e.target.elements[0].value;
const approverDeadline = e.target.elements[1].value;
inherichain.methods.updateDeadline(deadline, approverDeadline)
const charityDeadline = e.target.elements[2].value;
inherichain.methods.updateDeadline(deadline, approverDeadline, charityDeadline)
.send({from: accounts[0]})
.then(() => {
ownerUpdateDeadlineStatus.innerHTML = 'Success!';
Expand Down Expand Up @@ -592,6 +630,21 @@ const initApp = () => {
});
});

initiateCharity.addEventListener('submit', async (e) => {
clearStatus();
initiateCharityStatus.innerHTML = 'Transaction Pending...';
e.preventDefault();
inherichain.methods.initiateCharity()
.send({from: accounts[0]})
.then(() => {
initiateCharityStatus.innerHTML = 'Success!';
getData();
})
.catch(error => {
initiateCharityStatus.innerHTML = 'There was an error!';
console.log(error);
});
});
}

document.addEventListener('DOMContentLoaded', () => {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "inherichain",
"version": "2.0.1",
"version": "2.1.1",
"description": "A wallet which has inheritance built in on the Ethereum Blockchain.",
"main": "truffle-config.js",
"directories": {
Expand Down
14 changes: 11 additions & 3 deletions public/deploy.html
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,14 @@ <h1>Create New Wallet!</h1>
</div>
<br>
<div class="row">
<div class="col-sm-12">
<div class="col-sm-6">
<label for="setHeir">Heir :</label>
<input id="setHeir" type="text" class="form-control" placeholder="Enter heir address." required>
</div>
<div class="col-sm-6">
<label for="setCharity">Charity :</label>
<input id="setCharity" type="text" class="form-control" placeholder="Enter charity address." required>
</div>
</div>
<br>
<div class="row">
Expand All @@ -77,14 +81,18 @@ <h1>Create New Wallet!</h1>
</div>
<br>
<div class="row">
<div class="col-sm-6">
<div class="col-sm-4">
<label for="setDeadline">Deadline :</label>
<input id="setDeadline" type="number" class="form-control" placeholder="Enter deadline duration.">
</div>
<div class="col-sm-6">
<div class="col-sm-4">
<label for="setApproverDeadline">Approver Deadline :</label>
<input id="setApproverDeadline" type="number" class="form-control" placeholder="Enter approver deadline duration.">
</div>
<div class="col-sm-4">
<label for="setCharityDeadline">Charity Deadline :</label>
<input id="setCharityDeadline" type="number" class="form-control" placeholder="Enter charity deadline duration.">
</div>
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
Expand Down
57 changes: 40 additions & 17 deletions public/interact.html
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ <h1>Interact with your Wallet Contract</h1>
<h3>Current Status :</h3>
<div class="row">
<div class="col-sm-6">
User Balance : <div id="currentUserBalance">0</div>ETH
User Balance : <div id="currentUserBalance"></div>
</div>
<div class="col-sm-6">
Contract Balance : <div id="currentContractBalance">0</div>ETH
Contract Balance : <div id="currentContractBalance"></div>
</div>
</div>
<hr>
Expand All @@ -82,6 +82,9 @@ <h3>Current Status :</h3>
<div class="col-sm-6">
Heir : <div id="currentHeir"></div>
</div>
<div class="col-sm-6">
Charity : <div id="currentCharity"></div>
</div>
</div>
<hr>
<div class="row">
Expand All @@ -100,28 +103,25 @@ <h3>Current Status :</h3>
</div>
<hr>
<div class="row">
<div class="col-sm-6">
<div class="col-sm-4">
Deadline (in Seconds) : <div id="currentDeadline"></div>
</div>
<div class="col-sm-6">
<div class="col-sm-4">
Approver Deadline (in Seconds) : <div id="currentApproverDeadline"></div>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-6">
Claim Started : <div id="currentClaimStartedStatus"></div>
</div>
<div class="col-sm-6">
Claim Status : <div id="currentClaimStatus"></div>
<div class="col-sm-4">
Charity Deadline (in Seconds) : <div id="currentCharityDeadline"></div>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-6">
<div class="col-sm-4">
Contract Status : <div id="currentContractStatus"></div>
</div>
<div class="col-sm-4">
Claim Time (in Seconds) : <div id="currentClaimTime"></div>
</div>
<div class="col-sm-6">
<div class="col-sm-4">
Vote Count : <div id="currentVoteCount"></div>
</div>
</div>
Expand Down Expand Up @@ -170,6 +170,17 @@ <h5>Update Heir</h5>
<div id="ownerUpdateHeirStatus"></div>
</form>
</div>
<div class="col-sm-6">
<h5>Update Charity</h5>
<form id="ownerUpdateCharity">
<div class="form-group">
<label for="updateCharity">Enter New Charity Address :</label>
<input type="text" id="updateCharity" class="form-control">
</div>
<button type="submit" class="btn btn-secondary">Update</button>
<div id="ownerUpdateCharityStatus"></div>
</form>
</div>
</div>
<hr>
<div class="row">
Expand Down Expand Up @@ -203,9 +214,11 @@ <h5>Delete Approver</h5>
<h5>Update Deadline & Approver Deadline</h5>
<div class="form-group">
<label for="updateDeadline">Enter New Deadline Duration (in seconds) :</label>
<input type="text" id="updateDeadline" class="form-control" placeholder="Leave Blank to only update Approver Deadline">
<input type="text" id="updateDeadline" class="form-control" placeholder="Leave Blank to only update other Deadlines">
<label for="updateApproverDeadline">Enter New Approver Deadline Duration (in seconds) :</label>
<input type="text" id="updateApproverDeadline" class="form-control" placeholder="Leave Blank to only update Deadline">
<input type="text" id="updateApproverDeadline" class="form-control" placeholder="Leave Blank to only update other Deadlines">
<label for="updateCharityDeadline">Enter New Charity Deadline Duration (in seconds) :</label>
<input type="text" id="updateCharityDeadline" class="form-control" placeholder="Leave Blank to only update other Deadlines">
</div>
<button type="submit" class="btn btn-secondary">Update</button>
<div id="ownerUpdateDeadlineStatus"></div>
Expand Down Expand Up @@ -412,7 +425,7 @@ <h5>Access Ownership after Deadline</h5>
<hr>
<h3>Welcome Approver!</h3>
<div class="row">
<div class="col-sm-12">
<div class="col-sm-6">
<h5>Approve or Reject Heir</h5>
<form id="approverAcceptance">
<div class="form-group">
Expand All @@ -423,6 +436,16 @@ <h5>Approve or Reject Heir</h5>
<div id="approverAcceptanceStatus"></div>
</form>
</div>
<div class="col-sm-6">
<h5>Initiate Charity?</h5>
<form id="initiateCharity">
<div class="form-group">
<label for="acceptHeir">Click to initiate the Charity.</label>
</div>
<button type="submit" class="btn btn-secondary">Initiate</button>
<div id="initiateCharityStatus"></div>
</form>
</div>
</div>
<hr>
</div>
Expand Down

0 comments on commit ffeb24d

Please sign in to comment.