// 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 #include #include #include BOOST_FIXTURE_TEST_SUITE(TestTransaction, MWEBTestingSetup) BOOST_AUTO_TEST_CASE(TxTransaction) { const CAmount pegInAmount = 123; const CAmount fee = 5; mw::Transaction::CPtr tx = test::TxBuilder() .AddInput(20).AddInput(30) .AddOutput(45).AddOutput(pegInAmount) .AddPlainKernel(fee).AddPeginKernel(pegInAmount) .Build().GetTransaction(); KernelSumValidator::ValidateForTx(*tx); // // Serialization // { std::vector serialized = tx->Serialized(); Deserializer deserializer(serialized); BOOST_REQUIRE(deserializer.Read() == tx->GetKernelOffset()); BOOST_REQUIRE(deserializer.Read() == tx->GetStealthOffset()); BOOST_REQUIRE(deserializer.Read() == tx->GetBody()); Deserializer deserializer2(serialized); BOOST_REQUIRE(*tx == deserializer2.Read()); } // // Getters // { const auto total_fee = tx->GetTotalFee(); BOOST_REQUIRE(total_fee.has_value()); BOOST_REQUIRE(*total_fee == fee); } } BOOST_AUTO_TEST_SUITE_END()