* Update to ganache-cli v6.1.0 and truffle v4.1.0 * Update to stable version of ganache-cli * fix: update event emission warning - Fix event emission warnings for solidity 4.21 after truffle has been updated to use this version * fix pr review comments * update to truffle v4.1.5 * update package-lock * add additional emit keywords * update solidity-coverage to 0.4.15 * update to solium 1.1.6 * fix MerkleProof coverage analysis by testing through wrapper * change version pragma to ^0.4.21 * fix solium linting errors
41 lines
1.2 KiB
Solidity
41 lines
1.2 KiB
Solidity
pragma solidity ^0.4.21;
|
|
|
|
import "../ownership/Heritable.sol";
|
|
|
|
|
|
/**
|
|
* @title SimpleSavingsWallet
|
|
* @dev Simplest form of savings wallet whose ownership can be claimed by a heir
|
|
* if owner dies.
|
|
* In this example, we take a very simple savings wallet providing two operations
|
|
* (to send and receive funds) and extend its capabilities by making it Heritable.
|
|
* The account that creates the contract is set as owner, who has the authority to
|
|
* choose an heir account. Heir account can reclaim the contract ownership in the
|
|
* case that the owner dies.
|
|
*/
|
|
contract SimpleSavingsWallet is Heritable {
|
|
|
|
event Sent(address indexed payee, uint256 amount, uint256 balance);
|
|
event Received(address indexed payer, uint256 amount, uint256 balance);
|
|
|
|
|
|
function SimpleSavingsWallet(uint256 _heartbeatTimeout) Heritable(_heartbeatTimeout) public {}
|
|
|
|
/**
|
|
* @dev wallet can receive funds.
|
|
*/
|
|
function () public payable {
|
|
emit Received(msg.sender, msg.value, this.balance);
|
|
}
|
|
|
|
/**
|
|
* @dev wallet can send funds
|
|
*/
|
|
function sendTo(address payee, uint256 amount) public onlyOwner {
|
|
require(payee != 0 && payee != address(this));
|
|
require(amount > 0);
|
|
payee.transfer(amount);
|
|
emit Sent(payee, amount, this.balance);
|
|
}
|
|
}
|