aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SolidityEndToEndTest.cpp4
-rw-r--r--SolidityNameAndTypeResolution.cpp2
-rw-r--r--commonjs.cpp57
3 files changed, 60 insertions, 3 deletions
diff --git a/SolidityEndToEndTest.cpp b/SolidityEndToEndTest.cpp
index cf04edaa..80e9aed4 100644
--- a/SolidityEndToEndTest.cpp
+++ b/SolidityEndToEndTest.cpp
@@ -1545,7 +1545,7 @@ BOOST_AUTO_TEST_CASE(single_copy_with_multiple_inheritance)
}
contract A is Base { function setViaA(uint i) { setData(i); } }
contract B is Base { function getViaB() returns (uint i) { return getViaBase(); } }
- contract Derived is A, B, Base { }
+ contract Derived is Base, B, A { }
)";
compileAndRun(sourceCode, 0, "Derived");
BOOST_CHECK(callContractFunction("getViaB()") == encodeArgs(0));
@@ -1642,7 +1642,7 @@ BOOST_AUTO_TEST_CASE(constructor_argument_overriding)
}
}
contract Base is BaseBase(2) { }
- contract Derived is Base, BaseBase(3) {
+ contract Derived is BaseBase(3), Base {
function getA() returns (uint r) { return m_a; }
}
)";
diff --git a/SolidityNameAndTypeResolution.cpp b/SolidityNameAndTypeResolution.cpp
index 6c8fd1b1..079da0a1 100644
--- a/SolidityNameAndTypeResolution.cpp
+++ b/SolidityNameAndTypeResolution.cpp
@@ -386,7 +386,7 @@ BOOST_AUTO_TEST_CASE(inheritance_diamond_basic)
contract root { function rootFunction() {} }
contract inter1 is root { function f() {} }
contract inter2 is root { function f() {} }
- contract derived is inter1, inter2, root {
+ contract derived is root, inter2, inter1 {
function g() { f(); rootFunction(); }
}
)";
diff --git a/commonjs.cpp b/commonjs.cpp
new file mode 100644
index 00000000..860b713d
--- /dev/null
+++ b/commonjs.cpp
@@ -0,0 +1,57 @@
+/*
+ This file is part of cpp-ethereum.
+
+ cpp-ethereum is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ cpp-ethereum is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file commonjs.cpp
+ * @author Marek Kotewicz <marek@ethdev.com>
+ * @date 2014
+ */
+
+#include <boost/test/unit_test.hpp>
+#include <libdevcore/CommonJS.h>
+
+BOOST_AUTO_TEST_SUITE(commonjs)
+using namespace std;
+using namespace dev;
+using namespace dev::eth;
+
+BOOST_AUTO_TEST_CASE(jsToPublic)
+{
+ cnote << "Testing jsToPublic...";
+ KeyPair kp = KeyPair::create();
+ string string = toJS(kp.pub());
+ Public pub = dev::jsToPublic(string);
+ BOOST_CHECK_EQUAL(kp.pub(), pub);
+}
+
+BOOST_AUTO_TEST_CASE(jsToAddress)
+{
+ cnote << "Testing jsToPublic...";
+ KeyPair kp = KeyPair::create();
+ string string = toJS(kp.address());
+ Address address = dev::jsToAddress(string);
+ BOOST_CHECK_EQUAL(kp.address(), address);
+}
+
+BOOST_AUTO_TEST_CASE(jsToSecret)
+{
+ cnote << "Testing jsToPublic...";
+ KeyPair kp = KeyPair::create();
+ string string = toJS(kp.secret());
+ Secret secret = dev::jsToSecret(string);
+ BOOST_CHECK_EQUAL(kp.secret(), secret);
+}
+
+BOOST_AUTO_TEST_SUITE_END()