Wills created with EOAs
Last updated
Last updated
An externally owned account (EOA) is an account controlled by a cryptographic keypair and is most commonly referred to as a wallet. A key pair consists of a public key (a.k.a public address) and a private key. For Forwarding will, the user has an option to create a will using their own Ethereum address.
When the user create a new will, beneficiaries and allocations are required in the will contract. Once the will is created, the timestamp of the last outgoing transaction of the will owner's wallet is initialized
The owner is required to approve the will contract the permission to transfer token from owner's wallet to beneficiaries when the will is activated.
The owner is required to deposit ETH the native asset into the will contract, which will transfer ETH from the owner's wallet to the will contract. When the will is activated, the will contract will transfer ETH to beneficiaries.
The Router Contract emits a ForwardingEOAWillCreated event and Subgraph listens and creates a WillDetail entity.
When the owner edits a will, the new information is updated in the will contract, and the timestamp of the last outgoing transaction in the will owner's is reset.
When the owner edits the will to approve more tokens, the new token and/or new amount is updated in the will contract. This action alone will not reset the timestamp of the owner's wallet.
When the owner deposits or withdraws ETH in or from the contract, the amount is updated, and the timestamp of the last outgoing transaction in the will owner's is reset.
The Router Contract emits a ForwardingEOAWillUpdated event andSubgraph listens and updates the will contract with new information.
When the owner deletes an existing will, the Router Contract emits a ForwardingEOAWillDeleted event and Subgraph listens and updates the will's status to deleted.
The amount of previously deposited ETH in the contract will be transferred to the will owner.
When the will's owner clicks the button "I'm still alive", the system resets the timestamp of the last outgoing transaction.
Router Contract emits a ForwardingEOAWillActiveAlive event and Subgraph listens and updates the last timestamp
When a beneficiary checks a will's status, the Active Will function checks whether the will can be activated. If not enough time (as specified by the will) has passed since the last outgoing transaction, the will contract can’t be activated. Otherwise, the will contract can be activated by one of the beneficiary.
Once the will is activated, the amount of ETH deposited in the will contract and the amount of tokens approved will be transferred to beneficiaries's wallets.
Router Contract emits a ForwardingEOAWillActiveAlive event and Subgraph listens and updates the will's status to activated.