NSPV_utxos2CCunspents

This commit is contained in:
jl777
2019-07-11 15:17:25 -11:00
parent c267dcb282
commit 4bbc78d527
2 changed files with 34 additions and 0 deletions

View File

@@ -325,9 +325,16 @@ std::string FinalizeCCTx(uint64_t CCmask,struct CCcontract_info *cp,CMutableTran
else return("0");
}
void NSPV_CCunspents(std::vector<std::pair<CAddressUnspentKey, CAddressUnspentValue> > &unspentOutputs,char *coinaddr,bool ccflag);
void SetCCunspents(std::vector<std::pair<CAddressUnspentKey, CAddressUnspentValue> > &unspentOutputs,char *coinaddr,bool ccflag)
{
int32_t type=0,i,n; char *ptr; std::string addrstr; uint160 hashBytes; std::vector<std::pair<uint160, int> > addresses;
if ( KOMODO_NSPV != 0 )
{
NSPV_CCunspents(unspentOutputs,coinaddr,ccflag);
return;
}
n = (int32_t)strlen(coinaddr);
addrstr.resize(n+1);
ptr = (char *)addrstr.data();

View File

@@ -442,4 +442,31 @@ int64_t NSPV_AddNormalinputs(CMutableTransaction &mtx,CPubKey mypk,int64_t total
} else return(0);
}
void NSPV_utxos2CCunspents(struct NSPV_utxosresp *ptr,std::vector<std::pair<CAddressUnspentKey, CAddressUnspentValue> > &outputs)
{
CAddressUnspentKey key; CAddressUnspentValue value; int32_t i,type; uint160 hashBytes; std::string addrstr(ptr->coinaddr);
if ( ptr->utxos != NULL && ptr->numutxos > 0 )
{
CBitcoinAddress address(addrstr);
if (address.GetIndexKey(hashBytes, type, ptr->CCflag) == 0)
return;
for (i = 0; i < ptr->numutxos; i ++)
{
key.type = type;
key.hashBytes = hashBytes;
key.txhash = ptr->utxos[i].txid;
key.index = ptr->utxos[i].vout;
value.satoshis = ptr->utxos[i].satoshis;
value.blockHeight = ptr->utxos[i].height;
outputs.push_back(std::make_pair(key, value));
}
}
}
void NSPV_CCunspents(std::vector<std::pair<CAddressUnspentKey, CAddressUnspentValue> > &outputs,char *coinaddr,bool ccflag)
{
UniValue NSPV_addressutxos(coinaddr,ccflag);
NSPV_utxos2CCunspents(&NSPV_utxosresult,outputs);
}
#endif // KOMODO_NSPVWALLET_H