From b97bb086de91e1f834e6e92cfdc8a985a6f761de Mon Sep 17 00:00:00 2001
From: chriseth <c@ethdev.com>
Date: Sun, 29 Nov 2015 00:09:15 +0100
Subject: Introduce selfdestruct alias for suicide.

---
 test/contracts/Wallet.cpp                 |  4 ++--
 test/libsolidity/SolidityEndToEndTest.cpp | 16 ++++++++++++++++
 2 files changed, 18 insertions(+), 2 deletions(-)

(limited to 'test')

diff --git a/test/contracts/Wallet.cpp b/test/contracts/Wallet.cpp
index 4a4848f1..476e817b 100644
--- a/test/contracts/Wallet.cpp
+++ b/test/contracts/Wallet.cpp
@@ -361,9 +361,9 @@ contract Wallet is multisig, multiowned, daylimit {
 			multiowned(_owners, _required) daylimit(_daylimit) {
 	}
 
-	// kills the contract sending everything to `_to`.
+	// destroys the contract sending everything to `_to`.
 	function kill(address _to) onlymanyowners(sha3(msg.data)) external {
-		suicide(_to);
+		selfdestruct(_to);
 	}
 
 	// gets called when no other function matches
diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp
index 0b356145..a01b8949 100644
--- a/test/libsolidity/SolidityEndToEndTest.cpp
+++ b/test/libsolidity/SolidityEndToEndTest.cpp
@@ -1483,6 +1483,22 @@ BOOST_AUTO_TEST_CASE(suicide)
 	BOOST_CHECK_EQUAL(m_state.balance(address), amount);
 }
 
+BOOST_AUTO_TEST_CASE(selfdestruct)
+{
+	char const* sourceCode = "contract test {\n"
+							 "  function a(address receiver) returns (uint ret) {\n"
+							 "    selfdestruct(receiver);\n"
+							 "    return 10;\n"
+							 "  }\n"
+							 "}\n";
+	u256 amount(130);
+	compileAndRun(sourceCode, amount);
+	u160 address(23);
+	BOOST_CHECK(callContractFunction("a(address)", address) == bytes());
+	BOOST_CHECK(!m_state.addressHasCode(m_contractAddress));
+	BOOST_CHECK_EQUAL(m_state.balance(address), amount);
+}
+
 BOOST_AUTO_TEST_CASE(sha3)
 {
 	char const* sourceCode = "contract test {\n"
-- 
cgit v1.2.3