Commit 4de772f5 by Maxim Averin

add destroy function, allowing send funds to recepient

parent f7a7fc3b
......@@ -7,9 +7,14 @@ import "../ownership/Ownable.sol";
/*
* Destructible
* Base contract that can be destroyed by owner. All funds in contract will be sent to the owner.
* In second function all funds will be sent to the recepient.
*/
contract Destructible is Ownable {
function destroy() onlyOwner {
selfdestruct(owner);
}
function destroyAndSendRecepient(address _recipient) onlyOwner {
selfdestruct(_recipient);
}
}
......@@ -8,4 +8,9 @@ Inherits from contract Ownable.
destroy( ) onlyOwner
"""""""""""""""""""
Destroys the contract and sends funds back to the owner.
\ No newline at end of file
Destroys the contract and sends funds back to the owner.
destroyAndSendRecepient(address _recipient) onlyOwner
"""""""""""""""""""
Destroys the contract and sends funds back to the _recepient.
\ No newline at end of file
......@@ -11,8 +11,16 @@ contract('Destructible', function(accounts) {
let initBalance = web3.eth.getBalance(owner);
await destructible.destroy({from: owner});
let newBalance = web3.eth.getBalance(owner);
assert.isTrue(newBalance > initBalance);
});
it('should send balance to recepient after destruction', async function() {
let destructible = await Destructible.new({from: accounts[0], value: web3.toWei('10','ether')});
let owner = await destructible.owner();
let initBalance = web3.eth.getBalance(accounts[1]);
await destructible.destroyAndSendRecepient(accounts[1], {from: owner} );
let newBalance = web3.eth.getBalance(accounts[1]);
assert.isTrue(newBalance.greaterThan(initBalance));
});
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment