Fix utxo selection
This commit is contained in:
@@ -266,16 +266,22 @@ int64_t AddNormalinputs(CMutableTransaction &mtx,CPubKey mypk,int64_t total,int3
|
|||||||
{
|
{
|
||||||
txid = out.tx->GetHash();
|
txid = out.tx->GetHash();
|
||||||
vout = out.i;
|
vout = out.i;
|
||||||
for (i=0; i<mtx.vin.size(); i++)
|
if ( mtx.vin.size() > 0 )
|
||||||
if ( txid == mtx.vin[i].prevout.hash && vout == mtx.vin[i].prevout.n )
|
{
|
||||||
break;
|
for (i=0; i<mtx.vin.size(); i++)
|
||||||
if ( i != mtx.vin.size() )
|
if ( txid == mtx.vin[i].prevout.hash && vout == mtx.vin[i].prevout.n )
|
||||||
continue;
|
break;
|
||||||
for (i=0; i<n; i++)
|
if ( i != mtx.vin.size() )
|
||||||
if ( txid == utxos[i].txid && vout == utxos[i].vout )
|
continue;
|
||||||
break;
|
}
|
||||||
if ( i != n )
|
if ( n > 0 )
|
||||||
continue;
|
{
|
||||||
|
for (i=0; i<n; i++)
|
||||||
|
if ( txid == utxos[i].txid && vout == utxos[i].vout )
|
||||||
|
break;
|
||||||
|
if ( i != n )
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if ( myIsutxo_spentinmempool(txid,vout) == 0 )
|
if ( myIsutxo_spentinmempool(txid,vout) == 0 )
|
||||||
{
|
{
|
||||||
up = &utxos[n++];
|
up = &utxos[n++];
|
||||||
@@ -308,11 +314,11 @@ int64_t AddNormalinputs(CMutableTransaction &mtx,CPubKey mypk,int64_t total,int3
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
up = &utxos[ind];
|
up = &utxos[ind];
|
||||||
utxos[ind] = utxos[--n];
|
|
||||||
memset(&utxos[n],0,sizeof(utxos[n]));
|
|
||||||
mtx.vin.push_back(CTxIn(up->txid,up->vout,CScript()));
|
mtx.vin.push_back(CTxIn(up->txid,up->vout,CScript()));
|
||||||
totalinputs += up->nValue;
|
totalinputs += up->nValue;
|
||||||
remains -= up->nValue;
|
remains -= up->nValue;
|
||||||
|
utxos[ind] = utxos[--n];
|
||||||
|
memset(&utxos[n],0,sizeof(utxos[n]));
|
||||||
if ( totalinputs >= total || (i+1) >= maxinputs )
|
if ( totalinputs >= total || (i+1) >= maxinputs )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user