Support presapling notarisations

This commit is contained in:
jl777
2019-07-08 23:46:19 -11:00
parent b46ad2ad3c
commit 710ef08310
4 changed files with 19 additions and 13 deletions

View File

@@ -121,9 +121,9 @@ int64_t NSPV_addinputs(struct NSPV_utxoresp *used,CMutableTransaction &mtx,int64
return(0);
}
bool NSPV_SignTx(CMutableTransaction &mtx,int32_t vini,int64_t utxovalue,const CScript scriptPubKey)
bool NSPV_SignTx(CMutableTransaction &mtx,int32_t vini,int64_t utxovalue,const CScript scriptPubKey,uint32_t nTime)
{
CTransaction txNewConst(mtx); SignatureData sigdata; CBasicKeyStore keystore;
CTransaction txNewConst(mtx); SignatureData sigdata; CBasicKeyStore keystore; int64_t branchid = NSPV_BRANCHID;
keystore.AddKey(NSPV_key);
if ( 0 )
{
@@ -132,7 +132,12 @@ bool NSPV_SignTx(CMutableTransaction &mtx,int32_t vini,int64_t utxovalue,const C
fprintf(stderr,"%02x",((uint8_t *)&scriptPubKey)[i]);
fprintf(stderr," scriptPubKey\n");
}
if ( ProduceSignature(TransactionSignatureCreator(&keystore,&txNewConst,vini,utxovalue,SIGHASH_ALL),scriptPubKey,sigdata,NSPV_BRANCHID) != 0 )
if ( nTime < KOMODO_SAPLING_ACTIVATION )
{
fprintf(stderr,"use legacy sig validation\n");
branchid = 0;
}
if ( ProduceSignature(TransactionSignatureCreator(&keystore,&txNewConst,vini,utxovalue,SIGHASH_ALL),scriptPubKey,sigdata,branchid) != 0 )
{
UpdateTransaction(mtx,vini,sigdata);
// fprintf(stderr,"SIG_TXHASH %s vini.%d %.8f\n",SIG_TXHASH.GetHex().c_str(),vini,(double)utxovalue/COIN);
@@ -179,7 +184,7 @@ std::string NSPV_signtx(UniValue &retcodes,CMutableTransaction &mtx,uint64_t txf
fprintf(stderr,"vintx vout mismatch %d != %d\n",utxovout,used[i].vout);
return("");
}
else if ( NSPV_SignTx(mtx,i,vintx.vout[utxovout].nValue,vintx.vout[utxovout].scriptPubKey) == 0 )
else if ( NSPV_SignTx(mtx,i,vintx.vout[utxovout].nValue,vintx.vout[utxovout].scriptPubKey,0) == 0 )
{
fprintf(stderr,"signing error for vini.%d\n",i);
return("");
@@ -259,7 +264,7 @@ UniValue NSPV_spend(char *srcaddr,char *destaddr,int64_t satoshis) // what its a
result.push_back(Pair("error","wif expired"));
return(result);
}
hex = NSPV_signtx(retcodes,mtx,txfee,opret,used);
hex = NSPV_signtx(retcodes,mtx,txfee,opret,used,0);
if ( hex.size() > 0 )
{
if ( DecodeHexTx(tx,hex) != 0 )