CLANG code format sidechain tests
This commit is contained in:
parent
b5a3ca8040
commit
bb9e005204
5 changed files with 572 additions and 575 deletions
|
|
@ -5,8 +5,7 @@ using namespace graphene::peerplays_sidechain::bitcoin;
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE(bitcoin_address_tests)
|
BOOST_AUTO_TEST_SUITE(bitcoin_address_tests)
|
||||||
|
|
||||||
fc::ecc::public_key_data create_public_key_data( const std::vector<char>& public_key )
|
fc::ecc::public_key_data create_public_key_data(const std::vector<char> &public_key) {
|
||||||
{
|
|
||||||
FC_ASSERT(public_key.size() == 33);
|
FC_ASSERT(public_key.size() == 33);
|
||||||
fc::ecc::public_key_data key;
|
fc::ecc::public_key_data key;
|
||||||
for (size_t i = 0; i < 33; i++) {
|
for (size_t i = 0; i < 33; i++) {
|
||||||
|
|
@ -15,8 +14,7 @@ fc::ecc::public_key_data create_public_key_data( const std::vector<char>& public
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( addresses_type_test )
|
BOOST_AUTO_TEST_CASE(addresses_type_test) {
|
||||||
{
|
|
||||||
// public_key
|
// public_key
|
||||||
std::string compressed("03df51984d6b8b8b1cc693e239491f77a36c9e9dfe4a486e9972a18e03610a0d22");
|
std::string compressed("03df51984d6b8b8b1cc693e239491f77a36c9e9dfe4a486e9972a18e03610a0d22");
|
||||||
BOOST_CHECK(bitcoin_address(compressed).get_type() == payment_type::P2PK);
|
BOOST_CHECK(bitcoin_address(compressed).get_type() == payment_type::P2PK);
|
||||||
|
|
@ -24,7 +22,6 @@ BOOST_AUTO_TEST_CASE( addresses_type_test )
|
||||||
std::string uncompressed("04fe53c78e36b86aae8082484a4007b706d5678cabb92d178fc95020d4d8dc41ef44cfbb8dfa7a593c7910a5b6f94d079061a7766cbeed73e24ee4f654f1e51904");
|
std::string uncompressed("04fe53c78e36b86aae8082484a4007b706d5678cabb92d178fc95020d4d8dc41ef44cfbb8dfa7a593c7910a5b6f94d079061a7766cbeed73e24ee4f654f1e51904");
|
||||||
BOOST_CHECK(bitcoin_address(uncompressed).get_type() == payment_type::NULLDATA);
|
BOOST_CHECK(bitcoin_address(uncompressed).get_type() == payment_type::NULLDATA);
|
||||||
|
|
||||||
|
|
||||||
// segwit_address
|
// segwit_address
|
||||||
std::string p2wpkh_mainnet("bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4");
|
std::string p2wpkh_mainnet("bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4");
|
||||||
BOOST_CHECK(bitcoin_address(p2wpkh_mainnet).get_type() == payment_type::P2WPKH);
|
BOOST_CHECK(bitcoin_address(p2wpkh_mainnet).get_type() == payment_type::P2WPKH);
|
||||||
|
|
@ -35,7 +32,6 @@ BOOST_AUTO_TEST_CASE( addresses_type_test )
|
||||||
std::string p2wsh("bc1qc7slrfxkknqcq2jevvvkdgvrt8080852dfjewde450xdlk4ugp7szw5tk9");
|
std::string p2wsh("bc1qc7slrfxkknqcq2jevvvkdgvrt8080852dfjewde450xdlk4ugp7szw5tk9");
|
||||||
BOOST_CHECK(bitcoin_address(p2wsh).get_type() == payment_type::P2WSH);
|
BOOST_CHECK(bitcoin_address(p2wsh).get_type() == payment_type::P2WSH);
|
||||||
|
|
||||||
|
|
||||||
// base58
|
// base58
|
||||||
std::string p2pkh_mainnet("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem");
|
std::string p2pkh_mainnet("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem");
|
||||||
BOOST_CHECK(bitcoin_address(p2pkh_mainnet).get_type() == payment_type::P2PKH);
|
BOOST_CHECK(bitcoin_address(p2pkh_mainnet).get_type() == payment_type::P2PKH);
|
||||||
|
|
@ -53,8 +49,7 @@ BOOST_AUTO_TEST_CASE( addresses_type_test )
|
||||||
BOOST_CHECK(bitcoin_address(p2sh_regtest1).get_type() == payment_type::P2SH);
|
BOOST_CHECK(bitcoin_address(p2sh_regtest1).get_type() == payment_type::P2SH);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( addresses_raw_test )
|
BOOST_AUTO_TEST_CASE(addresses_raw_test) {
|
||||||
{
|
|
||||||
// public_key
|
// public_key
|
||||||
std::string compressed("03df51984d6b8b8b1cc693e239491f77a36c9e9dfe4a486e9972a18e03610a0d22");
|
std::string compressed("03df51984d6b8b8b1cc693e239491f77a36c9e9dfe4a486e9972a18e03610a0d22");
|
||||||
bytes standard_compressed(parse_hex(compressed));
|
bytes standard_compressed(parse_hex(compressed));
|
||||||
|
|
@ -63,7 +58,6 @@ BOOST_AUTO_TEST_CASE( addresses_raw_test )
|
||||||
std::string uncompressed("04fe53c78e36b86aae8082484a4007b706d5678cabb92d178fc95020d4d8dc41ef44cfbb8dfa7a593c7910a5b6f94d079061a7766cbeed73e24ee4f654f1e51904");
|
std::string uncompressed("04fe53c78e36b86aae8082484a4007b706d5678cabb92d178fc95020d4d8dc41ef44cfbb8dfa7a593c7910a5b6f94d079061a7766cbeed73e24ee4f654f1e51904");
|
||||||
BOOST_CHECK(bitcoin_address(uncompressed).get_raw_address() == bytes());
|
BOOST_CHECK(bitcoin_address(uncompressed).get_raw_address() == bytes());
|
||||||
|
|
||||||
|
|
||||||
// segwit_address
|
// segwit_address
|
||||||
std::string p2wpkh_mainnet("bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4");
|
std::string p2wpkh_mainnet("bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4");
|
||||||
bytes standard_p2wpkh_mainnet(parse_hex("751e76e8199196d454941c45d1b3a323f1433bd6"));
|
bytes standard_p2wpkh_mainnet(parse_hex("751e76e8199196d454941c45d1b3a323f1433bd6"));
|
||||||
|
|
@ -77,7 +71,6 @@ BOOST_AUTO_TEST_CASE( addresses_raw_test )
|
||||||
bytes standard_p2wsh(parse_hex("c7a1f1a4d6b4c1802a59631966a18359de779e8a6a65973735a3ccdfdabc407d"));
|
bytes standard_p2wsh(parse_hex("c7a1f1a4d6b4c1802a59631966a18359de779e8a6a65973735a3ccdfdabc407d"));
|
||||||
BOOST_CHECK(bitcoin_address(p2wsh).get_raw_address() == standard_p2wsh);
|
BOOST_CHECK(bitcoin_address(p2wsh).get_raw_address() == standard_p2wsh);
|
||||||
|
|
||||||
|
|
||||||
// base58
|
// base58
|
||||||
std::string p2pkh_mainnet("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem");
|
std::string p2pkh_mainnet("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem");
|
||||||
bytes standard_p2pkh_mainnet(parse_hex("47376c6f537d62177a2c41c4ca9b45829ab99083"));
|
bytes standard_p2pkh_mainnet(parse_hex("47376c6f537d62177a2c41c4ca9b45829ab99083"));
|
||||||
|
|
@ -96,8 +89,7 @@ BOOST_AUTO_TEST_CASE( addresses_raw_test )
|
||||||
BOOST_CHECK(bitcoin_address(p2sh_testnet).get_raw_address() == standard_p2sh_testnet);
|
BOOST_CHECK(bitcoin_address(p2sh_testnet).get_raw_address() == standard_p2sh_testnet);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( create_multisig_address_test )
|
BOOST_AUTO_TEST_CASE(create_multisig_address_test) {
|
||||||
{
|
|
||||||
|
|
||||||
std::vector<char> public_key1 = parse_hex("03db643710666b862e0a97f7edbe8ef40ec2c4a29ef995c431c21ca85e35000010");
|
std::vector<char> public_key1 = parse_hex("03db643710666b862e0a97f7edbe8ef40ec2c4a29ef995c431c21ca85e35000010");
|
||||||
std::vector<char> public_key2 = parse_hex("0320000d982c156a6f09df8c7674abddc2bb326533268ed03572916221b4417983");
|
std::vector<char> public_key2 = parse_hex("0320000d982c156a6f09df8c7674abddc2bb326533268ed03572916221b4417983");
|
||||||
|
|
@ -116,8 +108,7 @@ BOOST_AUTO_TEST_CASE( create_multisig_address_test )
|
||||||
BOOST_CHECK(redeem_script == cma.redeem_script);
|
BOOST_CHECK(redeem_script == cma.redeem_script);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( create_segwit_address_test )
|
BOOST_AUTO_TEST_CASE(create_segwit_address_test) {
|
||||||
{
|
|
||||||
// https://0bin.net/paste/nfnSf0HcBqBUGDto#7zJMRUhGEBkyh-eASQPEwKfNHgQ4D5KrUJRsk8MTPSa
|
// https://0bin.net/paste/nfnSf0HcBqBUGDto#7zJMRUhGEBkyh-eASQPEwKfNHgQ4D5KrUJRsk8MTPSa
|
||||||
std::vector<char> public_key1 = parse_hex("03b3623117e988b76aaabe3d63f56a4fc88b228a71e64c4cc551d1204822fe85cb");
|
std::vector<char> public_key1 = parse_hex("03b3623117e988b76aaabe3d63f56a4fc88b228a71e64c4cc551d1204822fe85cb");
|
||||||
std::vector<char> public_key2 = parse_hex("03dd823066e096f72ed617a41d3ca56717db335b1ea47a1b4c5c9dbdd0963acba6");
|
std::vector<char> public_key2 = parse_hex("03dd823066e096f72ed617a41d3ca56717db335b1ea47a1b4c5c9dbdd0963acba6");
|
||||||
|
|
@ -134,8 +125,7 @@ BOOST_AUTO_TEST_CASE( create_segwit_address_test )
|
||||||
BOOST_CHECK(address.get_address() == "2NGU4ogScHEHEpReUzi9RB2ha58KAFnkFyk");
|
BOOST_CHECK(address.get_address() == "2NGU4ogScHEHEpReUzi9RB2ha58KAFnkFyk");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( create_segwit_address_10_of_14_test )
|
BOOST_AUTO_TEST_CASE(create_segwit_address_10_of_14_test) {
|
||||||
{
|
|
||||||
std::vector<char> public_key1 = parse_hex("03456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef275");
|
std::vector<char> public_key1 = parse_hex("03456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef275");
|
||||||
std::vector<char> public_key2 = parse_hex("02d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f4");
|
std::vector<char> public_key2 = parse_hex("02d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f4");
|
||||||
std::vector<char> public_key3 = parse_hex("025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61");
|
std::vector<char> public_key3 = parse_hex("025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61");
|
||||||
|
|
@ -169,17 +159,28 @@ BOOST_AUTO_TEST_CASE( create_segwit_address_10_of_14_test )
|
||||||
fc::ecc::public_key_data key13 = create_public_key_data(public_key13);
|
fc::ecc::public_key_data key13 = create_public_key_data(public_key13);
|
||||||
fc::ecc::public_key_data key14 = create_public_key_data(public_key14);
|
fc::ecc::public_key_data key14 = create_public_key_data(public_key14);
|
||||||
|
|
||||||
btc_multisig_segwit_address address(10, { { son_id_type(1), public_key_type(key1) }, { son_id_type(2), public_key_type(key2) }, { son_id_type(3), public_key_type(key3) },
|
btc_multisig_segwit_address address(10, {
|
||||||
{ son_id_type(4), public_key_type(key4) }, { son_id_type(5), public_key_type(key5) }, { son_id_type(6), public_key_type(key6) }, { son_id_type(7), public_key_type(key7) },
|
{son_id_type(1), public_key_type(key1)},
|
||||||
{ son_id_type(8), public_key_type(key8) }, { son_id_type(9), public_key_type(key9) }, { son_id_type(10), public_key_type(key10) }, { son_id_type(11), public_key_type(key11) },
|
{son_id_type(2), public_key_type(key2)},
|
||||||
{ son_id_type(12), public_key_type(key12) }, { son_id_type(13), public_key_type(key13) }, { son_id_type(14), public_key_type(key14) },});
|
{son_id_type(3), public_key_type(key3)},
|
||||||
|
{son_id_type(4), public_key_type(key4)},
|
||||||
|
{son_id_type(5), public_key_type(key5)},
|
||||||
|
{son_id_type(6), public_key_type(key6)},
|
||||||
|
{son_id_type(7), public_key_type(key7)},
|
||||||
|
{son_id_type(8), public_key_type(key8)},
|
||||||
|
{son_id_type(9), public_key_type(key9)},
|
||||||
|
{son_id_type(10), public_key_type(key10)},
|
||||||
|
{son_id_type(11), public_key_type(key11)},
|
||||||
|
{son_id_type(12), public_key_type(key12)},
|
||||||
|
{son_id_type(13), public_key_type(key13)},
|
||||||
|
{son_id_type(14), public_key_type(key14)},
|
||||||
|
});
|
||||||
BOOST_CHECK(address.get_witness_script() == witness_script);
|
BOOST_CHECK(address.get_witness_script() == witness_script);
|
||||||
BOOST_CHECK(address.get_redeem_script() == redeem_script);
|
BOOST_CHECK(address.get_redeem_script() == redeem_script);
|
||||||
BOOST_CHECK(address.get_address() == "2MwhYhBrZeb6mTf1kaWcYfLBCCQoMqQybFZ");
|
BOOST_CHECK(address.get_address() == "2MwhYhBrZeb6mTf1kaWcYfLBCCQoMqQybFZ");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( create_segwit_address_11_of_15_test )
|
BOOST_AUTO_TEST_CASE(create_segwit_address_11_of_15_test) {
|
||||||
{
|
|
||||||
std::vector<char> public_key1 = parse_hex("03456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef275");
|
std::vector<char> public_key1 = parse_hex("03456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef275");
|
||||||
std::vector<char> public_key2 = parse_hex("02d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f4");
|
std::vector<char> public_key2 = parse_hex("02d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f4");
|
||||||
std::vector<char> public_key3 = parse_hex("025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61");
|
std::vector<char> public_key3 = parse_hex("025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61");
|
||||||
|
|
@ -215,21 +216,16 @@ BOOST_AUTO_TEST_CASE( create_segwit_address_11_of_15_test )
|
||||||
std::vector<char> witness_script = parse_hex("00205fcdce3c62b477553b8dc957a935adda8305cbd47a408f07d2cb867d588279eb");
|
std::vector<char> witness_script = parse_hex("00205fcdce3c62b477553b8dc957a935adda8305cbd47a408f07d2cb867d588279eb");
|
||||||
std::vector<char> redeem_script = parse_hex("5b2103456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef2752102d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f421025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61210228155bb1ddcd11c7f14a2752565178023aa963f84ea6b6a052bddebad6fe986621037500441cfb4484da377073459511823b344f1ef0d46bac1efd4c7c466746f6662102ef0d79bfdb99ab0be674b1d5d06c24debd74bffdc28d466633d6668cc281cccf210317941e4219548682fb8d8e172f0a8ce4d83ce21272435c85d598558c8e060b7f210266065b27f7e3d3ad45b471b1cd4e02de73fc4737dc2679915a45e293c5adcf8421023821cc3da7be9e8cdceb8f146e9ddd78a9519875ecc5b42fe645af690544bccf210229ff2b2106b76c27c393e82d71c20eec32bcf1f0cf1a9aca8a237269a67ff3e521024d113381cc09deb8a6da62e0470644d1a06de82be2725b5052668c8845a4a8da2103df2462a5a2f681a3896f61964a65566ff77448be9a55a6da18506fd9c6c051c12102bafba3096f546cc5831ce1e49ba7142478a659f2d689bbc70ed37235255172a8210287bcbd4f5d357f89a86979b386402445d7e9a5dccfd16146d1d2ab0dc2c32ae82102053859d76aa375d6f343a60e3678e906c008015e32fe4712b1fd2b26473bdd735fae");
|
std::vector<char> redeem_script = parse_hex("5b2103456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef2752102d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f421025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61210228155bb1ddcd11c7f14a2752565178023aa963f84ea6b6a052bddebad6fe986621037500441cfb4484da377073459511823b344f1ef0d46bac1efd4c7c466746f6662102ef0d79bfdb99ab0be674b1d5d06c24debd74bffdc28d466633d6668cc281cccf210317941e4219548682fb8d8e172f0a8ce4d83ce21272435c85d598558c8e060b7f210266065b27f7e3d3ad45b471b1cd4e02de73fc4737dc2679915a45e293c5adcf8421023821cc3da7be9e8cdceb8f146e9ddd78a9519875ecc5b42fe645af690544bccf210229ff2b2106b76c27c393e82d71c20eec32bcf1f0cf1a9aca8a237269a67ff3e521024d113381cc09deb8a6da62e0470644d1a06de82be2725b5052668c8845a4a8da2103df2462a5a2f681a3896f61964a65566ff77448be9a55a6da18506fd9c6c051c12102bafba3096f546cc5831ce1e49ba7142478a659f2d689bbc70ed37235255172a8210287bcbd4f5d357f89a86979b386402445d7e9a5dccfd16146d1d2ab0dc2c32ae82102053859d76aa375d6f343a60e3678e906c008015e32fe4712b1fd2b26473bdd735fae");
|
||||||
|
|
||||||
btc_multisig_segwit_address address(11, { { son_id_type(1), public_key_type(key1) }, { son_id_type(2), public_key_type(key2) }, { son_id_type(3), public_key_type(key3) },
|
btc_multisig_segwit_address address(11, {{son_id_type(1), public_key_type(key1)}, {son_id_type(2), public_key_type(key2)}, {son_id_type(3), public_key_type(key3)}, {son_id_type(4), public_key_type(key4)}, {son_id_type(5), public_key_type(key5)}, {son_id_type(6), public_key_type(key6)}, {son_id_type(7), public_key_type(key7)}, {son_id_type(8), public_key_type(key8)}, {son_id_type(9), public_key_type(key9)}, {son_id_type(10), public_key_type(key10)}, {son_id_type(11), public_key_type(key11)}, {son_id_type(12), public_key_type(key12)}, {son_id_type(13), public_key_type(key13)}, {son_id_type(14), public_key_type(key14)}, {son_id_type(15), public_key_type(key15)}});
|
||||||
{ son_id_type(4), public_key_type(key4) }, { son_id_type(5), public_key_type(key5) }, { son_id_type(6), public_key_type(key6) }, { son_id_type(7), public_key_type(key7) },
|
|
||||||
{ son_id_type(8), public_key_type(key8) }, { son_id_type(9), public_key_type(key9) }, { son_id_type(10), public_key_type(key10) }, { son_id_type(11), public_key_type(key11) },
|
|
||||||
{ son_id_type(12), public_key_type(key12) }, { son_id_type(13), public_key_type(key13) }, { son_id_type(14), public_key_type(key14) }, { son_id_type(15), public_key_type(key15) }});
|
|
||||||
|
|
||||||
BOOST_CHECK(address.get_witness_script() == witness_script);
|
BOOST_CHECK(address.get_witness_script() == witness_script);
|
||||||
BOOST_CHECK(address.get_redeem_script() == redeem_script);
|
BOOST_CHECK(address.get_redeem_script() == redeem_script);
|
||||||
BOOST_CHECK(address.get_address() == "2NAL3YhMF4VcbRQdectN8XPMJipvATGefTZ");
|
BOOST_CHECK(address.get_address() == "2NAL3YhMF4VcbRQdectN8XPMJipvATGefTZ");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( btc_weighted_multisig_address_test )
|
BOOST_AUTO_TEST_CASE(btc_weighted_multisig_address_test) {
|
||||||
{
|
|
||||||
std::vector<fc::ecc::private_key> priv_old;
|
std::vector<fc::ecc::private_key> priv_old;
|
||||||
for(uint32_t i = 0; i < 15; ++i)
|
for (uint32_t i = 0; i < 15; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
|
|
@ -246,8 +242,7 @@ BOOST_AUTO_TEST_CASE( btc_weighted_multisig_address_test )
|
||||||
BOOST_CHECK(addr.get_address() == "tb1qaeuy4c0qnudq5u2c8pndd7zyudal3g5eew7y9396592udxdcje4surl6cm");
|
BOOST_CHECK(addr.get_address() == "tb1qaeuy4c0qnudq5u2c8pndd7zyudal3g5eew7y9396592udxdcje4surl6cm");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( create_1_or_2_of_15_segwit_address_test )
|
BOOST_AUTO_TEST_CASE(create_1_or_2_of_15_segwit_address_test) {
|
||||||
{
|
|
||||||
auto public_key1 = fc::ecc::public_key(create_public_key_data(parse_hex("03456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef275")));
|
auto public_key1 = fc::ecc::public_key(create_public_key_data(parse_hex("03456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef275")));
|
||||||
auto public_key2 = fc::ecc::public_key(create_public_key_data(parse_hex("02d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f4")));
|
auto public_key2 = fc::ecc::public_key(create_public_key_data(parse_hex("02d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f4")));
|
||||||
auto public_key3 = fc::ecc::public_key(create_public_key_data(parse_hex("025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61")));
|
auto public_key3 = fc::ecc::public_key(create_public_key_data(parse_hex("025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61")));
|
||||||
|
|
@ -274,4 +269,48 @@ BOOST_AUTO_TEST_CASE( create_1_or_2_of_15_segwit_address_test )
|
||||||
BOOST_CHECK(address.get_redeem_script() == redeem_script);
|
BOOST_CHECK(address.get_redeem_script() == redeem_script);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(create_1_or_multiweighted_seggwit_address_test) {
|
||||||
|
auto public_key1 = fc::ecc::public_key(create_public_key_data(parse_hex("03456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef275")));
|
||||||
|
auto public_key2 = fc::ecc::public_key(create_public_key_data(parse_hex("02d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f4")));
|
||||||
|
auto public_key3 = fc::ecc::public_key(create_public_key_data(parse_hex("025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61")));
|
||||||
|
auto public_key4 = fc::ecc::public_key(create_public_key_data(parse_hex("0228155bb1ddcd11c7f14a2752565178023aa963f84ea6b6a052bddebad6fe9866")));
|
||||||
|
auto public_key5 = fc::ecc::public_key(create_public_key_data(parse_hex("037500441cfb4484da377073459511823b344f1ef0d46bac1efd4c7c466746f666")));
|
||||||
|
auto public_key6 = fc::ecc::public_key(create_public_key_data(parse_hex("02ef0d79bfdb99ab0be674b1d5d06c24debd74bffdc28d466633d6668cc281cccf")));
|
||||||
|
auto public_key7 = fc::ecc::public_key(create_public_key_data(parse_hex("0317941e4219548682fb8d8e172f0a8ce4d83ce21272435c85d598558c8e060b7f")));
|
||||||
|
auto public_key8 = fc::ecc::public_key(create_public_key_data(parse_hex("0266065b27f7e3d3ad45b471b1cd4e02de73fc4737dc2679915a45e293c5adcf84")));
|
||||||
|
auto public_key9 = fc::ecc::public_key(create_public_key_data(parse_hex("023821cc3da7be9e8cdceb8f146e9ddd78a9519875ecc5b42fe645af690544bccf")));
|
||||||
|
auto public_key10 = fc::ecc::public_key(create_public_key_data(parse_hex("0229ff2b2106b76c27c393e82d71c20eec32bcf1f0cf1a9aca8a237269a67ff3e5")));
|
||||||
|
auto public_key11 = fc::ecc::public_key(create_public_key_data(parse_hex("024d113381cc09deb8a6da62e0470644d1a06de82be2725b5052668c8845a4a8da")));
|
||||||
|
auto public_key12 = fc::ecc::public_key(create_public_key_data(parse_hex("03df2462a5a2f681a3896f61964a65566ff77448be9a55a6da18506fd9c6c051c1")));
|
||||||
|
auto public_key13 = fc::ecc::public_key(create_public_key_data(parse_hex("02bafba3096f546cc5831ce1e49ba7142478a659f2d689bbc70ed37235255172a8")));
|
||||||
|
auto public_key14 = fc::ecc::public_key(create_public_key_data(parse_hex("0287bcbd4f5d357f89a86979b386402445d7e9a5dccfd16146d1d2ab0dc2c32ae8")));
|
||||||
|
auto public_key15 = fc::ecc::public_key(create_public_key_data(parse_hex("02053859d76aa375d6f343a60e3678e906c008015e32fe4712b1fd2b26473bdd73")));
|
||||||
|
|
||||||
|
auto user_pub_key = fc::ecc::public_key(create_public_key_data(parse_hex("0368dc31b2b547c74f52abfc67c7fc768c68115d8ab96430d9bb4996fa660121cd")));
|
||||||
|
|
||||||
|
// key weights
|
||||||
|
std::vector<std::pair<fc::ecc::public_key, uint16_t>> weights;
|
||||||
|
weights.push_back(std::make_pair(public_key1, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key2, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key3, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key4, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key5, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key6, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key7, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key8, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key9, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key10, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key11, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key12, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key13, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key14, 1));
|
||||||
|
weights.push_back(std::make_pair(public_key15, 1));
|
||||||
|
|
||||||
|
btc_one_or_weighted_multisig_address addr(user_pub_key, weights);
|
||||||
|
auto redeem_script = parse_hex("210368dc31b2b547c74f52abfc67c7fc768c68115d8ab96430d9bb4996fa660121cdac635167007c2103456772301e221026269d3095ab5cb623fc239835b583ae4632f99a15107ef275ac635193687c2102d67c26cf20153fe7625ca1454222d3b3aeb53b122d8a0f7d32a3dd4b2c2016f4ac635193687c21025f7cfda933516fd590c5a34ad4a68e3143b6f4155a64b3aab2c55fb851150f61ac635193687c210228155bb1ddcd11c7f14a2752565178023aa963f84ea6b6a052bddebad6fe9866ac635193687c21037500441cfb4484da377073459511823b344f1ef0d46bac1efd4c7c466746f666ac635193687c2102ef0d79bfdb99ab0be674b1d5d06c24debd74bffdc28d466633d6668cc281cccfac635193687c210317941e4219548682fb8d8e172f0a8ce4d83ce21272435c85d598558c8e060b7fac635193687c210266065b27f7e3d3ad45b471b1cd4e02de73fc4737dc2679915a45e293c5adcf84ac635193687c21023821cc3da7be9e8cdceb8f146e9ddd78a9519875ecc5b42fe645af690544bccfac635193687c210229ff2b2106b76c27c393e82d71c20eec32bcf1f0cf1a9aca8a237269a67ff3e5ac635193687c21024d113381cc09deb8a6da62e0470644d1a06de82be2725b5052668c8845a4a8daac635193687c2103df2462a5a2f681a3896f61964a65566ff77448be9a55a6da18506fd9c6c051c1ac635193687c2102bafba3096f546cc5831ce1e49ba7142478a659f2d689bbc70ed37235255172a8ac635193687c210287bcbd4f5d357f89a86979b386402445d7e9a5dccfd16146d1d2ab0dc2c32ae8ac635193687c2102053859d76aa375d6f343a60e3678e906c008015e32fe4712b1fd2b26473bdd73ac635193685aa268");
|
||||||
|
|
||||||
|
BOOST_CHECK(addr.get_address() == "bcrt1qawr44trakzl4qev8ed88samt3g3g5mgcjppc6ffs5h4wyakqzavq6fkcc6");
|
||||||
|
BOOST_CHECK(addr.get_redeem_script() == redeem_script);
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,14 +1,13 @@
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <graphene/peerplays_sidechain/bitcoin/utils.hpp>
|
|
||||||
#include <graphene/peerplays_sidechain/bitcoin/bitcoin_transaction.hpp>
|
#include <graphene/peerplays_sidechain/bitcoin/bitcoin_transaction.hpp>
|
||||||
#include <graphene/peerplays_sidechain/bitcoin/serialize.hpp>
|
#include <graphene/peerplays_sidechain/bitcoin/serialize.hpp>
|
||||||
|
#include <graphene/peerplays_sidechain/bitcoin/utils.hpp>
|
||||||
|
|
||||||
using namespace graphene::peerplays_sidechain::bitcoin;
|
using namespace graphene::peerplays_sidechain::bitcoin;
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE(bitcoin_transaction_tests)
|
BOOST_AUTO_TEST_SUITE(bitcoin_transaction_tests)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( serialize_bitcoin_transaction_test )
|
BOOST_AUTO_TEST_CASE(serialize_bitcoin_transaction_test) {
|
||||||
{
|
|
||||||
out_point prevout;
|
out_point prevout;
|
||||||
prevout.hash = fc::sha256("89df2e16bdc1fd00dffc72f24ec4da53ebb3ce1b08f55e7a9f874527b8714b9a");
|
prevout.hash = fc::sha256("89df2e16bdc1fd00dffc72f24ec4da53ebb3ce1b08f55e7a9f874527b8714b9a");
|
||||||
prevout.n = 0;
|
prevout.n = 0;
|
||||||
|
|
@ -39,8 +38,7 @@ BOOST_AUTO_TEST_CASE( serialize_bitcoin_transaction_test )
|
||||||
BOOST_CHECK_EQUAL_COLLECTIONS(serialized.cbegin(), serialized.cend(), expected.cbegin(), expected.cend());
|
BOOST_CHECK_EQUAL_COLLECTIONS(serialized.cbegin(), serialized.cend(), expected.cbegin(), expected.cend());
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( deserialize_bitcoin_transaction_test )
|
BOOST_AUTO_TEST_CASE(deserialize_bitcoin_transaction_test) {
|
||||||
{
|
|
||||||
bitcoin_transaction tx = unpack(parse_hex("02000000019a4b71b82745879f7a5ef5081bceb3eb53dac44ef272fcdf00fdc1bd162edf890000000048473044022025f722981037f23949df7ac020e9895f6b4d35f98d04dadc43a8897d756b02f202203d4df0a81dac49be676657357f083d06f57b2d6b1199511ebdbd3bf82feff24101feffffff0200c39dd0000000001976a914d377a5fd22419f8180f6d0d12215daffdd15b80088ac00206859000000001976a914e71562730a2d7b2c2c7f2f137d6ddf80e8ee024288ac65000000"));
|
bitcoin_transaction tx = unpack(parse_hex("02000000019a4b71b82745879f7a5ef5081bceb3eb53dac44ef272fcdf00fdc1bd162edf890000000048473044022025f722981037f23949df7ac020e9895f6b4d35f98d04dadc43a8897d756b02f202203d4df0a81dac49be676657357f083d06f57b2d6b1199511ebdbd3bf82feff24101feffffff0200c39dd0000000001976a914d377a5fd22419f8180f6d0d12215daffdd15b80088ac00206859000000001976a914e71562730a2d7b2c2c7f2f137d6ddf80e8ee024288ac65000000"));
|
||||||
|
|
||||||
BOOST_CHECK_EQUAL(tx.nVersion, 2);
|
BOOST_CHECK_EQUAL(tx.nVersion, 2);
|
||||||
|
|
@ -60,7 +58,6 @@ BOOST_AUTO_TEST_CASE( deserialize_bitcoin_transaction_test )
|
||||||
BOOST_CHECK(fc::to_hex(tx.vout[1].scriptPubKey) == "76a914e71562730a2d7b2c2c7f2f137d6ddf80e8ee024288ac");
|
BOOST_CHECK(fc::to_hex(tx.vout[1].scriptPubKey) == "76a914e71562730a2d7b2c2c7f2f137d6ddf80e8ee024288ac");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(btc_tx_methods_test) {
|
BOOST_AUTO_TEST_CASE(btc_tx_methods_test) {
|
||||||
const auto tx = unpack(parse_hex("0100000000010115e180dc28a2327e687facc33f10f2a20da717e5548406f7ae8b4c811072f856040000002322002001d5d92effa6ffba3efa379f9830d0f75618b13393827152d26e4309000e88b1ffffffff0188b3f505000000001976a9141d7cd6c75c2e86f4cbf98eaed221b30bd9a0b92888ac02473044022038421164c6468c63dc7bf724aa9d48d8e5abe3935564d38182addf733ad4cd81022076362326b22dd7bfaf211d5b17220723659e4fe3359740ced5762d0e497b7dcc012321038262a6c6cec93c2d3ecd6c6072efea86d02ff8e3328bbd0242b20af3425990acac00000000"));
|
const auto tx = unpack(parse_hex("0100000000010115e180dc28a2327e687facc33f10f2a20da717e5548406f7ae8b4c811072f856040000002322002001d5d92effa6ffba3efa379f9830d0f75618b13393827152d26e4309000e88b1ffffffff0188b3f505000000001976a9141d7cd6c75c2e86f4cbf98eaed221b30bd9a0b92888ac02473044022038421164c6468c63dc7bf724aa9d48d8e5abe3935564d38182addf733ad4cd81022076362326b22dd7bfaf211d5b17220723659e4fe3359740ced5762d0e497b7dcc012321038262a6c6cec93c2d3ecd6c6072efea86d02ff8e3328bbd0242b20af3425990acac00000000"));
|
||||||
|
|
||||||
|
|
@ -69,8 +66,7 @@ BOOST_AUTO_TEST_CASE( btc_tx_methods_test ) {
|
||||||
BOOST_CHECK(tx.get_vsize() == 148);
|
BOOST_CHECK(tx.get_vsize() == 148);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( bitcoin_transaction_builder_test )
|
BOOST_AUTO_TEST_CASE(bitcoin_transaction_builder_test) {
|
||||||
{
|
|
||||||
// All tests are only to verefy the compilation of transactions, the transactions are not real(not valid)
|
// All tests are only to verefy the compilation of transactions, the transactions are not real(not valid)
|
||||||
{ // P2PKH to P2PKH
|
{ // P2PKH to P2PKH
|
||||||
bitcoin_transaction_builder tb;
|
bitcoin_transaction_builder tb;
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <graphene/peerplays_sidechain/bitcoin_utils.hpp>
|
|
||||||
#include <fc/crypto/hex.hpp>
|
|
||||||
#include <fc/crypto/elliptic.hpp>
|
|
||||||
#include <fc/crypto/base58.hpp>
|
#include <fc/crypto/base58.hpp>
|
||||||
|
#include <fc/crypto/elliptic.hpp>
|
||||||
|
#include <fc/crypto/hex.hpp>
|
||||||
|
#include <graphene/peerplays_sidechain/bitcoin_utils.hpp>
|
||||||
#include <secp256k1.h>
|
#include <secp256k1.h>
|
||||||
|
|
||||||
using namespace graphene::peerplays_sidechain;
|
using namespace graphene::peerplays_sidechain;
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(tx_serialization)
|
BOOST_AUTO_TEST_CASE(tx_serialization) {
|
||||||
{
|
|
||||||
// use real mainnet transaction
|
// use real mainnet transaction
|
||||||
// txid: 6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315
|
// txid: 6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315
|
||||||
// json: {"txid":"6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315","hash":"6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315","version":1,"size":224,"vsize":224,"weight":896,"locktime":0,"vin":[{"txid":"55d079ca797fee81416b71b373abedd8722e33c9f73177be0166b5d5fdac478b","vout":0,"scriptSig":{"asm":"3045022100d82e57d4d11d3b811d07f2fa4ded2fb8a3b7bb1d3e9f293433de5c0d1093c3bd02206704ccd2ff437e2f7716b5e9f2502a9cbb41f1245a18b2b10296980f1ae38253[ALL] 02be9919a5ba373b1af58ad757db19e7c836116bb8138e0c6d99599e4db96568f4","hex":"483045022100d82e57d4d11d3b811d07f2fa4ded2fb8a3b7bb1d3e9f293433de5c0d1093c3bd02206704ccd2ff437e2f7716b5e9f2502a9cbb41f1245a18b2b10296980f1ae38253012102be9919a5ba373b1af58ad757db19e7c836116bb8138e0c6d99599e4db96568f4"},"sequence":4294967295}],"vout":[{"value":1.26491535,"n":0,"scriptPubKey":{"asm":"OP_DUP OP_HASH160 95783804d28e528fbc4b48c7700471e6845804eb OP_EQUALVERIFY OP_CHECKSIG","hex":"76a91495783804d28e528fbc4b48c7700471e6845804eb88ac","reqSigs":1,"type":"pubkeyhash","addresses":["1EdKhXv7zjGowPzgDQ4z1wa2ukVrXRXXkP"]}},{"value":0.0002,"n":1,"scriptPubKey":{"asm":"OP_HASH160 fb0670971091da8248b5c900c6515727a20e8662 OP_EQUAL","hex":"a914fb0670971091da8248b5c900c6515727a20e866287","reqSigs":1,"type":"scripthash","addresses":["3QaKF8zobqcqY8aS6nxCD5ZYdiRfL3RCmU"]}}]}
|
// json: {"txid":"6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315","hash":"6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315","version":1,"size":224,"vsize":224,"weight":896,"locktime":0,"vin":[{"txid":"55d079ca797fee81416b71b373abedd8722e33c9f73177be0166b5d5fdac478b","vout":0,"scriptSig":{"asm":"3045022100d82e57d4d11d3b811d07f2fa4ded2fb8a3b7bb1d3e9f293433de5c0d1093c3bd02206704ccd2ff437e2f7716b5e9f2502a9cbb41f1245a18b2b10296980f1ae38253[ALL] 02be9919a5ba373b1af58ad757db19e7c836116bb8138e0c6d99599e4db96568f4","hex":"483045022100d82e57d4d11d3b811d07f2fa4ded2fb8a3b7bb1d3e9f293433de5c0d1093c3bd02206704ccd2ff437e2f7716b5e9f2502a9cbb41f1245a18b2b10296980f1ae38253012102be9919a5ba373b1af58ad757db19e7c836116bb8138e0c6d99599e4db96568f4"},"sequence":4294967295}],"vout":[{"value":1.26491535,"n":0,"scriptPubKey":{"asm":"OP_DUP OP_HASH160 95783804d28e528fbc4b48c7700471e6845804eb OP_EQUALVERIFY OP_CHECKSIG","hex":"76a91495783804d28e528fbc4b48c7700471e6845804eb88ac","reqSigs":1,"type":"pubkeyhash","addresses":["1EdKhXv7zjGowPzgDQ4z1wa2ukVrXRXXkP"]}},{"value":0.0002,"n":1,"scriptPubKey":{"asm":"OP_HASH160 fb0670971091da8248b5c900c6515727a20e8662 OP_EQUAL","hex":"a914fb0670971091da8248b5c900c6515727a20e866287","reqSigs":1,"type":"scripthash","addresses":["3QaKF8zobqcqY8aS6nxCD5ZYdiRfL3RCmU"]}}]}
|
||||||
|
|
@ -28,19 +27,16 @@ BOOST_AUTO_TEST_CASE(tx_serialization)
|
||||||
BOOST_CHECK(bintx == buff);
|
BOOST_CHECK(bintx == buff);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(pw_transfer)
|
BOOST_AUTO_TEST_CASE(pw_transfer) {
|
||||||
{
|
|
||||||
// key set for the old Primary Wallet
|
// key set for the old Primary Wallet
|
||||||
std::vector<fc::ecc::private_key> priv_old;
|
std::vector<fc::ecc::private_key> priv_old;
|
||||||
for(unsigned i = 0; i < 15; ++i)
|
for (unsigned i = 0; i < 15; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
}
|
}
|
||||||
// print old keys
|
// print old keys
|
||||||
for(auto key: priv_old)
|
for (auto key : priv_old) {
|
||||||
{
|
|
||||||
fc::sha256 secret = key.get_secret();
|
fc::sha256 secret = key.get_secret();
|
||||||
bytes data({239});
|
bytes data({239});
|
||||||
data.insert(data.end(), secret.data(), secret.data() + secret.data_size());
|
data.insert(data.end(), secret.data(), secret.data() + secret.data_size());
|
||||||
|
|
@ -66,8 +62,7 @@ BOOST_AUTO_TEST_CASE(pw_transfer)
|
||||||
|
|
||||||
// key set for the new Primary Wallet
|
// key set for the new Primary Wallet
|
||||||
std::vector<fc::ecc::private_key> priv_new;
|
std::vector<fc::ecc::private_key> priv_new;
|
||||||
for(unsigned i = 16; i < 31; ++i)
|
for (unsigned i = 16; i < 31; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_new.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_new.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
|
|
@ -122,19 +117,16 @@ BOOST_AUTO_TEST_CASE(pw_transfer)
|
||||||
BOOST_CHECK(fc::to_hex((char *)&signed_tx[0], signed_tx.size()) == "020000000001016617ba8fec01d942ef23dfa26c99badceb682050c5e67ec5b76de65dd6368a500000000000ffffffff01384a0000000000002200201650311c6711dad4d81f3d0b4695f814d1ac925b35783f47f0a8414f4905282f10473044022028cf6df7ed5c2761d7aa2af20717c8b5ace168a7800d6a566f2c1ae28160cae502205e01a3d91f5b9870577e36fbc26ce0cecc3e628cc376c7016364ec3f370703140147304402205c9a88cbe41eb9c6a16ba1d747456222cbe951d04739d21309ef0c0cf00727f202202d06db830ee5823882c7b6f82b708111a8f37741878896cd3558fb91efe8076401473044022009c3184fc0385eb7ed8dc0374791cbdace0eff0dc27dd80ac68f8cb81110f700022042267e8a8788c314347234ea10db6c1ec21a2d423b784cbfbaadf3b2393c44630147304402202363ce306570dc0bbf6d18d41b67c6488a014a91d8e24c03670b4f65523aca12022029d04c114b8e93d982cadee89d80bb25c5c8bc437d6cd2bfce8e0d83a08d14410148304502210087b4742e5cf9c77ca9f99928e7c7087e7d786e09216485628509e4e0b2f29d7e02207daf2eaee9fe8bf117074be137b7ae4b8503a4f6d263424e8e6a16405d5b723c0147304402204f1c3ed8cf595bfaf79d90f4c55c04c17bb6d446e3b9beca7ee6ee7895c6b752022022ac032f219a81b2845d0a1abfb904e40036a3ad332e7dfada6fda21ef7080b501483045022100d020eca4ba1aa77de9caf98f3a29f74f55268276860b9fa35fa16cfc00219dd8022028237de6ad063116cf8182d2dd45a09cb90c2ec8104d793eb3635a1290027cd6014730440220322193b0feba7356651465b86463c7619cd3d96729df6242e9571c74ff1c3c2902206e1de8e77b71c7b6031a934b52321134b6a8d138e2124e90f6345decbd543efb01483045022100d70ade49b3f17812785a41711e107b27c3d4981f8e12253629c07ec46ee511af02203e1ea9059ed9165eeff827002c7399a30c478a9b6f2b958621bfbc6713ab4dd30147304402206f7f10d9993c7019360276bbe790ab587adadeab08088593a9a0c56524aca4df02207c147fe2e51484801a4e059e611e7514729d685a5df892dcf02ba59d455e678101483045022100d5071b8039364bfaa53ef5e22206f773539b082f28bd1fbaaea995fa28aae0f5022056edf7a7bdd8a9a54273a667be5bcd11191fc871798fb44f6e1e35c95d86a81201483045022100a39f8ffbcd9c3f0591fc731a9856c8e024041017cba20c9935f13e4abcf9e9dc0220786823b8cd55664ff9ad6277899aacfd56fa8e48c38881482418b7d50ca27211014730440220361d3b87fcc2b1c12a9e7c684c78192ccb7fe51b90c281b7058384b0b036927a0220434c9b403ee3802b4e5b53feb9bb37d2a9d8746c3688da993549dd9d9954c6800147304402206dc4c3a4407fe9cbffb724928aa0597148c14a20d0d7fbb36ad5d3e2a3abf85e022039ef7baebbf08494495a038b009c6d4ff4b91c38db840673b87f6c27c3b53e7e01483045022100cadac495ea78d0ce9678a4334b8c43f7fafeea5a59413cc2a0144addb63485f9022078ca133e020e3afd0e79936337afefc21d84d3839f5a225a0f3d3eebc15f959901fd5c02007c21030e88484f2bb5dcfc0b326e9eb565c27c8291efb064d060d226916857a2676e62ac635193687c2102151ad794a3aeb3cf9c190120da3d13d36cd8bdf21ca1ccb15debd61c601314b0ac635293687c2103b45a5955ea7847d121225c752edaeb4a5d731a056a951a876caaf6d1f69adb7dac635393687c2102def03a6ffade4ffb0017c8d93859a247badd60e2d76d00e2a3713f6621932ec1ac635493687c21035f17aa7d58b8c3ee0d87240fded52b27f3f12768a0a54ba2595e0a929dd87155ac635593687c2103c8582ac6b0bd20cc1b02c6a86bad2ea10cadb758fedd754ba0d97be85b63b5a7ac635693687c21028148a1f9669fc4471e76f7a371d7cc0563b26e0821d9633fd37649744ff54edaac635793687c2102f0313701b0035f0365a59ce1a3d7ae7045e1f2fb25c4656c08071e5baf51483dac635893687c21024c4c25d08173b3c4d4e1375f8107fd7040c2dc0691ae1bf6fe82b8c88a85185fac635993687c210360fe2daa8661a3d25d0df79875d70b1c3d443ade731caafda7488cb68b4071b0ac635a93687c210250e41a6a4abd7b0b3a49eaec24a6fafa99e5aa7b1e3a5aabe60664276df3d937ac635b93687c2103045a32125930ca103c7d7c79b6f379754796cd4ea7fb0059da926e415e3877d3ac635c93687c210344943249d7ca9b47316fef0c2a413dda3a75416a449a29f310ab7fc9d052ed70ac635d93687c2103c62967320b63df5136ff1ef4c7959ef5917ee5a44f75c83e870bc488143d4d69ac635e93687c21020429f776e15770e4dc52bd6f72e6ed6908d51de1c4a64878433c4e3860a48dc4ac635f93680150a000000000");
|
BOOST_CHECK(fc::to_hex((char *)&signed_tx[0], signed_tx.size()) == "020000000001016617ba8fec01d942ef23dfa26c99badceb682050c5e67ec5b76de65dd6368a500000000000ffffffff01384a0000000000002200201650311c6711dad4d81f3d0b4695f814d1ac925b35783f47f0a8414f4905282f10473044022028cf6df7ed5c2761d7aa2af20717c8b5ace168a7800d6a566f2c1ae28160cae502205e01a3d91f5b9870577e36fbc26ce0cecc3e628cc376c7016364ec3f370703140147304402205c9a88cbe41eb9c6a16ba1d747456222cbe951d04739d21309ef0c0cf00727f202202d06db830ee5823882c7b6f82b708111a8f37741878896cd3558fb91efe8076401473044022009c3184fc0385eb7ed8dc0374791cbdace0eff0dc27dd80ac68f8cb81110f700022042267e8a8788c314347234ea10db6c1ec21a2d423b784cbfbaadf3b2393c44630147304402202363ce306570dc0bbf6d18d41b67c6488a014a91d8e24c03670b4f65523aca12022029d04c114b8e93d982cadee89d80bb25c5c8bc437d6cd2bfce8e0d83a08d14410148304502210087b4742e5cf9c77ca9f99928e7c7087e7d786e09216485628509e4e0b2f29d7e02207daf2eaee9fe8bf117074be137b7ae4b8503a4f6d263424e8e6a16405d5b723c0147304402204f1c3ed8cf595bfaf79d90f4c55c04c17bb6d446e3b9beca7ee6ee7895c6b752022022ac032f219a81b2845d0a1abfb904e40036a3ad332e7dfada6fda21ef7080b501483045022100d020eca4ba1aa77de9caf98f3a29f74f55268276860b9fa35fa16cfc00219dd8022028237de6ad063116cf8182d2dd45a09cb90c2ec8104d793eb3635a1290027cd6014730440220322193b0feba7356651465b86463c7619cd3d96729df6242e9571c74ff1c3c2902206e1de8e77b71c7b6031a934b52321134b6a8d138e2124e90f6345decbd543efb01483045022100d70ade49b3f17812785a41711e107b27c3d4981f8e12253629c07ec46ee511af02203e1ea9059ed9165eeff827002c7399a30c478a9b6f2b958621bfbc6713ab4dd30147304402206f7f10d9993c7019360276bbe790ab587adadeab08088593a9a0c56524aca4df02207c147fe2e51484801a4e059e611e7514729d685a5df892dcf02ba59d455e678101483045022100d5071b8039364bfaa53ef5e22206f773539b082f28bd1fbaaea995fa28aae0f5022056edf7a7bdd8a9a54273a667be5bcd11191fc871798fb44f6e1e35c95d86a81201483045022100a39f8ffbcd9c3f0591fc731a9856c8e024041017cba20c9935f13e4abcf9e9dc0220786823b8cd55664ff9ad6277899aacfd56fa8e48c38881482418b7d50ca27211014730440220361d3b87fcc2b1c12a9e7c684c78192ccb7fe51b90c281b7058384b0b036927a0220434c9b403ee3802b4e5b53feb9bb37d2a9d8746c3688da993549dd9d9954c6800147304402206dc4c3a4407fe9cbffb724928aa0597148c14a20d0d7fbb36ad5d3e2a3abf85e022039ef7baebbf08494495a038b009c6d4ff4b91c38db840673b87f6c27c3b53e7e01483045022100cadac495ea78d0ce9678a4334b8c43f7fafeea5a59413cc2a0144addb63485f9022078ca133e020e3afd0e79936337afefc21d84d3839f5a225a0f3d3eebc15f959901fd5c02007c21030e88484f2bb5dcfc0b326e9eb565c27c8291efb064d060d226916857a2676e62ac635193687c2102151ad794a3aeb3cf9c190120da3d13d36cd8bdf21ca1ccb15debd61c601314b0ac635293687c2103b45a5955ea7847d121225c752edaeb4a5d731a056a951a876caaf6d1f69adb7dac635393687c2102def03a6ffade4ffb0017c8d93859a247badd60e2d76d00e2a3713f6621932ec1ac635493687c21035f17aa7d58b8c3ee0d87240fded52b27f3f12768a0a54ba2595e0a929dd87155ac635593687c2103c8582ac6b0bd20cc1b02c6a86bad2ea10cadb758fedd754ba0d97be85b63b5a7ac635693687c21028148a1f9669fc4471e76f7a371d7cc0563b26e0821d9633fd37649744ff54edaac635793687c2102f0313701b0035f0365a59ce1a3d7ae7045e1f2fb25c4656c08071e5baf51483dac635893687c21024c4c25d08173b3c4d4e1375f8107fd7040c2dc0691ae1bf6fe82b8c88a85185fac635993687c210360fe2daa8661a3d25d0df79875d70b1c3d443ade731caafda7488cb68b4071b0ac635a93687c210250e41a6a4abd7b0b3a49eaec24a6fafa99e5aa7b1e3a5aabe60664276df3d937ac635b93687c2103045a32125930ca103c7d7c79b6f379754796cd4ea7fb0059da926e415e3877d3ac635c93687c210344943249d7ca9b47316fef0c2a413dda3a75416a449a29f310ab7fc9d052ed70ac635d93687c2103c62967320b63df5136ff1ef4c7959ef5917ee5a44f75c83e870bc488143d4d69ac635e93687c21020429f776e15770e4dc52bd6f72e6ed6908d51de1c4a64878433c4e3860a48dc4ac635f93680150a000000000");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(pw_separate_sign)
|
BOOST_AUTO_TEST_CASE(pw_separate_sign) {
|
||||||
{
|
|
||||||
// key set for the old Primary Wallet
|
// key set for the old Primary Wallet
|
||||||
std::vector<fc::ecc::private_key> priv_old;
|
std::vector<fc::ecc::private_key> priv_old;
|
||||||
for(unsigned i = 0; i < 15; ++i)
|
for (unsigned i = 0; i < 15; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
}
|
}
|
||||||
// print old keys
|
// print old keys
|
||||||
for(auto key: priv_old)
|
for (auto key : priv_old) {
|
||||||
{
|
|
||||||
fc::sha256 secret = key.get_secret();
|
fc::sha256 secret = key.get_secret();
|
||||||
bytes data({239});
|
bytes data({239});
|
||||||
data.insert(data.end(), secret.data(), secret.data() + secret.data_size());
|
data.insert(data.end(), secret.data(), secret.data() + secret.data_size());
|
||||||
|
|
@ -160,8 +152,7 @@ BOOST_AUTO_TEST_CASE(pw_separate_sign)
|
||||||
|
|
||||||
// key set for the new Primary Wallet
|
// key set for the new Primary Wallet
|
||||||
std::vector<fc::ecc::private_key> priv_new;
|
std::vector<fc::ecc::private_key> priv_new;
|
||||||
for(unsigned i = 16; i < 31; ++i)
|
for (unsigned i = 16; i < 31; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_new.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_new.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
|
|
@ -220,19 +211,16 @@ BOOST_AUTO_TEST_CASE(pw_separate_sign)
|
||||||
BOOST_CHECK(fc::to_hex((char *)&partially_signed_tx[0], partially_signed_tx.size()) == "020000000001016617ba8fec01d942ef23dfa26c99badceb682050c5e67ec5b76de65dd6368a500000000000ffffffff01384a0000000000002200201650311c6711dad4d81f3d0b4695f814d1ac925b35783f47f0a8414f4905282f10473044022028cf6df7ed5c2761d7aa2af20717c8b5ace168a7800d6a566f2c1ae28160cae502205e01a3d91f5b9870577e36fbc26ce0cecc3e628cc376c7016364ec3f370703140147304402205c9a88cbe41eb9c6a16ba1d747456222cbe951d04739d21309ef0c0cf00727f202202d06db830ee5823882c7b6f82b708111a8f37741878896cd3558fb91efe8076401473044022009c3184fc0385eb7ed8dc0374791cbdace0eff0dc27dd80ac68f8cb81110f700022042267e8a8788c314347234ea10db6c1ec21a2d423b784cbfbaadf3b2393c44630147304402202363ce306570dc0bbf6d18d41b67c6488a014a91d8e24c03670b4f65523aca12022029d04c114b8e93d982cadee89d80bb25c5c8bc437d6cd2bfce8e0d83a08d14410148304502210087b4742e5cf9c77ca9f99928e7c7087e7d786e09216485628509e4e0b2f29d7e02207daf2eaee9fe8bf117074be137b7ae4b8503a4f6d263424e8e6a16405d5b723c0147304402204f1c3ed8cf595bfaf79d90f4c55c04c17bb6d446e3b9beca7ee6ee7895c6b752022022ac032f219a81b2845d0a1abfb904e40036a3ad332e7dfada6fda21ef7080b501483045022100d020eca4ba1aa77de9caf98f3a29f74f55268276860b9fa35fa16cfc00219dd8022028237de6ad063116cf8182d2dd45a09cb90c2ec8104d793eb3635a1290027cd6014730440220322193b0feba7356651465b86463c7619cd3d96729df6242e9571c74ff1c3c2902206e1de8e77b71c7b6031a934b52321134b6a8d138e2124e90f6345decbd543efb01483045022100d70ade49b3f17812785a41711e107b27c3d4981f8e12253629c07ec46ee511af02203e1ea9059ed9165eeff827002c7399a30c478a9b6f2b958621bfbc6713ab4dd30147304402206f7f10d9993c7019360276bbe790ab587adadeab08088593a9a0c56524aca4df02207c147fe2e51484801a4e059e611e7514729d685a5df892dcf02ba59d455e678101483045022100d5071b8039364bfaa53ef5e22206f773539b082f28bd1fbaaea995fa28aae0f5022056edf7a7bdd8a9a54273a667be5bcd11191fc871798fb44f6e1e35c95d86a81201483045022100a39f8ffbcd9c3f0591fc731a9856c8e024041017cba20c9935f13e4abcf9e9dc0220786823b8cd55664ff9ad6277899aacfd56fa8e48c38881482418b7d50ca27211014730440220361d3b87fcc2b1c12a9e7c684c78192ccb7fe51b90c281b7058384b0b036927a0220434c9b403ee3802b4e5b53feb9bb37d2a9d8746c3688da993549dd9d9954c6800147304402206dc4c3a4407fe9cbffb724928aa0597148c14a20d0d7fbb36ad5d3e2a3abf85e022039ef7baebbf08494495a038b009c6d4ff4b91c38db840673b87f6c27c3b53e7e01483045022100cadac495ea78d0ce9678a4334b8c43f7fafeea5a59413cc2a0144addb63485f9022078ca133e020e3afd0e79936337afefc21d84d3839f5a225a0f3d3eebc15f959901fd5c02007c21030e88484f2bb5dcfc0b326e9eb565c27c8291efb064d060d226916857a2676e62ac635193687c2102151ad794a3aeb3cf9c190120da3d13d36cd8bdf21ca1ccb15debd61c601314b0ac635293687c2103b45a5955ea7847d121225c752edaeb4a5d731a056a951a876caaf6d1f69adb7dac635393687c2102def03a6ffade4ffb0017c8d93859a247badd60e2d76d00e2a3713f6621932ec1ac635493687c21035f17aa7d58b8c3ee0d87240fded52b27f3f12768a0a54ba2595e0a929dd87155ac635593687c2103c8582ac6b0bd20cc1b02c6a86bad2ea10cadb758fedd754ba0d97be85b63b5a7ac635693687c21028148a1f9669fc4471e76f7a371d7cc0563b26e0821d9633fd37649744ff54edaac635793687c2102f0313701b0035f0365a59ce1a3d7ae7045e1f2fb25c4656c08071e5baf51483dac635893687c21024c4c25d08173b3c4d4e1375f8107fd7040c2dc0691ae1bf6fe82b8c88a85185fac635993687c210360fe2daa8661a3d25d0df79875d70b1c3d443ade731caafda7488cb68b4071b0ac635a93687c210250e41a6a4abd7b0b3a49eaec24a6fafa99e5aa7b1e3a5aabe60664276df3d937ac635b93687c2103045a32125930ca103c7d7c79b6f379754796cd4ea7fb0059da926e415e3877d3ac635c93687c210344943249d7ca9b47316fef0c2a413dda3a75416a449a29f310ab7fc9d052ed70ac635d93687c2103c62967320b63df5136ff1ef4c7959ef5917ee5a44f75c83e870bc488143d4d69ac635e93687c21020429f776e15770e4dc52bd6f72e6ed6908d51de1c4a64878433c4e3860a48dc4ac635f93680150a000000000");
|
BOOST_CHECK(fc::to_hex((char *)&partially_signed_tx[0], partially_signed_tx.size()) == "020000000001016617ba8fec01d942ef23dfa26c99badceb682050c5e67ec5b76de65dd6368a500000000000ffffffff01384a0000000000002200201650311c6711dad4d81f3d0b4695f814d1ac925b35783f47f0a8414f4905282f10473044022028cf6df7ed5c2761d7aa2af20717c8b5ace168a7800d6a566f2c1ae28160cae502205e01a3d91f5b9870577e36fbc26ce0cecc3e628cc376c7016364ec3f370703140147304402205c9a88cbe41eb9c6a16ba1d747456222cbe951d04739d21309ef0c0cf00727f202202d06db830ee5823882c7b6f82b708111a8f37741878896cd3558fb91efe8076401473044022009c3184fc0385eb7ed8dc0374791cbdace0eff0dc27dd80ac68f8cb81110f700022042267e8a8788c314347234ea10db6c1ec21a2d423b784cbfbaadf3b2393c44630147304402202363ce306570dc0bbf6d18d41b67c6488a014a91d8e24c03670b4f65523aca12022029d04c114b8e93d982cadee89d80bb25c5c8bc437d6cd2bfce8e0d83a08d14410148304502210087b4742e5cf9c77ca9f99928e7c7087e7d786e09216485628509e4e0b2f29d7e02207daf2eaee9fe8bf117074be137b7ae4b8503a4f6d263424e8e6a16405d5b723c0147304402204f1c3ed8cf595bfaf79d90f4c55c04c17bb6d446e3b9beca7ee6ee7895c6b752022022ac032f219a81b2845d0a1abfb904e40036a3ad332e7dfada6fda21ef7080b501483045022100d020eca4ba1aa77de9caf98f3a29f74f55268276860b9fa35fa16cfc00219dd8022028237de6ad063116cf8182d2dd45a09cb90c2ec8104d793eb3635a1290027cd6014730440220322193b0feba7356651465b86463c7619cd3d96729df6242e9571c74ff1c3c2902206e1de8e77b71c7b6031a934b52321134b6a8d138e2124e90f6345decbd543efb01483045022100d70ade49b3f17812785a41711e107b27c3d4981f8e12253629c07ec46ee511af02203e1ea9059ed9165eeff827002c7399a30c478a9b6f2b958621bfbc6713ab4dd30147304402206f7f10d9993c7019360276bbe790ab587adadeab08088593a9a0c56524aca4df02207c147fe2e51484801a4e059e611e7514729d685a5df892dcf02ba59d455e678101483045022100d5071b8039364bfaa53ef5e22206f773539b082f28bd1fbaaea995fa28aae0f5022056edf7a7bdd8a9a54273a667be5bcd11191fc871798fb44f6e1e35c95d86a81201483045022100a39f8ffbcd9c3f0591fc731a9856c8e024041017cba20c9935f13e4abcf9e9dc0220786823b8cd55664ff9ad6277899aacfd56fa8e48c38881482418b7d50ca27211014730440220361d3b87fcc2b1c12a9e7c684c78192ccb7fe51b90c281b7058384b0b036927a0220434c9b403ee3802b4e5b53feb9bb37d2a9d8746c3688da993549dd9d9954c6800147304402206dc4c3a4407fe9cbffb724928aa0597148c14a20d0d7fbb36ad5d3e2a3abf85e022039ef7baebbf08494495a038b009c6d4ff4b91c38db840673b87f6c27c3b53e7e01483045022100cadac495ea78d0ce9678a4334b8c43f7fafeea5a59413cc2a0144addb63485f9022078ca133e020e3afd0e79936337afefc21d84d3839f5a225a0f3d3eebc15f959901fd5c02007c21030e88484f2bb5dcfc0b326e9eb565c27c8291efb064d060d226916857a2676e62ac635193687c2102151ad794a3aeb3cf9c190120da3d13d36cd8bdf21ca1ccb15debd61c601314b0ac635293687c2103b45a5955ea7847d121225c752edaeb4a5d731a056a951a876caaf6d1f69adb7dac635393687c2102def03a6ffade4ffb0017c8d93859a247badd60e2d76d00e2a3713f6621932ec1ac635493687c21035f17aa7d58b8c3ee0d87240fded52b27f3f12768a0a54ba2595e0a929dd87155ac635593687c2103c8582ac6b0bd20cc1b02c6a86bad2ea10cadb758fedd754ba0d97be85b63b5a7ac635693687c21028148a1f9669fc4471e76f7a371d7cc0563b26e0821d9633fd37649744ff54edaac635793687c2102f0313701b0035f0365a59ce1a3d7ae7045e1f2fb25c4656c08071e5baf51483dac635893687c21024c4c25d08173b3c4d4e1375f8107fd7040c2dc0691ae1bf6fe82b8c88a85185fac635993687c210360fe2daa8661a3d25d0df79875d70b1c3d443ade731caafda7488cb68b4071b0ac635a93687c210250e41a6a4abd7b0b3a49eaec24a6fafa99e5aa7b1e3a5aabe60664276df3d937ac635b93687c2103045a32125930ca103c7d7c79b6f379754796cd4ea7fb0059da926e415e3877d3ac635c93687c210344943249d7ca9b47316fef0c2a413dda3a75416a449a29f310ab7fc9d052ed70ac635d93687c2103c62967320b63df5136ff1ef4c7959ef5917ee5a44f75c83e870bc488143d4d69ac635e93687c21020429f776e15770e4dc52bd6f72e6ed6908d51de1c4a64878433c4e3860a48dc4ac635f93680150a000000000");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(pw_separate_sign2)
|
BOOST_AUTO_TEST_CASE(pw_separate_sign2) {
|
||||||
{
|
|
||||||
// key set for the old Primary Wallet
|
// key set for the old Primary Wallet
|
||||||
std::vector<fc::ecc::private_key> priv_old;
|
std::vector<fc::ecc::private_key> priv_old;
|
||||||
for(unsigned i = 0; i < 15; ++i)
|
for (unsigned i = 0; i < 15; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
}
|
}
|
||||||
// print old keys
|
// print old keys
|
||||||
for(auto key: priv_old)
|
for (auto key : priv_old) {
|
||||||
{
|
|
||||||
fc::sha256 secret = key.get_secret();
|
fc::sha256 secret = key.get_secret();
|
||||||
bytes data({239});
|
bytes data({239});
|
||||||
data.insert(data.end(), secret.data(), secret.data() + secret.data_size());
|
data.insert(data.end(), secret.data(), secret.data() + secret.data_size());
|
||||||
|
|
@ -258,8 +246,7 @@ BOOST_AUTO_TEST_CASE(pw_separate_sign2)
|
||||||
|
|
||||||
// key set for the new Primary Wallet
|
// key set for the new Primary Wallet
|
||||||
std::vector<fc::ecc::private_key> priv_new;
|
std::vector<fc::ecc::private_key> priv_new;
|
||||||
for(unsigned i = 16; i < 31; ++i)
|
for (unsigned i = 16; i < 31; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_new.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_new.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
|
|
@ -309,8 +296,7 @@ BOOST_AUTO_TEST_CASE(pw_separate_sign2)
|
||||||
|
|
||||||
// gather all signatures from all SONs separatelly
|
// gather all signatures from all SONs separatelly
|
||||||
std::vector<std::vector<bytes>> signature_set;
|
std::vector<std::vector<bytes>> signature_set;
|
||||||
for(auto key: priv_old)
|
for (auto key : priv_old) {
|
||||||
{
|
|
||||||
std::vector<bytes> signatures = signatures_for_raw_transaction(unsigned_tx, in_amounts, redeem_old, key);
|
std::vector<bytes> signatures = signatures_for_raw_transaction(unsigned_tx, in_amounts, redeem_old, key);
|
||||||
signature_set.push_back(signatures);
|
signature_set.push_back(signatures);
|
||||||
}
|
}
|
||||||
|
|
@ -322,19 +308,16 @@ BOOST_AUTO_TEST_CASE(pw_separate_sign2)
|
||||||
BOOST_CHECK(fc::to_hex((char *)&signed_tx[0], signed_tx.size()) == "020000000001016617ba8fec01d942ef23dfa26c99badceb682050c5e67ec5b76de65dd6368a500000000000ffffffff01384a0000000000002200201650311c6711dad4d81f3d0b4695f814d1ac925b35783f47f0a8414f4905282f10473044022028cf6df7ed5c2761d7aa2af20717c8b5ace168a7800d6a566f2c1ae28160cae502205e01a3d91f5b9870577e36fbc26ce0cecc3e628cc376c7016364ec3f370703140147304402205c9a88cbe41eb9c6a16ba1d747456222cbe951d04739d21309ef0c0cf00727f202202d06db830ee5823882c7b6f82b708111a8f37741878896cd3558fb91efe8076401473044022009c3184fc0385eb7ed8dc0374791cbdace0eff0dc27dd80ac68f8cb81110f700022042267e8a8788c314347234ea10db6c1ec21a2d423b784cbfbaadf3b2393c44630147304402202363ce306570dc0bbf6d18d41b67c6488a014a91d8e24c03670b4f65523aca12022029d04c114b8e93d982cadee89d80bb25c5c8bc437d6cd2bfce8e0d83a08d14410148304502210087b4742e5cf9c77ca9f99928e7c7087e7d786e09216485628509e4e0b2f29d7e02207daf2eaee9fe8bf117074be137b7ae4b8503a4f6d263424e8e6a16405d5b723c0147304402204f1c3ed8cf595bfaf79d90f4c55c04c17bb6d446e3b9beca7ee6ee7895c6b752022022ac032f219a81b2845d0a1abfb904e40036a3ad332e7dfada6fda21ef7080b501483045022100d020eca4ba1aa77de9caf98f3a29f74f55268276860b9fa35fa16cfc00219dd8022028237de6ad063116cf8182d2dd45a09cb90c2ec8104d793eb3635a1290027cd6014730440220322193b0feba7356651465b86463c7619cd3d96729df6242e9571c74ff1c3c2902206e1de8e77b71c7b6031a934b52321134b6a8d138e2124e90f6345decbd543efb01483045022100d70ade49b3f17812785a41711e107b27c3d4981f8e12253629c07ec46ee511af02203e1ea9059ed9165eeff827002c7399a30c478a9b6f2b958621bfbc6713ab4dd30147304402206f7f10d9993c7019360276bbe790ab587adadeab08088593a9a0c56524aca4df02207c147fe2e51484801a4e059e611e7514729d685a5df892dcf02ba59d455e678101483045022100d5071b8039364bfaa53ef5e22206f773539b082f28bd1fbaaea995fa28aae0f5022056edf7a7bdd8a9a54273a667be5bcd11191fc871798fb44f6e1e35c95d86a81201483045022100a39f8ffbcd9c3f0591fc731a9856c8e024041017cba20c9935f13e4abcf9e9dc0220786823b8cd55664ff9ad6277899aacfd56fa8e48c38881482418b7d50ca27211014730440220361d3b87fcc2b1c12a9e7c684c78192ccb7fe51b90c281b7058384b0b036927a0220434c9b403ee3802b4e5b53feb9bb37d2a9d8746c3688da993549dd9d9954c6800147304402206dc4c3a4407fe9cbffb724928aa0597148c14a20d0d7fbb36ad5d3e2a3abf85e022039ef7baebbf08494495a038b009c6d4ff4b91c38db840673b87f6c27c3b53e7e01483045022100cadac495ea78d0ce9678a4334b8c43f7fafeea5a59413cc2a0144addb63485f9022078ca133e020e3afd0e79936337afefc21d84d3839f5a225a0f3d3eebc15f959901fd5c02007c21030e88484f2bb5dcfc0b326e9eb565c27c8291efb064d060d226916857a2676e62ac635193687c2102151ad794a3aeb3cf9c190120da3d13d36cd8bdf21ca1ccb15debd61c601314b0ac635293687c2103b45a5955ea7847d121225c752edaeb4a5d731a056a951a876caaf6d1f69adb7dac635393687c2102def03a6ffade4ffb0017c8d93859a247badd60e2d76d00e2a3713f6621932ec1ac635493687c21035f17aa7d58b8c3ee0d87240fded52b27f3f12768a0a54ba2595e0a929dd87155ac635593687c2103c8582ac6b0bd20cc1b02c6a86bad2ea10cadb758fedd754ba0d97be85b63b5a7ac635693687c21028148a1f9669fc4471e76f7a371d7cc0563b26e0821d9633fd37649744ff54edaac635793687c2102f0313701b0035f0365a59ce1a3d7ae7045e1f2fb25c4656c08071e5baf51483dac635893687c21024c4c25d08173b3c4d4e1375f8107fd7040c2dc0691ae1bf6fe82b8c88a85185fac635993687c210360fe2daa8661a3d25d0df79875d70b1c3d443ade731caafda7488cb68b4071b0ac635a93687c210250e41a6a4abd7b0b3a49eaec24a6fafa99e5aa7b1e3a5aabe60664276df3d937ac635b93687c2103045a32125930ca103c7d7c79b6f379754796cd4ea7fb0059da926e415e3877d3ac635c93687c210344943249d7ca9b47316fef0c2a413dda3a75416a449a29f310ab7fc9d052ed70ac635d93687c2103c62967320b63df5136ff1ef4c7959ef5917ee5a44f75c83e870bc488143d4d69ac635e93687c21020429f776e15770e4dc52bd6f72e6ed6908d51de1c4a64878433c4e3860a48dc4ac635f93680150a000000000");
|
BOOST_CHECK(fc::to_hex((char *)&signed_tx[0], signed_tx.size()) == "020000000001016617ba8fec01d942ef23dfa26c99badceb682050c5e67ec5b76de65dd6368a500000000000ffffffff01384a0000000000002200201650311c6711dad4d81f3d0b4695f814d1ac925b35783f47f0a8414f4905282f10473044022028cf6df7ed5c2761d7aa2af20717c8b5ace168a7800d6a566f2c1ae28160cae502205e01a3d91f5b9870577e36fbc26ce0cecc3e628cc376c7016364ec3f370703140147304402205c9a88cbe41eb9c6a16ba1d747456222cbe951d04739d21309ef0c0cf00727f202202d06db830ee5823882c7b6f82b708111a8f37741878896cd3558fb91efe8076401473044022009c3184fc0385eb7ed8dc0374791cbdace0eff0dc27dd80ac68f8cb81110f700022042267e8a8788c314347234ea10db6c1ec21a2d423b784cbfbaadf3b2393c44630147304402202363ce306570dc0bbf6d18d41b67c6488a014a91d8e24c03670b4f65523aca12022029d04c114b8e93d982cadee89d80bb25c5c8bc437d6cd2bfce8e0d83a08d14410148304502210087b4742e5cf9c77ca9f99928e7c7087e7d786e09216485628509e4e0b2f29d7e02207daf2eaee9fe8bf117074be137b7ae4b8503a4f6d263424e8e6a16405d5b723c0147304402204f1c3ed8cf595bfaf79d90f4c55c04c17bb6d446e3b9beca7ee6ee7895c6b752022022ac032f219a81b2845d0a1abfb904e40036a3ad332e7dfada6fda21ef7080b501483045022100d020eca4ba1aa77de9caf98f3a29f74f55268276860b9fa35fa16cfc00219dd8022028237de6ad063116cf8182d2dd45a09cb90c2ec8104d793eb3635a1290027cd6014730440220322193b0feba7356651465b86463c7619cd3d96729df6242e9571c74ff1c3c2902206e1de8e77b71c7b6031a934b52321134b6a8d138e2124e90f6345decbd543efb01483045022100d70ade49b3f17812785a41711e107b27c3d4981f8e12253629c07ec46ee511af02203e1ea9059ed9165eeff827002c7399a30c478a9b6f2b958621bfbc6713ab4dd30147304402206f7f10d9993c7019360276bbe790ab587adadeab08088593a9a0c56524aca4df02207c147fe2e51484801a4e059e611e7514729d685a5df892dcf02ba59d455e678101483045022100d5071b8039364bfaa53ef5e22206f773539b082f28bd1fbaaea995fa28aae0f5022056edf7a7bdd8a9a54273a667be5bcd11191fc871798fb44f6e1e35c95d86a81201483045022100a39f8ffbcd9c3f0591fc731a9856c8e024041017cba20c9935f13e4abcf9e9dc0220786823b8cd55664ff9ad6277899aacfd56fa8e48c38881482418b7d50ca27211014730440220361d3b87fcc2b1c12a9e7c684c78192ccb7fe51b90c281b7058384b0b036927a0220434c9b403ee3802b4e5b53feb9bb37d2a9d8746c3688da993549dd9d9954c6800147304402206dc4c3a4407fe9cbffb724928aa0597148c14a20d0d7fbb36ad5d3e2a3abf85e022039ef7baebbf08494495a038b009c6d4ff4b91c38db840673b87f6c27c3b53e7e01483045022100cadac495ea78d0ce9678a4334b8c43f7fafeea5a59413cc2a0144addb63485f9022078ca133e020e3afd0e79936337afefc21d84d3839f5a225a0f3d3eebc15f959901fd5c02007c21030e88484f2bb5dcfc0b326e9eb565c27c8291efb064d060d226916857a2676e62ac635193687c2102151ad794a3aeb3cf9c190120da3d13d36cd8bdf21ca1ccb15debd61c601314b0ac635293687c2103b45a5955ea7847d121225c752edaeb4a5d731a056a951a876caaf6d1f69adb7dac635393687c2102def03a6ffade4ffb0017c8d93859a247badd60e2d76d00e2a3713f6621932ec1ac635493687c21035f17aa7d58b8c3ee0d87240fded52b27f3f12768a0a54ba2595e0a929dd87155ac635593687c2103c8582ac6b0bd20cc1b02c6a86bad2ea10cadb758fedd754ba0d97be85b63b5a7ac635693687c21028148a1f9669fc4471e76f7a371d7cc0563b26e0821d9633fd37649744ff54edaac635793687c2102f0313701b0035f0365a59ce1a3d7ae7045e1f2fb25c4656c08071e5baf51483dac635893687c21024c4c25d08173b3c4d4e1375f8107fd7040c2dc0691ae1bf6fe82b8c88a85185fac635993687c210360fe2daa8661a3d25d0df79875d70b1c3d443ade731caafda7488cb68b4071b0ac635a93687c210250e41a6a4abd7b0b3a49eaec24a6fafa99e5aa7b1e3a5aabe60664276df3d937ac635b93687c2103045a32125930ca103c7d7c79b6f379754796cd4ea7fb0059da926e415e3877d3ac635c93687c210344943249d7ca9b47316fef0c2a413dda3a75416a449a29f310ab7fc9d052ed70ac635d93687c2103c62967320b63df5136ff1ef4c7959ef5917ee5a44f75c83e870bc488143d4d69ac635e93687c21020429f776e15770e4dc52bd6f72e6ed6908d51de1c4a64878433c4e3860a48dc4ac635f93680150a000000000");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(pw_partially_sign)
|
BOOST_AUTO_TEST_CASE(pw_partially_sign) {
|
||||||
{
|
|
||||||
// key set for the old Primary Wallet
|
// key set for the old Primary Wallet
|
||||||
std::vector<fc::ecc::private_key> priv_old;
|
std::vector<fc::ecc::private_key> priv_old;
|
||||||
for(unsigned i = 0; i < 15; ++i)
|
for (unsigned i = 0; i < 15; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_old.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
}
|
}
|
||||||
// print old keys
|
// print old keys
|
||||||
for(auto key: priv_old)
|
for (auto key : priv_old) {
|
||||||
{
|
|
||||||
fc::sha256 secret = key.get_secret();
|
fc::sha256 secret = key.get_secret();
|
||||||
bytes data({239});
|
bytes data({239});
|
||||||
data.insert(data.end(), secret.data(), secret.data() + secret.data_size());
|
data.insert(data.end(), secret.data(), secret.data() + secret.data_size());
|
||||||
|
|
@ -360,8 +343,7 @@ BOOST_AUTO_TEST_CASE(pw_partially_sign)
|
||||||
|
|
||||||
// key set for the new Primary Wallet
|
// key set for the new Primary Wallet
|
||||||
std::vector<fc::ecc::private_key> priv_new;
|
std::vector<fc::ecc::private_key> priv_new;
|
||||||
for(unsigned i = 16; i < 31; ++i)
|
for (unsigned i = 16; i < 31; ++i) {
|
||||||
{
|
|
||||||
const char *seed = reinterpret_cast<const char *>(&i);
|
const char *seed = reinterpret_cast<const char *>(&i);
|
||||||
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
fc::sha256 h = fc::sha256::hash(seed, sizeof(i));
|
||||||
priv_new.push_back(fc::ecc::private_key::generate_from_seed(h));
|
priv_new.push_back(fc::ecc::private_key::generate_from_seed(h));
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,12 @@
|
||||||
|
|
||||||
#define BOOST_TEST_MODULE Peerplays SON Tests
|
#define BOOST_TEST_MODULE Peerplays SON Tests
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(peerplays_sidechain)
|
BOOST_AUTO_TEST_CASE(peerplays_sidechain) {
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include <boost/test/included/unit_test.hpp>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <boost/test/included/unit_test.hpp>
|
|
||||||
|
|
||||||
boost::unit_test::test_suite *init_unit_test_suite(int argc, char *argv[]) {
|
boost::unit_test::test_suite *init_unit_test_suite(int argc, char *argv[]) {
|
||||||
std::srand(time(NULL));
|
std::srand(time(NULL));
|
||||||
|
|
@ -17,4 +15,3 @@ boost::unit_test::test_suite* init_unit_test_suite(int argc, char* argv[]) {
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue