From 718aa08e0edaddfaa44fd6ffa9b7104d5bb9fb6e Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 4 Sep 2018 07:32:25 -1100 Subject: [PATCH] Test --- src/cc/dapps/oraclefeed.c | 3 ++- src/cc/oracles.cpp | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/cc/dapps/oraclefeed.c b/src/cc/dapps/oraclefeed.c index b0b911018..36192bf74 100644 --- a/src/cc/dapps/oraclefeed.c +++ b/src/cc/dapps/oraclefeed.c @@ -311,7 +311,8 @@ uint64_t get_btcusd() // oraclescreate "BTCUSD" "coindeskpricedata" "L" -> 4895f631316a649e216153aee7a574bd281686265dc4e8d37597f72353facac3 // oraclesregister 4895f631316a649e216153aee7a574bd281686265dc4e8d37597f72353facac3 1000000 -> 11c54d4ab17293217276396e27d86f714576ff55a3300dac34417047825edf93 -// oraclessubscribe 4895f631316a649e216153aee7a574bd281686265dc4e8d37597f72353facac3 11c54d4ab17293217276396e27d86f714576ff55a3300dac34417047825edf93 1 +// oraclessubscribe 4895f631316a649e216153aee7a574bd281686265dc4e8d37597f72353facac3 02ebc786cb83de8dc3922ab83c21f3f8a2f3216940c3bf9da43ce39e2a3a882c92 1.5 -> ce4e4afa53765b11a74543dacbd3174a93f33f12bb94cdc080c2c023726b5838 +// oraclesdata 4895f631316a649e216153aee7a574bd281686265dc4e8d37597f72353facac3 000000ff00000000 int32_t main(int32_t argc,char **argv) { diff --git a/src/cc/oracles.cpp b/src/cc/oracles.cpp index be683bdaa..1a635ee01 100644 --- a/src/cc/oracles.cpp +++ b/src/cc/oracles.cpp @@ -228,7 +228,10 @@ uint256 OracleBatonUtxo(uint64_t txfee,struct CCcontract_info *cp,uint256 refora vout = (int32_t)it->first.index; height = (int32_t)it->second.blockHeight; if ( it->second.satoshis != txfee ) + { + fprintf(stderr,"it->second.satoshis %llu != %llu txfee\n",(long long)it->second.satoshis,(long long)txfee); continue; + } if ( GetTransaction(txid,tx,hashBlock,false) != 0 && (numvouts= tx.vout.size()) > 0 ) { GetOpReturnData(tx.vout[numvouts-1].scriptPubKey,vopret); @@ -439,18 +442,19 @@ int64_t AddOracleInputs(struct CCcontract_info *cp,CMutableTransaction &mtx,CPub return(totalinputs); } -int64_t LifetimeOraclesFunds(struct CCcontract_info *cp,uint256 oracletxid,CPubKey regpk) +int64_t LifetimeOraclesFunds(struct CCcontract_info *cp,uint256 oracletxid,CPubKey publisher) { char coinaddr[64]; CPubKey pk; int64_t total=0,num; uint256 txid,hashBlock,subtxid; CTransaction subtx; std::vector > addressIndex; - GetCCaddress(cp,coinaddr,regpk); + GetCCaddress(cp,coinaddr,publisher); SetCCtxids(addressIndex,coinaddr); + fprintf(stderr,"scan lifetime of %s\n",coinaddr); for (std::vector >::const_iterator it=addressIndex.begin(); it!=addressIndex.end(); it++) { txid = it->first.txhash; if ( GetTransaction(txid,subtx,hashBlock,false) != 0 ) { - if ( subtx.vout.size() > 0 && DecodeOraclesOpRet(subtx.vout[subtx.vout.size()-1].scriptPubKey,subtxid,pk,num) == 'S' && subtxid == oracletxid && regpk == pk ) + if ( subtx.vout.size() > 0 && DecodeOraclesOpRet(subtx.vout[subtx.vout.size()-1].scriptPubKey,subtxid,pk,num) == 'S' && subtxid == oracletxid && pk == publisher ) { total += subtx.vout[0].nValue; } @@ -545,7 +549,7 @@ std::string OracleData(int64_t txfee,uint256 oracletxid,std::vector da batontxid = OracleBatonUtxo(txfee,cp,oracletxid,batonaddr,mypk); if ( batontxid != zeroid ) // not impossible to fail, but hopefully a very rare event mtx.vin.push_back(CTxIn(batontxid,1,CScript())); - else fprintf(stderr,"warning: couldnt find baton utxo\n"); + else fprintf(stderr,"warning: couldnt find baton utxo %s\n",batonaddr); if ( (inputs= AddOracleInputs(cp,mtx,mypk,datafee,60)) > 0 ) { if ( inputs > datafee )