Test
This commit is contained in:
@@ -35,7 +35,7 @@ bool RunCCEval(const CC *cond, const CTransaction &tx, unsigned int nIn)
|
|||||||
EvalRef eval;
|
EvalRef eval;
|
||||||
|
|
||||||
bool out = eval->Dispatch(cond, tx, nIn);
|
bool out = eval->Dispatch(cond, tx, nIn);
|
||||||
fprintf(stderr,"out %d vs %d isValid\n",(int32_t)out,(int32_t)eval->state.IsValid());
|
//fprintf(stderr,"out %d vs %d isValid\n",(int32_t)out,(int32_t)eval->state.IsValid());
|
||||||
assert(eval->state.IsValid() == out);
|
assert(eval->state.IsValid() == out);
|
||||||
|
|
||||||
if (eval->state.IsValid()) return true;
|
if (eval->state.IsValid()) return true;
|
||||||
|
|||||||
@@ -176,14 +176,17 @@ std::string FaucetGet(uint64_t txfee)
|
|||||||
txfee = 10000;
|
txfee = 10000;
|
||||||
faucetpk = GetUnspendable(EVAL_FAUCET,0);
|
faucetpk = GetUnspendable(EVAL_FAUCET,0);
|
||||||
mypk = pubkey2pk(Mypubkey());
|
mypk = pubkey2pk(Mypubkey());
|
||||||
if ( (inputs= AddFaucetInputs(mtx,faucetpk,nValue+txfee,60)) > 0 )
|
if ( AddNormalinputs(mtx,mypk,txfee,1) > 0 )
|
||||||
{
|
{
|
||||||
mtx.vout.push_back(CTxOut(nValue,CScript() << ParseHex(HexStr(mypk)) << OP_CHECKSIG));
|
if ( (inputs= AddFaucetInputs(mtx,faucetpk,nValue,60)) > 0 )
|
||||||
if ( inputs > nValue )
|
{
|
||||||
CCchange = (inputs - nValue - txfee);
|
if ( inputs > nValue )
|
||||||
if ( CCchange != 0 )
|
CCchange = (inputs - nValue);
|
||||||
mtx.vout.push_back(MakeFaucetVout(CCchange,faucetpk));
|
if ( CCchange != 0 )
|
||||||
return(FinalizeCCTx(EVAL_FAUCET,mtx,mypk,txfee,opret));
|
mtx.vout.push_back(MakeFaucetVout(CCchange,faucetpk));
|
||||||
|
mtx.vout.push_back(CTxOut(nValue,CScript() << ParseHex(HexStr(mypk)) << OP_CHECKSIG));
|
||||||
|
return(FinalizeCCTx(EVAL_FAUCET,mtx,mypk,txfee,opret));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1313,14 +1313,14 @@ int TransactionSignatureChecker::CheckCryptoCondition(
|
|||||||
} catch (logic_error ex) {
|
} catch (logic_error ex) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int32_t z; uint8_t *ptr;
|
//int32_t z; uint8_t *ptr;
|
||||||
ptr = (uint8_t *)scriptCode.data();
|
//ptr = (uint8_t *)scriptCode.data();
|
||||||
for (z=0; z<scriptCode.size(); z++)
|
//for (z=0; z<scriptCode.size(); z++)
|
||||||
fprintf(stderr,"%02x",ptr[z]);
|
// fprintf(stderr,"%02x",ptr[z]);
|
||||||
fprintf(stderr," <- CScript\n");
|
//fprintf(stderr," <- CScript\n");
|
||||||
for (z=0; z<32; z++)
|
//for (z=0; z<32; z++)
|
||||||
fprintf(stderr,"%02x",((uint8_t *)&sighash)[z]);
|
// fprintf(stderr,"%02x",((uint8_t *)&sighash)[z]);
|
||||||
fprintf(stderr," sighash nIn.%d nHashType.%d %.8f id.%d\n",(int32_t)nIn,(int32_t)nHashType,(double)amount/COIN,(int32_t)consensusBranchId);
|
//fprintf(stderr," sighash nIn.%d nHashType.%d %.8f id.%d\n",(int32_t)nIn,(int32_t)nHashType,(double)amount/COIN,(int32_t)consensusBranchId);
|
||||||
|
|
||||||
VerifyEval eval = [] (CC *cond, void *checker) {
|
VerifyEval eval = [] (CC *cond, void *checker) {
|
||||||
return ((TransactionSignatureChecker*)checker)->CheckEvalCondition(cond);
|
return ((TransactionSignatureChecker*)checker)->CheckEvalCondition(cond);
|
||||||
@@ -1328,7 +1328,7 @@ int TransactionSignatureChecker::CheckCryptoCondition(
|
|||||||
|
|
||||||
int out = cc_verify(cond, (const unsigned char*)&sighash, 32, 0,
|
int out = cc_verify(cond, (const unsigned char*)&sighash, 32, 0,
|
||||||
condBin.data(), condBin.size(), eval, (void*)this);
|
condBin.data(), condBin.size(), eval, (void*)this);
|
||||||
fprintf(stderr,"out.%d from cc_verify\n",(int32_t)out);
|
//fprintf(stderr,"out.%d from cc_verify\n",(int32_t)out);
|
||||||
cc_free(cond);
|
cc_free(cond);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user