git / moonbite-core / src/libmw/test/tests/models/tx/Test_Input.cpp · raw

// Copyright (c) 2021 The Litecoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#include <mw/models/tx/Input.h>#include <mw/models/crypto/SecretKey.h>#include <test_framework/TestMWEB.h>BOOST_FIXTURE_TEST_SUITE(TestInput, MWEBTestingSetup)BOOST_AUTO_TEST_CASE(PlainTxInput){    mw::Hash output_id = SecretKey::Random().GetBigInt();    Commitment commit = Commitment::Random();    PublicKey input_pubkey = PublicKey::Random();    PublicKey output_pubkey = PublicKey::Random();    Signature signature(RandomBigInt<Signature::SIZE>());    Input input(1, output_id, commit, input_pubkey, output_pubkey, signature);    //    // Serialization    //    {        std::vector<uint8_t> serialized = input.Serialized();        CDataStream deserializer(serialized, SER_DISK, PROTOCOL_VERSION);        uint8_t features;        deserializer >>  features;        BOOST_REQUIRE(features == 1);        mw::Hash output_id2;        deserializer >> output_id2;        BOOST_REQUIRE(output_id2 == output_id);        Commitment commit2;        deserializer >> commit2;        BOOST_REQUIRE(commit2 == commit);        PublicKey output_pubkey2;        deserializer >> output_pubkey2;        BOOST_REQUIRE(output_pubkey2 == output_pubkey);        PublicKey input_pubkey2;        deserializer >> input_pubkey2;        BOOST_REQUIRE(input_pubkey2 == input_pubkey);        Signature signature2;        deserializer >> signature2;        BOOST_REQUIRE(signature2 == signature);        BOOST_REQUIRE(input == Input::Deserialize(serialized));    }    //    // Getters    //    {        BOOST_REQUIRE(input.GetOutputID() == output_id);        BOOST_REQUIRE(input.GetCommitment() == commit);        BOOST_REQUIRE(*input.GetInputPubKey() == input_pubkey);        BOOST_REQUIRE(input.GetOutputPubKey() == output_pubkey);        BOOST_REQUIRE(input.GetSignature() == signature);    }    // MW: TODO - Input version tests}BOOST_AUTO_TEST_SUITE_END()