diff --git a/contracts/lifecycle/Destructible.sol b/contracts/lifecycle/Destructible.sol index 21de1869d..0f3104949 100644 --- a/contracts/lifecycle/Destructible.sol +++ b/contracts/lifecycle/Destructible.sol @@ -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); + } } diff --git a/docs/source/killable.rst b/docs/source/killable.rst index af471d9dc..4ceae9a8f 100644 --- a/docs/source/killable.rst +++ b/docs/source/killable.rst @@ -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 diff --git a/test/Destructible.js b/test/Destructible.js index f1a52599e..ae66cfc59 100644 --- a/test/Destructible.js +++ b/test/Destructible.js @@ -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)); + }); + });