Changeset View
Changeset View
Standalone View
Standalone View
src/avalanche/test/util.cpp
Show All 9 Lines | |||||
#include <random.h> | #include <random.h> | ||||
#include <script/standard.h> | #include <script/standard.h> | ||||
#include <validation.h> | #include <validation.h> | ||||
#include <limits> | #include <limits> | ||||
namespace avalanche { | namespace avalanche { | ||||
Proof buildRandomProof(uint32_t score) { | Proof buildRandomProof(uint32_t score, const CPubKey &master) { | ||||
CKey key; | CKey key; | ||||
key.MakeNewKey(true); | key.MakeNewKey(true); | ||||
const COutPoint o(TxId(GetRandHash()), 0); | const COutPoint o(TxId(GetRandHash()), 0); | ||||
const Amount v = (int64_t(score) * COIN) / 100; | const Amount v = (int64_t(score) * COIN) / 100; | ||||
const int height = 1234; | const int height = 1234; | ||||
const bool is_coinbase = false; | const bool is_coinbase = false; | ||||
{ | { | ||||
CScript script = GetScriptForDestination(PKHash(key.GetPubKey())); | CScript script = GetScriptForDestination(PKHash(key.GetPubKey())); | ||||
LOCK(cs_main); | LOCK(cs_main); | ||||
CCoinsViewCache &coins = ::ChainstateActive().CoinsTip(); | CCoinsViewCache &coins = ::ChainstateActive().CoinsTip(); | ||||
coins.AddCoin(o, Coin(CTxOut(v, script), height, is_coinbase), false); | coins.AddCoin(o, Coin(CTxOut(v, script), height, is_coinbase), false); | ||||
} | } | ||||
ProofBuilder pb(0, std::numeric_limits<uint32_t>::max(), CPubKey()); | ProofBuilder pb(0, std::numeric_limits<uint32_t>::max(), master); | ||||
pb.addUTXO(o, v, height, is_coinbase, std::move(key)); | pb.addUTXO(o, v, height, is_coinbase, std::move(key)); | ||||
return pb.build(); | return pb.build(); | ||||
} | } | ||||
} // namespace avalanche | } // namespace avalanche |