Added --onion-address command line option to support incoming TOR connections
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
#include "side_chain.h"
|
||||
#include "wallet.h"
|
||||
#include "keccak.h"
|
||||
#include "params.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
namespace p2pool {
|
||||
@@ -52,11 +53,12 @@ TEST(block_template, update)
|
||||
data.median_timestamp = (1ULL << 35) - 2;
|
||||
|
||||
Mempool mempool;
|
||||
Wallet wallet("44MnN1f3Eto8DZYUWuE5XZNUtE3vcRzt2j6PzqWpPau34e6Cf4fAxt6X2MBmrm6F9YMEiMNjN6W4Shn4pLcfNAja621jwyg");
|
||||
Wallet subaddress{ nullptr };
|
||||
Params params;
|
||||
|
||||
params.m_miningWallet = Wallet("44MnN1f3Eto8DZYUWuE5XZNUtE3vcRzt2j6PzqWpPau34e6Cf4fAxt6X2MBmrm6F9YMEiMNjN6W4Shn4pLcfNAja621jwyg");
|
||||
|
||||
// Test 1: empty template
|
||||
tpl.update(data, mempool, wallet, subaddress);
|
||||
tpl.update(data, mempool, ¶ms);
|
||||
ASSERT_EQ(tpl.get_reward(), 600000000000ULL);
|
||||
|
||||
const PoolBlock* b = tpl.pool_block_template();
|
||||
@@ -111,7 +113,7 @@ TEST(block_template, update)
|
||||
}
|
||||
ASSERT_EQ(mempool.size(), 512);
|
||||
|
||||
tpl.update(data, mempool, wallet, subaddress);
|
||||
tpl.update(data, mempool, ¶ms);
|
||||
ASSERT_EQ(tpl.get_reward(), 612054770773ULL);
|
||||
|
||||
ASSERT_EQ(b->m_sidechainId, H("c9df4853003ab436416b9fc9a5a072d16b4dede849e697a8be2ebb9c88c8ec72"));
|
||||
@@ -152,7 +154,7 @@ TEST(block_template, update)
|
||||
|
||||
data.aux_chains.emplace_back(H("01f0cf665bd4cd31cbb2b2470236389c483522b350335e10a4a5dca34cb85990"), H("d9de1cfba7cdbd47f12f77addcb39b24c1ae7a16c35372bf28d6aee5d7579ee6"), difficulty_type(1000000));
|
||||
|
||||
tpl.update(data, mempool, wallet, subaddress);
|
||||
tpl.update(data, mempool, ¶ms);
|
||||
ASSERT_EQ(tpl.get_reward(), 600300000000ULL);
|
||||
|
||||
ASSERT_EQ(b->m_sidechainId, H("c32abac2cad40e263a94f5f43f90e0a7d7d4b151305b79951dbc8c88c3180613"));
|
||||
@@ -189,7 +191,7 @@ TEST(block_template, update)
|
||||
}
|
||||
ASSERT_EQ(mempool.size(), 10000);
|
||||
|
||||
tpl.update(data, mempool, wallet, subaddress);
|
||||
tpl.update(data, mempool, ¶ms);
|
||||
ASSERT_EQ(tpl.get_reward(), 619742028747ULL);
|
||||
|
||||
ASSERT_EQ(b->m_sidechainId, H("69e7dd43dd99ac6be3f57ca333cc0d814189e83aee1773c99a341aca085c0d46"));
|
||||
@@ -242,19 +244,20 @@ TEST(block_template, submit_sidechain_block)
|
||||
data.median_timestamp = (1ULL << 35) - (sidechain.chain_window_size() * 2 + 10) * sidechain.block_time() - 3600;
|
||||
|
||||
Mempool mempool;
|
||||
Wallet wallet("44MnN1f3Eto8DZYUWuE5XZNUtE3vcRzt2j6PzqWpPau34e6Cf4fAxt6X2MBmrm6F9YMEiMNjN6W4Shn4pLcfNAja621jwyg");
|
||||
Wallet subaddress{ nullptr };
|
||||
Params params;
|
||||
|
||||
params.m_miningWallet = Wallet("44MnN1f3Eto8DZYUWuE5XZNUtE3vcRzt2j6PzqWpPau34e6Cf4fAxt6X2MBmrm6F9YMEiMNjN6W4Shn4pLcfNAja621jwyg");
|
||||
|
||||
std::mt19937_64 rng(101112);
|
||||
|
||||
for (uint64_t i = 0, i2 = 0, i3 = 0; i < sidechain.chain_window_size() * 3; ++i) {
|
||||
tpl.update(data, mempool, wallet, subaddress);
|
||||
tpl.update(data, mempool, ¶ms);
|
||||
|
||||
if ((rng() % 31) == 0) {
|
||||
tpl2.update(data, mempool, wallet, subaddress);
|
||||
tpl2.update(data, mempool, ¶ms);
|
||||
|
||||
if ((rng() % 11) == 0) {
|
||||
tpl3.update(data, mempool, wallet, subaddress);
|
||||
tpl3.update(data, mempool, ¶ms);
|
||||
++i3;
|
||||
ASSERT_TRUE(tpl3.submit_sidechain_block(i3, 0, 0));
|
||||
}
|
||||
|
||||
@@ -90,4 +90,42 @@ TEST(keccak, hashing_bmi)
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST(keccak, SHA3)
|
||||
{
|
||||
auto check = [](const char* input, const char* expected_output) {
|
||||
std::vector<uint8_t> data;
|
||||
ASSERT_TRUE(from_hex(input, strlen(input), data));
|
||||
|
||||
hash h;
|
||||
|
||||
keccak_custom([&data](int offset) { return data[offset]; }, data.size(), h.h, HASH_SIZE, true);
|
||||
|
||||
char buf[log::Stream::BUF_SIZE + 1];
|
||||
log::Stream s(buf);
|
||||
s << h;
|
||||
|
||||
ASSERT_EQ(memcmp(buf, expected_output, HASH_SIZE * 2), 0);
|
||||
};
|
||||
|
||||
check("", "a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a");
|
||||
|
||||
check("e9", "f0d04dd1e6cfc29a4460d521796852f25d9ef8d28b44ee91ff5b759d72c1e6d6");
|
||||
check("d477", "94279e8f5ccdf6e17f292b59698ab4e614dfe696a46c46da78305fc6a3146ab7");
|
||||
check("b053fa", "9d0ff086cd0ec06a682c51c094dc73abdc492004292344bd41b82a60498ccfdb");
|
||||
check("e7372105", "3a42b68ab079f28c4ca3c752296f279006c4fe78b1eb79d989777f051e4046ae");
|
||||
|
||||
check("989fc49594afc73405bacee4dbbe7135804f800368de39e2ea3bbec04e59c6c52752927ee3aa233ba0d8aab5410240f4c109d770c8c570777c928fce9a0bec9bc5156c821e204f0f14a9ab547e0319d3e758ae9e28eb2dbc3d9f7acf51bd52f41bf23aeb6d97b5780a35ba08b94965989744edd3b1d6d67ad26c68099af85f98d0f0e4fff9", "b10adeb6a9395a48788931d45a7b4e4f69300a76d8b716c40c614c3113a0f051");
|
||||
check("e5022f4c7dfe2dbd207105e2f27aaedd5a765c27c0bc60de958b49609440501848ccf398cf66dfe8dd7d131e04f1432f32827a057b8904d218e68ba3b0398038d755bd13d5f168cfa8a11ab34c0540873940c2a62eace3552dcd6953c683fdb29983d4e417078f1988c560c9521e6f8c78997c32618fc510db282a985f868f2d973f82351d11", "3293a4b9aeb8a65e1014d3847500ffc8241594e9c4564cbd7ce978bfa50767fe");
|
||||
check("b1f6076509938432145bb15dbe1a7b2e007934be5f753908b50fd24333455970a7429f2ffbd28bd6fe1804c4688311f318fe3fcd9f6744410243e115bcb00d7e039a4fee4c326c2d119c42abd2e8f4155a44472643704cc0bc72403b8a8ab0fd4d68e04a059d6e5ed45033b906326abb4eb4147052779bad6a03b55ca5bd8b140e131bed2dfada", "f82d9602b231d332d902cb6436b15aef89acc591cb8626233ced20c0a6e80d7a");
|
||||
check("56ea14d7fcb0db748ff649aaa5d0afdc2357528a9aad6076d73b2805b53d89e73681abfad26bee6c0f3d20215295f354f538ae80990d2281be6de0f6919aa9eb048c26b524f4d91ca87b54c0c54aa9b54ad02171e8bf31e8d158a9f586e92ffce994ecce9a5185cc80364d50a6f7b94849a914242fcb73f33a86ecc83c3403630d20650ddb8cd9c4", "4beae3515ba35ec8cbd1d94567e22b0d7809c466abfbafe9610349597ba15b45");
|
||||
|
||||
std::string s;
|
||||
s.reserve(2000000);
|
||||
|
||||
for (size_t i = 0; i < 1000000; ++i) {
|
||||
s += "61";
|
||||
}
|
||||
check(s.c_str(), "5c8875ae474a3634ba4fd55ec85bffd661f32aca75c6d699d0cdcb6c115891c1");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "side_chain.h"
|
||||
#include "p2p_server.h"
|
||||
#include "keccak.h"
|
||||
#include "params.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include <fstream>
|
||||
|
||||
@@ -246,12 +247,12 @@ TEST(pool_block, verify)
|
||||
mempool.add(tx);
|
||||
}
|
||||
|
||||
tpl.update(
|
||||
data,
|
||||
mempool,
|
||||
Wallet("44MnN1f3Eto8DZYUWuE5XZNUtE3vcRzt2j6PzqWpPau34e6Cf4fAxt6X2MBmrm6F9YMEiMNjN6W4Shn4pLcfNAja621jwyg"),
|
||||
Wallet("86eQxzSW4AZfvsWRSop755WZUsog6L3x32NRZukeeShnS4mBGVpcqQhS6pCNxj44usPKNwesZ45ooHyjDku6nVZdT3Q9qrz")
|
||||
);
|
||||
Params params;
|
||||
|
||||
params.m_miningWallet = Wallet("44MnN1f3Eto8DZYUWuE5XZNUtE3vcRzt2j6PzqWpPau34e6Cf4fAxt6X2MBmrm6F9YMEiMNjN6W4Shn4pLcfNAja621jwyg");
|
||||
params.m_subaddress = Wallet("86eQxzSW4AZfvsWRSop755WZUsog6L3x32NRZukeeShnS4mBGVpcqQhS6pCNxj44usPKNwesZ45ooHyjDku6nVZdT3Q9qrz");
|
||||
|
||||
tpl.update(data, mempool, ¶ms);
|
||||
|
||||
std::vector<uint8_t> blobs;
|
||||
uint64_t height;
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
|
||||
#include "common.h"
|
||||
#include "util.h"
|
||||
extern "C" {
|
||||
#include "crypto-ops.h"
|
||||
}
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
namespace p2pool {
|
||||
@@ -112,4 +115,129 @@ TEST(util, bsr)
|
||||
}
|
||||
}
|
||||
|
||||
TEST(util, onion)
|
||||
{
|
||||
const std::string tests[] = {
|
||||
"yucmgsbw7nknw7oi3bkuwudvc657g2xcqahhbjyewazusyytapqo4xid.onion",
|
||||
"p2pool2giz2r5cpqicajwoazjcxkfujxswtk3jolfk2ubilhrkqam2id.onion",
|
||||
"p2pseeds5qoenuuseyuqxhzzefzxpbhiq4z4h5hfbry5dxd5y2fwudyd.onion",
|
||||
"testhrjytc63cnmcgff5tlcz2phd4sixeogfkjq6uinihwcs2awm3oad.onion",
|
||||
"testsao5qh4qz4ne3iqytyve6a6ijbzmrok6wbauwxfzplv4g276elyd.onion",
|
||||
"testaohgecnzvl6k25fvhkqaizc3vu6e6dxg62qgbtzqmoflnj5bk6id.onion",
|
||||
"testgamrbpyy5e6kogd5kk4cdzvr6qzd6w3fj5eyxa5ccyaudwuwx3ad.onion",
|
||||
"testdriz2m4xh6czzkjmbsnicqoyqyyiilhkogp3n6if7x5qaairetid.onion",
|
||||
"testc7rluz33af3wlypoiwamwzti6gup3il2kqkf7ly7td5qggpvknyd.onion",
|
||||
"testlxqch2dtemlwjc4bt3y6fj3vvknjksywugceibnhscybw4vlnlyd.onion",
|
||||
"testbbx66qk4cgy342mm32jrod6k6zi4gu6bfvyjxsx3m6mf4khvuyqd.onion",
|
||||
"testpita5yopwhs4utuk5ylfndzkijxv3lh7d6gjifxjg7oriuhn3mqd.onion",
|
||||
"testdtmzbyzi47b677ocnoyi7w6oylcnyqh77pl2yv5q22qla7agz7qd.onion",
|
||||
"testv3qobc33v3gfjnccs24eorkrtdzh5e4jbth5yag32sd5d24xazid.onion",
|
||||
"testgwoazhovosqn2yfqaewkd6snynwm66qb5egcbenh3m54yi3ur4yd.onion",
|
||||
"testu2oufhxgp6qqehf2ytpxqvmr3qm6dit3k7p3ixhnxjbxwqmfooyd.onion",
|
||||
"testvi6s6dp5reui35lv6lnu3tzxmu4h3dofejjmmttr6ax3eshvefid.onion",
|
||||
"testsap5p4lorjlvo4ovs6yxmn4lb3lgehsjyolqfcm7l53rqeswvnid.onion",
|
||||
"testexfa567ampq3dkw5smfmofci6qvicl3niaoe6pneekcheqdsbfad.onion",
|
||||
"testhnodrpe2qukswkp5554csphtq325pnnpm7uqs4ats5es7gcujhqd.onion",
|
||||
"testneyu3idcjyvgmdylszcebkw5xsl5bnxyfwdu27fcbb2cm7pcs3id.onion",
|
||||
"test5y4it65r5lnm3w4en4lj3bmy35nypmbgshkawt2h2ep3f75yuwyd.onion",
|
||||
"testknxevfffltpt2iq5xioye3z52eoh4aefy3aegfmhogqf7w6xtnqd.onion",
|
||||
"testshitk3xpt5aex3doyepmbvpsbzptjr6ujso6gahz4arryp7s6vyd.onion",
|
||||
"testfin66dkzp7ozolfu7exjxi3cuck35xunt4a56xfanivs4xqsfbqd.onion",
|
||||
"testec5noqmo2javrlye5higddskhvsialohrwwi2naoqkxrrwhucaid.onion",
|
||||
"testbo2fncb7mblktg23a77clp4pdqfdje7g6axohcegle46bk64hnad.onion",
|
||||
"testd7rzyebdtzpx3fjalkqmeuppbmqs4pbx5pxusyq57m73fyjwgxyd.onion",
|
||||
"testmw3wweekyz7ui7uodlgq3zbv23hehkusrb257yerlpsizhylswyd.onion",
|
||||
"testspzmswow3rc3x6ymbbsfuovcia3umhzribfcpnry7xw66lyjysad.onion",
|
||||
"test635ior3cpu4hd4e4ogd3kzy2pugyv3gkfp3q5u4x2riojbhrvtid.onion",
|
||||
"testn3vi7q5c5j5dqiq3hd3wtkazpxhfaxg2s6kxe6q75hvjnu62iiqd.onion",
|
||||
"testjmo662avqobpfukplqt4bg5jd2dqu6rdr53a6jyju6jf72iavbyd.onion",
|
||||
"testertyaowcvevhjdjwqr3jjvqkzzc2vrmp5hvd3iecukgjbla5xnqd.onion",
|
||||
"testivnwlanaiqoxbcsmlsgpswpx72c5zifljfwta444mtkfk476pmad.onion",
|
||||
"test7u4feuytc3gulkk2mdrmobkqjs6kc5tqxc32qv2v565ybm3kvsyd.onion",
|
||||
"testmcndo5ahfvfnlxefpc3325drm4xfgtgx42hj7p7we7ppyursrbyd.onion",
|
||||
"testtcr5xoqnirota5v5aonhn6gpzulewfbzb7kduld73jx353drjpyd.onion",
|
||||
"testc4biea6pwrya56s2vtus33c3bhrx6pnt3gfwwwoclhkuujvcwhyd.onion",
|
||||
"testbjeyc5bizi7ys7cjgklkpeq3bhadaukk6sx3r6pycfxx35ksipyd.onion",
|
||||
"testvvumkf5b7k3vaagl54yujefrwsr7iuldkepzewwdiwyogkzzwyyd.onion",
|
||||
"testiysaar7h25477y7ee7xhz4foyrjkmtoxbh3kiiazvuehlp7ubiid.onion",
|
||||
"test7zh6zfacxeyrt3qkbelnfpf4sepmcypvl33vkbbeylbk3ddf4qad.onion",
|
||||
"testebbxturu56qaxvlr7dqbrdjigga7mlmjanq4suc7j5h77h5iszyd.onion",
|
||||
"testob7j77x3qmy6dd6ja6wvofhbedzloxae6rrxrf7hv5fpi2aotayd.onion",
|
||||
"testgy24eidqv7wgaqtsucvqnagcyohpmzdmox2cpztd5eukmm6ubkid.onion",
|
||||
"testtdslb2etamcxo7pklesyqxnidy6m5b5qu3yzcfhafajrnm5rotyd.onion",
|
||||
"testha6wehnus7v4qb5cxbuf232fomz7ge6idrrenjewvmcl2fneffid.onion",
|
||||
"testmp7u2cxnnjqsjcfz3ydd6gpiqbym5r5rxykqhz3h6ks6nsnthuad.onion",
|
||||
"tests3xay2zjfkzzpfzl7s3kpnjftfwxmo7e3v5p657pfxbuqxt5e3id.onion",
|
||||
"test6zfam4nauxtjkckvkd6fp55bjuikaj5wevftsfhdromu7wuj2pyd.onion",
|
||||
"testssyxuohidxfvtma4wxpiot5qqkmukqcrjw7t2ngfltidzxo6eyid.onion",
|
||||
"testmcfwamtj4adtz46izavwrddkp7fbu2swtapuyt5eyfupnztsd6qd.onion",
|
||||
"testcycabwxf7em7hu2css5aax7up3opds6twra7hmpjnxi6fdmgs3yd.onion",
|
||||
"testaev2vumiarnfrr4x4japjc2xtvvlp65gt4vwwqf3q4zolvprs5id.onion",
|
||||
"testkynjqkj65t6wvuwajm55xzninrap4piqek5ao6jiwewvqwezalqd.onion",
|
||||
"testnfxt6eemmiwhlme7ys7rj647jv46razwdf6whiwyjoruw4xceyad.onion",
|
||||
"testrbutgvilidnf55thbo4pye4jn322ugmepc37celxvazal5uugoid.onion",
|
||||
"test7xcn36xbr6raxldgh3kf2xk36gyor3hx3gzy2guhxzntxlvf3iid.onion",
|
||||
"testsdjiq77anfffxus3utsmykucoqexpeojaklbmzhab3vow3ozfdqd.onion",
|
||||
"testggm7oruqsw3sr2fd4nq4b3nh2fdd7rgw76p6gpz6pu6nsffv6byd.onion",
|
||||
"testk5b5gjpsc5jkvqnd24aujh25ksvorjrcw457eremkynzoaxjrhad.onion",
|
||||
"testc6mexahgqsbqkxoso5t77nitwwumqn5ucdzbsntgkvuwpxzv4mqd.onion",
|
||||
"testcbsvi6v7h2avabs74osdnifiszdlygi4sljxohvuugf24hadjvid.onion",
|
||||
"testfbhecs2llswxsgjuuqvq5boo6se3gni7ygjtbnagt4x5qt7sppid.onion",
|
||||
"test7gjc7xb7ynoa5nzqrceqvo3fsotmtw2k5tj7ie2okvkmxuejobad.onion",
|
||||
"testmskkbp3ikvsfvtfekm5hmjc4ou4hqlerx45qchm5yrwd56m6stad.onion",
|
||||
"testv52txxzvdmi5kuuhwbzyrbzrhqnxr6ltvycgavt3wb5uyxcbrqqd.onion",
|
||||
"test7nsiyeg2hsmuvi7uhqbaoygf4lfa6ysihaqicrkzwulp7shsh3ad.onion",
|
||||
"testu2p6psiaw7qnhvi3v7tjgawbf6zpmjajmbfdofimv3wpniaqleyd.onion",
|
||||
"testkqcq6qg3yibtnwxgm2qceti2k74suvgqet2wdqmcoluzu4b3fkqd.onion",
|
||||
"test2i4762wcfcl5wgjf7ofnkorsq6l6buuet7ldddezeqgd372sysyd.onion",
|
||||
"testftqmujq6h5rhey73mmqlhpuh5zs5cipqqxwbzihiqgw6gnfpp6id.onion",
|
||||
"test5hua7kwnsnv3uiwathv3khq4nmhbwsayl6uzj2gs6pmimork2iid.onion",
|
||||
"test7tdanour43exhioddlji7jgsgiibi5hg3jhu47wxaszbvtwat2ad.onion",
|
||||
"testd26wxq4q44wmvplnngh5onomax5f3brjrocazz56mj7qylogy6id.onion",
|
||||
"testyuwguibjovaw2mmzvpxqh2r3dhjddeaez6242pmro37gxivknrqd.onion",
|
||||
"testi5lokj4wrawmihfqmic74wac6a4asy6o7erzxjosuyedzsscdeid.onion",
|
||||
"testbuwdono434jdgv76u7jjczd7sweu36ga55vo66tdcsjscov5dfad.onion",
|
||||
"testor6cqxswpeomtnsqhc73knjftqchalz5whatqddaxguwm5s2fhad.onion",
|
||||
"test2tz52bpiib5zbxt2bfg77ika54cfvz3p6ovkqbqiyu6d5ecaetyd.onion",
|
||||
"testc5wvnm55zfk3ihkebuf4kxkhaandcqwizkehb6fpfgs2f4tfxvqd.onion",
|
||||
"testpxuiq5dgkvhwynsyzrtdsxtthrt4lhjtb2egs34ypwzcvsrgbhqd.onion",
|
||||
"testgpc7h7f6tmo6lrz6to5svh6gw2mxgelbo5du6kakuuco5oyu2pad.onion",
|
||||
"test7vlusiy2t5e2dpwf4ttlajpefxqpbj274l25iml3ltjf6dwgzhyd.onion",
|
||||
"testcaq5d3ehqqwdkdcux4db57lbbcfcl5wfebg7jxwl5gpv7aavxfyd.onion",
|
||||
"testaqtkrclsz3ehn4i3i4maqoxniivmdl5gnefelzva6ts2yrx5vyyd.onion",
|
||||
"testgkfz4a2ir44r6pacf3fvyrldjk6n4u3odbyveseo2jatze6euxyd.onion",
|
||||
"testsrinaqfbsh22gjlkabcwn4rbypsb3nmtutqnjr37tvqmhdc2ysqd.onion",
|
||||
"testyo5bximqrzkkeppmr5mopciote6wx6wcnus6wnuanl5c2zztuwad.onion",
|
||||
"testmgjjfxt5frdpvfqchrgmoohxnba63q6wt3spva7kvgiae36jjuqd.onion",
|
||||
"testn2qrokp2v4vtjjdrrlzosa6iz2v322ntsrguj6t4d2hguouhpzad.onion",
|
||||
"test3njq3v3rp4sy5uhyulvl3eus34hev4cybkernrgvlmqonadxalid.onion",
|
||||
"testylx25ok4zwlm5myjgvlbudigeqxyvxy2hhk7kvwub4uqsfaawbyd.onion",
|
||||
"test4zcne6f7w6xstprxyhwp2gbl4exvvltewrnjhtsss4bu74faokqd.onion",
|
||||
"testddleenrfxcbpsqrugj3ugnpjgd2xeneznzopzcndqebmavo65sqd.onion",
|
||||
"testoq3eqrragrjpwiegwokzukqd2p73ffy6dcgnc6nerxtodsfotkad.onion",
|
||||
"testyivcoaauwqekzux66r2ao4j2hizka4kdeyb5lyvmdzsrw3uybeid.onion",
|
||||
"testz5tgehn7i3myjdobvjlnbax7yd2e3ra27gyiprzicvksm5r6i5yd.onion",
|
||||
"testc4vbagkuxee3pkgvlb7w2pqgdq3rlaru2ipgpox5xzssejhfizad.onion",
|
||||
"testq4ryujfitfcxabcjde6m7uqdztdep6mzd32e4wbtqna4jyponaad.onion",
|
||||
"test2muitbvopcoducxb6d5bqry5dmxdatupvh34anzjdeav6xiigead.onion",
|
||||
"test76ais6k5t4bmap4uyl2eleh6o4g423cxuvifcoke4gtgd6pjtpqd.onion",
|
||||
};
|
||||
|
||||
for (const std::string& address : tests) {
|
||||
const hash h = from_onion_v3(address);
|
||||
ASSERT_TRUE(!h.empty());
|
||||
|
||||
const std::string s = to_onion_v3(h);
|
||||
ASSERT_EQ(s, address);
|
||||
}
|
||||
|
||||
ASSERT_TRUE(from_onion_v3("tooshort.onion").empty());
|
||||
ASSERT_TRUE(from_onion_v3("inval1dcharacter777777777777777777777777777777777777777d.onion").empty());
|
||||
ASSERT_TRUE(from_onion_v3("wrongchecksum777777777777777777777777777777777777777777d.onion").empty());
|
||||
ASSERT_TRUE(from_onion_v3("yucmgsbw7nknw7oi3bkuwudvc657g2xcqahhbjyewazusyytapqo4xid.xnion").empty());
|
||||
|
||||
// Invalid pubkey
|
||||
ASSERT_TRUE(from_onion_v3("civ5tgldg3yx73ytse6hvvk3nm6q3zctbqvytpszihm35b33ze73kxad.onion").empty());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user