diff --git a/src/test-hush/test_eval_notarization.cpp b/src/test-hush/test_eval_notarization.cpp deleted file mode 100644 index 5643eddcb..000000000 --- a/src/test-hush/test_eval_notarization.cpp +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright (c) 2016-2024 The Hush developers -// Distributed under the GPLv3 software license, see the accompanying -// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html -#include -#include "cc/betprotocol.h" -#include "cc/eval.h" -#include "base58.h" -#include "core_io.h" -#include "key.h" -#include "main.h" -#include "script/cc.h" -#include "primitives/transaction.h" -#include "script/interpreter.h" -#include "script/serverchecker.h" -#include "testutils.h" - -extern int32_t hush_notaries(uint8_t pubkeys[64][33],int32_t height,uint32_t timestamp); - -namespace TestEvalNotarization { - - class EvalMock : public Eval - { - public: - uint32_t nNotaries; - uint8_t notaries[64][33]; - std::map txs; - std::map blocks; - - int32_t GetNotaries(uint8_t pubkeys[64][33], int32_t height, uint32_t timestamp) const - { - memcpy(pubkeys, notaries, sizeof(notaries)); - return nNotaries; - } - - bool GetTxUnconfirmed(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock) const - { - auto r = txs.find(hash); - if (r != txs.end()) { - txOut = r->second; - if (blocks.count(hash) > 0) - hashBlock = hash; - return true; - } - return false; - } - - bool GetBlock(uint256 hash, CBlockIndex& blockIdx) const - { - auto r = blocks.find(hash); - if (r == blocks.end()) return false; - blockIdx = r->second; - return true; - } - }; - - //static auto noop = [&](CMutableTransaction &mtx){}; - static auto noop = [](CMutableTransaction &mtx){}; - - - template - void SetupEval(EvalMock &eval, CMutableTransaction ¬ary, Modifier modify) - { - eval.nNotaries = hush_notaries(eval.notaries, 780060, 1522946781); - - // make fake notary inputs - notary.vin.resize(11); - for (int i=0; i> proof); - EXPECT_EQ(data.MoM, proof.branch.Exec(proofTxHash)); -} - - -TEST(TestEvalNotarization, testInvalidNotaryPubkey) -{ - EvalMock eval; - CMutableTransaction notary(notaryTx); - SetupEval(eval, notary, noop); - - memset(eval.notaries[10], 0, 33); - - NotarizationData data; - ASSERT_FALSE(eval.GetNotarizationData(notary.GetHash(), data)); -} -*/ - - -TEST(TestEvalNotarization, testInvalidNotarizationBadOpReturn) -{ - EvalMock eval; - CMutableTransaction notary(notaryTx); - - notary.vout[1].scriptPubKey = CScript() << OP_RETURN << 0; - SetupEval(eval, notary, noop); - - NotarizationData data(0); - ASSERT_FALSE(eval.GetNotarizationData(notary.GetHash(), data)); -} - - -TEST(TestEvalNotarization, testInvalidNotarizationTxNotEnoughSigs) -{ - EvalMock eval; - CMutableTransaction notary(notaryTx); - - SetupEval(eval, notary, [](CMutableTransaction &tx) { - tx.vin.resize(10); - }); - - NotarizationData data(0); - ASSERT_FALSE(eval.GetNotarizationData(notary.GetHash(), data)); -} - - -TEST(TestEvalNotarization, testInvalidNotarizationTxDoesntExist) -{ - EvalMock eval; - CMutableTransaction notary(notaryTx); - - SetupEval(eval, notary, noop); - - NotarizationData data(0); - ASSERT_FALSE(eval.GetNotarizationData(uint256(), data)); -} - - -TEST(TestEvalNotarization, testInvalidNotarizationDupeNotary) -{ - EvalMock eval; - CMutableTransaction notary(notaryTx); - - SetupEval(eval, notary, [](CMutableTransaction &tx) { - tx.vin[1] = tx.vin[3]; - }); - - NotarizationData data(0); - ASSERT_FALSE(eval.GetNotarizationData(notary.GetHash(), data)); -} - - -TEST(TestEvalNotarization, testInvalidNotarizationInputNotCheckSig) -{ - EvalMock eval; - CMutableTransaction notary(notaryTx); - - SetupEval(eval, notary, [&](CMutableTransaction &tx) { - int i = 1; - CMutableTransaction txIn; - txIn.vout.resize(1); - txIn.vout[0].scriptPubKey << VCH(eval.notaries[i*2], 33) << OP_RETURN; - notary.vin[i].prevout = COutPoint(txIn.GetHash(), 0); - eval.txs[txIn.GetHash()] = CTransaction(txIn); - }); - - NotarizationData data(0); - ASSERT_FALSE(eval.GetNotarizationData(notary.GetHash(), data)); -} - -} /* namespace TestEvalNotarization */ diff --git a/src/test-hush/test_parse_notarization.cpp b/src/test-hush/test_parse_notarization.cpp deleted file mode 100644 index fef18af66..000000000 --- a/src/test-hush/test_parse_notarization.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) 2016-2024 The Hush developers -// Distributed under the GPLv3 software license, see the accompanying -// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html -#include -#include "cc/eval.h" -#include "core_io.h" -#include "key.h" -#include "testutils.h" - -namespace TestParseNotarization { - -class TestParseNotarization : public ::testing::Test, public Eval {}; - - -TEST(TestParseNotarization, test_ee2fa) -{ - // ee2fa47820a31a979f9f21cb3fedbc484bf9a8957cb6c9acd0af28ced29bdfe1 - std::vector opret = ParseHex("c349ff90f3bce62c1b7b49d1da0423b1a3d9b733130cce825b95b9e047c729066e020d00743a06fdb95ad5775d032b30bbb3680dac2091a0f800cf54c79fd3461ce9b31d4b4d4400"); - NotarizationData nd; - ASSERT_TRUE(E_UNMARSHAL(opret, ss >> nd)); -} - -TEST(TestParseNotarization, test__) -{ - // 576e910a1f704207bcbcf724124ff9adc5237f45cb6919589cd0aa152caec424 - std::vector opret = ParseHex("b3ed7fbbfbc027caeeeec81e65489ec5d9cd47cda675a5cbb75b4a845e67cf0ef6330300b5a6bd8385feb833f3be961c9d8a46fcecd36dcdfa42ad81a20a892433722f0b4b4d44004125a06024eae24c11f36ea110acd707b041d5355b6e1b42de5e2614357999c6aa02000d26ad0300000000404b4c000000000005130300500d000061f22ba7d19fe29ac3baebd839af8b7127d1f90755534400"); - NotarizationData nd; - // We can't parse this one - ASSERT_FALSE(E_UNMARSHAL(opret, ss >> nd)); -} - -TEST(TestParseNotarization, test__a) -{ - // be55101e6c5a93fb3611a44bd66217ad8714d204275ea4e691cfff9d65dff85c TXSCL - std::vector opret = ParseHex("fb9ea2818eec8b07f8811bab49d64379db074db478997f8114666f239bd79803cc460000d0fac4e715b7e2b917a5d79f85ece0c423d27bd3648fd39ac1dc7db8e1bd4b16545853434c00a69eab9f23d7fb63c4624973e7a9079d6ada2f327040936356d7af5e849f6d670a0003001caf7b7b9e1c9bc59d0c7a619c9683ab1dd0794b6f3ea184a19f8fda031150e700000000"); - NotarizationData nd(1); - bool res = E_UNMARSHAL(opret, ss >> nd); - ASSERT_TRUE(res); -} - -TEST(TestParseNotarization, test__b) -{ - // 03085dafed656aaebfda25bf43ffe9d1fb72565bb1fc8b2a12a631659f28f877 TXSCL - std::vector opret = ParseHex("48c71a10aa060eab1a43f52acefac3b81fb2a2ce310186b06141884c0501d403c246000052e6d49afd82d9ab3d97c996dd9b6a78a554ffa1625e8dadf0494bd1f8442e3e545853434c007cc5c07e3b67520fd14e23cd5b49f2aa022f411500fd3326ff91e6dc0544a1c90c0003008b69117bb1376ac8df960f785d8c208c599d3a36248c98728256bb6d4737e59600000000"); - NotarizationData nd(1); - bool res = E_UNMARSHAL(opret, ss >> nd); - ASSERT_TRUE(res); -} - - - -// for l in `g 'parse notarization' ~/.hush/HUSH3/debug.log | pyline 'l.split()[8]'`; do hoek decodeTx '{"hex":"'`src/hush-cli getrawtransaction "$l"`'"}' | jq '.outputs[1].script.op_return' | pyline 'import base64; print base64.b64decode(l).encode("hex")'; done - -}