Merge pull request #212 from misteraverin/feature/destructible

Add destroy function, allowing send funds to recepient.
This commit is contained in:
Manuel Aráoz
2017-05-15 07:19:45 -06:00
committed by GitHub
3 changed files with 19 additions and 2 deletions

View File

@ -12,4 +12,8 @@ contract Destructible is Ownable {
function destroy() onlyOwner { function destroy() onlyOwner {
selfdestruct(owner); selfdestruct(owner);
} }
function destroyAndSend(address _recipient) onlyOwner {
selfdestruct(_recipient);
}
} }

View File

@ -8,4 +8,9 @@ Inherits from contract Ownable.
destroy( ) onlyOwner destroy( ) onlyOwner
""""""""""""""""""" """""""""""""""""""
Destroys the contract and sends funds back to the owner. Destroys the contract and sends funds back to the owner.
destroyAndSend(address _recipient) onlyOwner
"""""""""""""""""""
Destroys the contract and sends funds back to the _recepient.

View File

@ -11,8 +11,16 @@ contract('Destructible', function(accounts) {
let initBalance = web3.eth.getBalance(owner); let initBalance = web3.eth.getBalance(owner);
await destructible.destroy({from: owner}); await destructible.destroy({from: owner});
let newBalance = web3.eth.getBalance(owner); let newBalance = web3.eth.getBalance(owner);
assert.isTrue(newBalance > initBalance); 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.destroyAndSend(accounts[1], {from: owner} );
let newBalance = web3.eth.getBalance(accounts[1]);
assert.isTrue(newBalance.greaterThan(initBalance));
});
}); });