inherichain
v1.0.0
Published
A wallet which has inheritance built in on the Ethereum Blockchain.
Downloads
18
Maintainers
Readme
Inherichain
A wallet that has inheritance built-in on the Ethereum Blockchain.
Description
Ethereum wallets are created using a Seed or Private Key and can send and receive almost any ethereum assets and create contracts. But it lacks a significant feature, which is to retrieve the assets in case of the wallet owner's demise.
Inherichain is a Wallet Contract with almost all the features of a normal EOA (Externally Owned Account). Along with that, it also can transfer the ownership of the contract wallet to the specified Heir.
Function List & Specification
A basic description of all the functions, modifiers, and events are specified in the doc folder here.
User Specification
Admin can :
- Update the Backup Owner.
- Update the Heir (Resets the Claim Process).
- Update the Deadline.
- Add new Approvers.
- Delete old Approvers.
- Interact with Other Contracts (ERC20 Transfers, etc.).
- Withdraw some or all ETH.
- Transfer some or all ETH.
- Deploy Contracts.
Backup Owner can :
- Update the Owner.
Heir can :
- Start the Claim.
- Access Ownership using Approver Votes or Complete Deadline.
Approver can :
- Approve or Reject Heir.
Every User can :
- Deposit ETH.
Enhancement to do:
- Involve Kleros if heir & owner demise at the same time to choose what to do with the funds.
- Introduce Vote weightage for approvers.
- At the moment, the Approver's role is to fast-track the heir claim process. But we can improve and involve the approvers more to give the assets to some publicly announced charity or so on the unanimous front of all approvers. The final say on the charity by involving Kleros.
- Mechanism to divide the contract asset into parts based on multiple heirs. Expanding on the same, giving different % for different Heir.
How to Run the Project
Create a new folder.
Copy the Git Clone URL from GitHub: https://github.com/remedcu/Inherichain.git
Clone the Repository.
git clone https://github.com/remedcu/Inherichain.git
In a command line, inside the Inherichain folder, write
npm i
ornpm install
Now run
ganache-cli
and copy the mnemonic, address, and private key part for later use. (Make sure it runs on port 8545 if you intend to run thetruffle test
command).In a command line, run
truffle migrate --reset
.(Optional) If you want, you can run the
truffle test
to see if it passes all tests or not.To run the frontend part, just use
npm start
and it will start a server in localhost.
How to Test the Contract
Please follow the step 1 - 6 of How to Run the Project.
Now start the test using:
npm run test
Note: You can also use the truffle test
to test the smart contract if you already have ganache-cli
or Ganache GUI running in the background for testing in the local network.
Documentation
Using solidity-docgen: Inherichain.md