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_BROADCAST 0x0c
#define NSPV_BROADCASTRESP 0x0d #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) int32_t iguana_rwbuf(int32_t rwflag,uint8_t *serialized,uint16_t len,uint8_t *buf)
{ {
if ( rwflag != 0 ) 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]) 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++) 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++) script = (uint8_t *)&vintx.vout[utxovout].scriptPubKey[0];
if ( memcmp(&script[1],elected[j],33) == 0 ) if ( (scriptlen= tx.vout[n].scriptPubKey.size()) == 35 )
{ {
numsigs++; for (j=0; j<64; j++)
break; if ( memcmp(&script[1],elected[j],33) == 0 )
} {
} else fprintf(stderr,"invalid scriptlen.%d\n",scriptlen); numsigs++;
} break;
fprintf(stderr,"numvins.%d numsigs.%d\n",(int32_t)tx.vin.size(),numsigs); }
return(numsigs); } 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) 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->txid = txid;
ptr->vout = vout; ptr->vout = vout;
ptr->height = height; 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) 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); 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)); //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) int32_t NSPV_getntzsproofresp(struct NSPV_ntzsproofresp *ptr,uint256 prevntztxid,uint256 nextntztxid)