Changeset View
Changeset View
Standalone View
Standalone View
src/avalanche/test/delegation_tests.cpp
Show All 25 Lines | static void CheckDelegation(const Delegation &dg, const Proof &p, | ||||
BOOST_CHECK(dg.verify(state, pubkey)); | BOOST_CHECK(dg.verify(state, pubkey)); | ||||
BOOST_CHECK(state.GetResult() == DelegationResult::NONE); | BOOST_CHECK(state.GetResult() == DelegationResult::NONE); | ||||
BOOST_CHECK(pubkey == expected_pubkey); | BOOST_CHECK(pubkey == expected_pubkey); | ||||
BOOST_CHECK(dg.getProofId() == p.getId()); | BOOST_CHECK(dg.getProofId() == p.getId()); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(verify_random) { | BOOST_AUTO_TEST_CASE(verify_random) { | ||||
CKey key; | auto key = CKey::MakeCompressedKey(); | ||||
key.MakeNewKey(true); | |||||
const Proof p = buildRandomProof(123456, key.GetPubKey()); | const Proof p = buildRandomProof(123456, key.GetPubKey()); | ||||
DelegationBuilder dgb(p); | DelegationBuilder dgb(p); | ||||
{ | { | ||||
Delegation dg = dgb.build(); | Delegation dg = dgb.build(); | ||||
BOOST_CHECK_EQUAL(dg.getId(), p.getId()); | BOOST_CHECK_EQUAL(dg.getId(), p.getId()); | ||||
CheckDelegation(dg, p, p.getMaster()); | CheckDelegation(dg, p, p.getMaster()); | ||||
} | } | ||||
CKey l1key; | auto l1key = CKey::MakeCompressedKey(); | ||||
l1key.MakeNewKey(true); | |||||
BOOST_CHECK(!dgb.addLevel(l1key, key.GetPubKey())); | BOOST_CHECK(!dgb.addLevel(l1key, key.GetPubKey())); | ||||
dgb.addLevel(key, l1key.GetPubKey()); | dgb.addLevel(key, l1key.GetPubKey()); | ||||
CheckDelegation(dgb.build(), p, l1key.GetPubKey()); | CheckDelegation(dgb.build(), p, l1key.GetPubKey()); | ||||
CKey l2key; | auto l2key = CKey::MakeCompressedKey(); | ||||
l2key.MakeNewKey(true); | |||||
BOOST_CHECK(!dgb.addLevel(key, l2key.GetPubKey())); | BOOST_CHECK(!dgb.addLevel(key, l2key.GetPubKey())); | ||||
BOOST_CHECK(!dgb.addLevel(l2key, l2key.GetPubKey())); | BOOST_CHECK(!dgb.addLevel(l2key, l2key.GetPubKey())); | ||||
dgb.addLevel(l1key, l2key.GetPubKey()); | dgb.addLevel(l1key, l2key.GetPubKey()); | ||||
CheckDelegation(dgb.build(), p, l2key.GetPubKey()); | CheckDelegation(dgb.build(), p, l2key.GetPubKey()); | ||||
} | } | ||||
// Proof master priv: | // Proof master priv: | ||||
▲ Show 20 Lines • Show All 139 Lines • Show Last 20 Lines |