This commit is contained in:
jl777
2016-10-30 13:05:23 -03:00
parent 4ef3572a43
commit 021f8bc6c4
2 changed files with 12 additions and 15 deletions

View File

@@ -116,7 +116,7 @@ void komodo_gateway_deposit(char *coinaddr,uint64_t value,int32_t shortflag,char
int32_t komodo_gateway_depositremove(uint256 txid,uint16_t vout) // assetchain context int32_t komodo_gateway_depositremove(uint256 txid,uint16_t vout) // assetchain context
{ {
int32_t iter,n=0; queue_t *Q; struct pax_transaction *ptr; struct queueitem *item; int32_t iter,i,n=0; queue_t *Q; struct pax_transaction *ptr; struct queueitem *item;
for (iter=0; iter<2; iter++) for (iter=0; iter<2; iter++)
{ {
Q = (iter == 0) ? &DepositsQ : &PendingsQ; Q = (iter == 0) ? &DepositsQ : &PendingsQ;
@@ -132,7 +132,9 @@ int32_t komodo_gateway_depositremove(uint256 txid,uint16_t vout) // assetchain c
if ( KOMODO_DEPOSIT >= ptr->fiatoshis ) if ( KOMODO_DEPOSIT >= ptr->fiatoshis )
KOMODO_DEPOSIT -= ptr->fiatoshis; KOMODO_DEPOSIT -= ptr->fiatoshis;
else KOMODO_DEPOSIT = 0; else KOMODO_DEPOSIT = 0;
printf("DELETE %.8f DEPOSIT %s %.8f\n",dstr(ptr->komodoshis),ptr->symbol,dstr(ptr->fiatoshis)); for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&txid)[i]);
printf(" v%d DELETE %.8f DEPOSIT %s %.8f\n",vout,dstr(ptr->komodoshis),ptr->symbol,dstr(ptr->fiatoshis));
DL_DELETE(Q->list,&ptr->DL); DL_DELETE(Q->list,&ptr->DL);
n++; n++;
free(ptr); free(ptr);
@@ -241,10 +243,6 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3
} }
else if ( strncmp((char *)"KMD",(char *)&opretbuf[opretlen-4],3) != 0 ) else if ( strncmp((char *)"KMD",(char *)&opretbuf[opretlen-4],3) != 0 )
{ {
//for (i=0; i<opretlen; i++)
// printf("%02x",opretbuf[i]);
//printf(" komodo_opreturn[%c]: ht.%d %.8f opretlen.%d\n",opretbuf[0],height,dstr(value),opretlen);
if ( tokomodo == 0 && opretbuf[0] == 'I' ) if ( tokomodo == 0 && opretbuf[0] == 'I' )
{ {
if ( (n= komodo_issued_opreturn(&shortflag,base,txids,vouts,opretbuf,opretlen)) > 0 && shortflag == ASSETCHAINS_SHORTFLAG ) if ( (n= komodo_issued_opreturn(&shortflag,base,txids,vouts,opretbuf,opretlen)) > 0 && shortflag == ASSETCHAINS_SHORTFLAG )
@@ -252,11 +250,14 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3
for (i=0; i<n; i++) for (i=0; i<n; i++)
{ {
for (j=0; j<32; j++) for (j=0; j<32; j++)
printf("%02x",((uint8_t *)&txids)[j]); printf("%02x",((uint8_t *)&txids[i])[j]);
printf(" issuedtxid v%d i.%d opretlen.%d\n",vouts[i],i,opretlen); printf(" issuedtxid v%d i.%d opretlen.%d\n",vouts[i],i,opretlen);
if ( komodo_gateway_depositremove(txids[i],vouts[i]) == 0 ) if ( komodo_gateway_depositremove(txids[i],vouts[i]) == 0 )
printf("error removing deposit\n"); printf("error removing deposit\n");
} }
for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&txid)[i]);
printf(" v%d komodo_opreturn[%c]: ht.%d %.8f opretlen.%d\n",vout,opretbuf[0],height,dstr(value),opretlen);
} }
} }
} }

View File

@@ -1620,8 +1620,8 @@ void static InvalidBlockFound(CBlockIndex *pindex, const CValidationState &state
void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCache &inputs, CTxUndo &txundo, int nHeight) void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCache &inputs, CTxUndo &txundo, int nHeight)
{ {
// mark inputs spent if (!tx.IsCoinBase()) // mark inputs spent
if (!tx.IsCoinBase()) { {
txundo.vprevout.reserve(tx.vin.size()); txundo.vprevout.reserve(tx.vin.size());
BOOST_FOREACH(const CTxIn &txin, tx.vin) { BOOST_FOREACH(const CTxIn &txin, tx.vin) {
CCoinsModifier coins = inputs.ModifyCoins(txin.prevout.hash); CCoinsModifier coins = inputs.ModifyCoins(txin.prevout.hash);
@@ -1640,16 +1640,12 @@ void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCach
} }
} }
} }
BOOST_FOREACH(const JSDescription &joinsplit, tx.vjoinsplit) { // spend nullifiers
// spend nullifiers
BOOST_FOREACH(const JSDescription &joinsplit, tx.vjoinsplit) {
BOOST_FOREACH(const uint256 &nf, joinsplit.nullifiers) { BOOST_FOREACH(const uint256 &nf, joinsplit.nullifiers) {
inputs.SetNullifier(nf, true); inputs.SetNullifier(nf, true);
} }
} }
inputs.ModifyCoins(tx.GetHash())->FromTx(tx, nHeight); // add outputs
// add outputs
inputs.ModifyCoins(tx.GetHash())->FromTx(tx, nHeight);
} }
void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCache &inputs, int nHeight) void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCache &inputs, int nHeight)