Contracts
The protocol has 2 types of contracts, main and satellites.
The main contract is where all the parameters set by the owner of the assets are stored. There’s only one main contract deployed in ETH mainnet.
There’s one satellite contract by chain supported by axelar. This contract is the one that has the allowance to spend the funds, ie. transfer the funds to heirs in case the inheritance process is finished.
The logic of inheritance is managed by the main contract. Once the process is finished a message is sent to all the satellites via axelar and each one will unlock the assets to the designated heirs.
Main contract public methods
addSatelite(Satelite memory _satelite)
Lets the owner add new satellites
deleteSatelite(uint256 index)
Allows the owner to delete satellites
addTokensToSatelite(uint256 sateliteId, address[] memory _tokens)
Allows users to add new tokens to lock in a given satellite
deleteTokensToSatelite(uint256 sateliteId)
Lets users delete their token lists from a satellite
secureFunds
( address[] memory _heirs, uint64 _timelock, uint8 _votesRequired )Main function that allows to set a list of heirs, a timelock and the percentage of heirs needed to declare death
setVote(address _owner, bool _vote)
Function that lets heirs vote that someone is dead
veto()
This function is called to show you're alive and stop the heirs from withdrawing the funds
initializeWithdrawal(address _owner)
After someone is declared dead this function can be called to send a message to all satellites to release the funds to heirs
Satellite contract public methods
withdrawFunds(address user, address[] memory _tokens)
Lets heirs withdraw funds from someone (only if the person was declared dead).
Last updated