Browse Source

test

metaverse
jl777 8 years ago
parent
commit
0f24f24562
  1. 8
      src/coins.cpp
  2. 18
      src/komodo.h
  3. 2
      src/rpcblockchain.cpp
  4. 2
      src/rpcrawtransaction.cpp
  5. 2
      src/test/transaction_tests.cpp
  6. 2
      src/wallet/rpcwallet.cpp

8
src/coins.cpp

@ -385,7 +385,7 @@ const CScript &CCoinsViewCache::GetSpendFor(const CTxIn& input) const
uint32_t komodo_txtime(uint256 hash);
CAmount CCoinsViewCache::GetValueIn(const CTransaction& tx,uint32_t prevblocktime) const
CAmount CCoinsViewCache::GetValueIn(const CTransaction& tx,uint32_t tiptime) const
{
uint32_t timestamp,minutes;
if ( tx.IsCoinBase() != 0 )
@ -395,11 +395,7 @@ CAmount CCoinsViewCache::GetValueIn(const CTransaction& tx,uint32_t prevblocktim
{
value = GetOutputFor(tx.vin[i]).nValue;
nResult += value;
if ( (timestamp= komodo_txtime(tx.vin[i].prevout.hash)) != 0 && timestamp < prevblocktime-3600*24*7 && value >= COIN )
{
minutes = (prevblocktime - timestamp) / 60;
fprintf(stderr,"GetValueIn %lld i.%d time.%u minutes.%d\n",(long long)value,i,timestamp,minutes);
}
nResult += komodo_interest(value,komodo_txtime(tx.vin[i].prevout.hash),tiptime);
}
nResult += tx.GetJoinSplitValueIn();

18
src/komodo.h

@ -255,7 +255,7 @@ uint32_t komodo_txtime(uint256 hash)
//printf("null GetTransaction\n");
return(tx.nLockTime);
}
if (!hashBlock.IsNull()) {
/*if (!hashBlock.IsNull()) {
BlockMap::iterator mi = mapBlockIndex.find(hashBlock);
if (mi != mapBlockIndex.end() && (*mi).second)
{
@ -264,9 +264,20 @@ uint32_t komodo_txtime(uint256 hash)
return(pindex->GetBlockTime());
}
//printf("cant find in iterator\n");
}
}*/
//printf("null hashBlock\n");
return(tx.nLockTime);
return(0);
}
int64_t komodo_interest(uint64_t nValue,uint32_t nLockTime,uint32_t tiptime)
{
int32_t minutes;
if ( nLockTime >= LOCKTIME_THRESHOLD && tiptime != 0 && nLockTime < tiptime && nValue >= COIN )
{
minutes = (tiptime - nLockTime) / 60;
fprintf(stderr,"komodo_interest %lld nLockTime.%u tiptime.%u minutes.%d\n",(long long)nValue,nLockTime,tiptime,minutes);
}
return(0);
}
void komodo_nutxoadd(int32_t addflag,int32_t height,int32_t notaryid,uint256 txhash,uint64_t voutmask,int32_t numvouts)
@ -719,4 +730,5 @@ void komodo_index2pubkey33(uint8_t *pubkey33,CBlockIndex *pindex,int32_t height)
}
}
#endif

2
src/rpcblockchain.cpp

@ -380,6 +380,7 @@ Value gettxoutsetinfo(const Array& params, bool fHelp)
return ret;
}
int64_t komodo_interest(uint64_t nValue,uint32_t pastlocktime,uint32_t tiptime);
Value gettxout(const Array& params, bool fHelp)
{
if (fHelp || params.size() < 2 || params.size() > 3)
@ -451,6 +452,7 @@ Value gettxout(const Array& params, bool fHelp)
else
ret.push_back(Pair("confirmations", pindex->nHeight - coins.nHeight + 1));
ret.push_back(Pair("value", ValueFromAmount(coins.vout[n].nValue)));
ret.push_back(Pair("interest", ValueFromAmount(komodo_interest(coins.vout[n].nValue,coins.nLockTime,chainActive.Tip()->nTime))));
Object o;
ScriptPubKeyToJSON(coins.vout[n].scriptPubKey, o, true);
ret.push_back(Pair("scriptPubKey", o));

2
src/rpcrawtransaction.cpp

@ -96,6 +96,7 @@ Array TxJoinSplitToJSON(const CTransaction& tx) {
return vjoinsplit;
}
int64_t komodo_interest(uint64_t nValue,uint32_t pastlocktime,uint32_t tiptime);
void TxToJSON(const CTransaction& tx, const uint256 hashBlock, Object& entry)
{
entry.push_back(Pair("txid", tx.GetHash().GetHex()));
@ -123,6 +124,7 @@ void TxToJSON(const CTransaction& tx, const uint256 hashBlock, Object& entry)
const CTxOut& txout = tx.vout[i];
Object out;
out.push_back(Pair("value", ValueFromAmount(txout.nValue)));
out.push_back(Pair("interest", ValueFromAmount(komodo_interest(txout.nValue,tx.nLockTime,chainActive.Tip()->nTime))));
out.push_back(Pair("n", (int64_t)i));
Object o;
ScriptPubKeyToJSON(txout.scriptPubKey, o, true);

2
src/test/transaction_tests.cpp

@ -522,7 +522,7 @@ BOOST_AUTO_TEST_CASE(test_Get)
t1.vout[0].scriptPubKey << OP_1;
BOOST_CHECK(AreInputsStandard(t1, coins));
BOOST_CHECK_EQUAL(coins.GetValueIn(t1), (50+21+22)*CENT);
BOOST_CHECK_EQUAL(coins.GetValueIn(t1,0), (50+21+22)*CENT);
// Adding extra junk to the scriptSig should make it non-standard:
t1.vin[0].scriptSig << OP_11;

2
src/wallet/rpcwallet.cpp

@ -2259,6 +2259,7 @@ Value resendwallettransactions(const Array& params, bool fHelp)
return result;
}
int64_t komodo_interest(uint64_t nValue,uint32_t pastlocktime,uint32_t tiptime);
Value listunspent(const Array& params, bool fHelp)
{
if (!EnsureWalletIsAvailable(fHelp))
@ -2363,6 +2364,7 @@ Value listunspent(const Array& params, bool fHelp)
}
}
entry.push_back(Pair("amount",ValueFromAmount(nValue)));
entry.push_back(Pair("interest",ValueFromAmount(komodo_interest(nValue,out.tx->nLockTime,activeChain.Tip()->nTime))));
entry.push_back(Pair("confirmations",out.nDepth));
entry.push_back(Pair("spendable", out.fSpendable));
results.push_back(entry);

Loading…
Cancel
Save