MCPcopy Create free account
hub / github.com/ElementsProject/elements / CreateCreditAndSpend

Function CreateCreditAndSpend

src/test/transaction_tests.cpp:415–458  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

413}
414
415static void CreateCreditAndSpend(const FillableSigningProvider& keystore, const CScript& outscript, CTransactionRef& output, CMutableTransaction& input, bool success = true)
416{
417 CMutableTransaction outputm;
418 outputm.nVersion = 1;
419 outputm.vin.resize(1);
420 outputm.vin[0].prevout.SetNull();
421 outputm.vin[0].scriptSig = CScript();
422 outputm.vout.resize(1);
423 outputm.vout[0].nValue = 1;
424 outputm.vout[0].scriptPubKey = outscript;
425 CDataStream ssout(SER_NETWORK, PROTOCOL_VERSION);
426 ssout << outputm;
427 ssout >> output;
428 assert(output->vin.size() == 1);
429 assert(output->vin[0] == outputm.vin[0]);
430 assert(output->vout.size() == 1);
431 assert(output->vout[0] == outputm.vout[0]);
432
433 CMutableTransaction inputm;
434 inputm.nVersion = 1;
435 inputm.vin.resize(1);
436 inputm.vin[0].prevout.hash = output->GetHash();
437 inputm.vin[0].prevout.n = 0;
438 inputm.vout.resize(1);
439 inputm.vout[0].nValue = 1;
440 inputm.vout[0].scriptPubKey = CScript();
441 inputm.witness.vtxinwit.resize(1);
442 bool ret = SignSignature(keystore, *output, inputm, 0, SIGHASH_ALL);
443 assert(ret == success);
444 CDataStream ssin(SER_NETWORK, PROTOCOL_VERSION);
445 ssin << inputm;
446 ssin >> input;
447 assert(input.vin.size() == 1);
448 assert(input.vin[0] == inputm.vin[0]);
449 assert(input.vout.size() == 1);
450 assert(input.vout[0] == inputm.vout[0]);
451 if (!inputm.witness.vtxinwit.empty() && !inputm.witness.vtxinwit[0].scriptWitness.IsNull()) {
452 assert(!input.witness.vtxinwit.empty());
453 assert(input.witness.vtxinwit[0].scriptWitness.stack ==
454 inputm.witness.vtxinwit[0].scriptWitness.stack);
455 } else {
456 assert(input.witness.vtxinwit.empty());
457 }
458}
459
460static void CheckWithFlag(const CTransactionRef& output, const CMutableTransaction& input, uint32_t flags, bool success)
461{

Callers 1

BOOST_AUTO_TEST_CASEFunction · 0.85

Calls 8

SignSignatureFunction · 0.85
CScriptClass · 0.50
resizeMethod · 0.45
SetNullMethod · 0.45
sizeMethod · 0.45
GetHashMethod · 0.45
emptyMethod · 0.45
IsNullMethod · 0.45

Tested by

no test coverage detected