This commit is contained in:
jl777
2018-07-23 05:41:43 -11:00
parent a81698329d
commit 1f5f9d297b
3 changed files with 20 additions and 17 deletions

View File

@@ -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;

View File

@@ -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);
} }

View File

@@ -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;
} }