Remote get

This commit is contained in:
jl777
2019-07-08 04:58:56 -11:00
parent d6883ab589
commit 496efd0162
2 changed files with 22 additions and 15 deletions

View File

@@ -50,6 +50,8 @@
#define NSPV_BROADCAST 0x0c
#define NSPV_BROADCASTRESP 0x0d
int32_t NSPV_gettransaction(int32_t skipvalidation,int32_t vout,uint256 txid,int32_t height,CTransaction &tx);
int32_t iguana_rwbuf(int32_t rwflag,uint8_t *serialized,uint16_t len,uint8_t *buf)
{
if ( rwflag != 0 )
@@ -419,21 +421,27 @@ int32_t NSPV_txextract(CTransaction &tx,uint8_t *data,int32_t datalen)
int32_t NSPV_notariescount(CTransaction tx,uint8_t elected[64][33])
{
uint8_t script[64]; int32_t i,j,scriptlen,numsigs = 0;
uint8_t *script[64]; int32_t i,j,utxovout,scriptlen,numsigs = 0;
for (i=0; i<tx.vin.size(); i++)
{
if ( (scriptlen= gettxout_scriptPubKey(script,sizeof(script),tx.vin[i].prevout.hash,tx.vin[i].prevout.n)) == 35 )
utxovout = tx.vin[i].prevout.n;
if ( NSPV_gettransaction(1,utxovout,tx.vin[i].prevout.hash,0,tx) != 0 )
return(numsigs);
if ( utxovout < vintx.vout.size() )
{
for (j=0; j<64; j++)
if ( memcmp(&script[1],elected[j],33) == 0 )
{
numsigs++;
break;
}
} else fprintf(stderr,"invalid scriptlen.%d\n",scriptlen);
}
fprintf(stderr,"numvins.%d numsigs.%d\n",(int32_t)tx.vin.size(),numsigs);
return(numsigs);
script = (uint8_t *)&vintx.vout[utxovout].scriptPubKey[0];
if ( (scriptlen= tx.vout[n].scriptPubKey.size()) == 35 )
{
for (j=0; j<64; j++)
if ( memcmp(&script[1],elected[j],33) == 0 )
{
numsigs++;
break;
}
} else fprintf(stderr,"invalid scriptlen.%d\n",scriptlen);
}
fprintf(stderr,"numvins.%d numsigs.%d\n",(int32_t)tx.vin.size(),numsigs);
return(numsigs);
}
uint256 NSPV_opretextract(int32_t *heightp,uint256 *blockhashp,char *symbol,std::vector<uint8_t> opret,uint256 txid)

View File

@@ -227,7 +227,7 @@ int32_t NSPV_gettxproof(struct NSPV_txproof *ptr,int32_t vout,uint256 txid,int32
ptr->txid = txid;
ptr->vout = vout;
ptr->height = height;
if ( (pindex= komodo_chainactive(height)) != 0 && komodo_blockload(block,pindex) == 0 )
if ( height != 0 && (pindex= komodo_chainactive(height)) != 0 && komodo_blockload(block,pindex) == 0 )
{
BOOST_FOREACH(const CTransaction&tx, block.vtx)
{
@@ -254,10 +254,9 @@ int32_t NSPV_gettxproof(struct NSPV_txproof *ptr,int32_t vout,uint256 txid,int32
}
ptr->unspentvalue = CCgettxout(txid,vout,1,1);
//fprintf(stderr,"gettxproof slen.%d\n",(int32_t)(sizeof(*ptr) - sizeof(ptr->tx) - sizeof(ptr->txproof) + ptr->txlen + ptr->txprooflen));
return(sizeof(*ptr) - sizeof(ptr->tx) - sizeof(ptr->txproof) + ptr->txlen + ptr->txprooflen);
}
}
return(-1);
return(sizeof(*ptr) - sizeof(ptr->tx) - sizeof(ptr->txproof) + ptr->txlen + ptr->txprooflen);
}
int32_t NSPV_getntzsproofresp(struct NSPV_ntzsproofresp *ptr,uint256 prevntztxid,uint256 nextntztxid)