From e5907e31a6c0ceb8368e8af260c6ae903207100b Mon Sep 17 00:00:00 2001 From: Alrighttt Date: Sun, 5 May 2019 22:14:32 +0000 Subject: [PATCH 1/6] add oracles non-final oracle changes --- src/cc/oracles.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/cc/oracles.cpp b/src/cc/oracles.cpp index ef457fe82..a5d61d404 100644 --- a/src/cc/oracles.cpp +++ b/src/cc/oracles.cpp @@ -935,13 +935,13 @@ UniValue OracleFormat(uint8_t *data,int32_t datalen,char *format,int32_t formatl if ( j >= datalen ) break; } - return(obj); + return(str); } UniValue OracleDataSamples(uint256 reforacletxid,uint256 batontxid,int32_t num) { - UniValue result(UniValue::VOBJ),a(UniValue::VARR); CTransaction tx,oracletx; uint256 hashBlock,btxid,oracletxid; - CPubKey pk; std::string name,description,format; int32_t numvouts,n=0; std::vector data; char *formatstr = 0; + UniValue result(UniValue::VOBJ),b(UniValue::VARR); CTransaction tx,oracletx; uint256 hashBlock,btxid,oracletxid; + CPubKey pk; std::string name,description,format; int32_t numvouts,n=0; std::vector data; char str[67], *formatstr = 0; result.push_back(Pair("result","success")); if ( GetTransaction(reforacletxid,oracletx,hashBlock,false) != 0 && (numvouts=oracletx.vout.size()) > 0 ) @@ -954,15 +954,18 @@ UniValue OracleDataSamples(uint256 reforacletxid,uint256 batontxid,int32_t num) { if ( (formatstr= (char *)format.c_str()) == 0 ) formatstr = (char *)""; + UniValue a(UniValue::VARR); a.push_back(OracleFormat((uint8_t *)data.data(),(int32_t)data.size(),formatstr,(int32_t)format.size())); + a.push_back(uint256_str(str,batontxid)); + b.push_back(a); batontxid = btxid; - if ( ++n >= num ) + if ( ++n >= num && num != 0) break; } else break; } } } - result.push_back(Pair("samples",a)); + result.push_back(Pair("samples",b)); return(result); } From 6e7b2363be01eb7cb33d4322b2cb92964bdf60a7 Mon Sep 17 00:00:00 2001 From: blackjok3r Date: Mon, 6 May 2019 12:13:17 +0800 Subject: [PATCH 2/6] undo stuff --- src/chain.h | 2 +- src/komodo_nk.h | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/chain.h b/src/chain.h index b893e3a06..ac60dc277 100644 --- a/src/chain.h +++ b/src/chain.h @@ -547,7 +547,7 @@ public: if ((s.GetType() & SER_DISK) && (nVersion >= SAPLING_VALUE_VERSION)) { READWRITE(nSaplingValue); } - if ( (s.GetType() & SER_DISK) && (is_STAKED(ASSETCHAINS_SYMBOL) != 0) && ASSETCHAINS_NOTARY_PAY[0] != 0 ) + if ( (s.GetType() & SER_DISK) && (is_STAKED(ASSETCHAINS_SYMBOL) != 0) )// && ASSETCHAINS_NOTARY_PAY[0] != 0 ) { READWRITE(nNotaryPay); READWRITE(segid); diff --git a/src/komodo_nk.h b/src/komodo_nk.h index 3c9034dde..708e8ba6c 100644 --- a/src/komodo_nk.h +++ b/src/komodo_nk.h @@ -1,7 +1,10 @@ #ifndef KOMODO_NK_H #define KOMODO_NK_H -#define ASSETCHAINS_N 96 -#define ASSETCHAINS_K 5 +#define ASSETCHAINS_N 77 +#define ASSETCHAINS_K 3 + +//#define ASSETCHAINS_N 95 +//#define ASSETCHAINS_K 5 #endif From ab6e923cfb58911f12975f56ad574284ea058ad2 Mon Sep 17 00:00:00 2001 From: blackjok3r Date: Mon, 6 May 2019 14:54:59 +0800 Subject: [PATCH 3/6] fixes --- src/cc/payments.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/cc/payments.cpp b/src/cc/payments.cpp index eda1bdb41..12d5cff62 100644 --- a/src/cc/payments.cpp +++ b/src/cc/payments.cpp @@ -303,7 +303,7 @@ bool PaymentsValidate(struct CCcontract_info *cp,Eval* eval,const CTransaction & pub2createtxid(temp); createtxid = Parseuint256(temp); } - printf("createtxid.%s\n",createtxid.ToString().c_str()); + //printf("createtxid.%s\n",createtxid.ToString().c_str()); // use the createtxid to fetch the tx and all of the plans info. if ( myGetTransaction(createtxid,plantx,blockhash) != 0 && plantx.vout.size() > 0 ) @@ -496,7 +496,7 @@ bool PaymentsValidate(struct CCcontract_info *cp,Eval* eval,const CTransaction & fprintf(stderr, "vin.%i is not a payments CC vout: txid.%s\n", i, txin.GetHash().ToString().c_str()); return(eval->Invalid("vin is not paymentsCC type")); } - } + } else if ( fIsMerge && getCCopret(txin.vout[vin.prevout.n].scriptPubKey,opret) && opret.size() > 2 && DecodePaymentsMergeOpRet(opret,checktxid) == 'M' ) { mergeoffset = PAYMENTS_MERGEOFSET; @@ -514,7 +514,7 @@ bool PaymentsValidate(struct CCcontract_info *cp,Eval* eval,const CTransaction & return(eval->Invalid("must have at least 2 vins to carry out merge")); else if ( i == dust+1 ) return(eval->Invalid("cannot merge only dust")); - } + } } else return(eval->Invalid("create transaction cannot decode")); } else return(eval->Invalid("Could not get contract transaction")); return(true); @@ -595,7 +595,7 @@ int64_t AddPaymentsInputs(bool fLockedBlocks,int8_t GetBalance,struct CCcontract } } } - if ( GetBalance == 3 ) // return elegible balance to be spent, and blocks left until min release can be released. + if ( GetBalance == 3 && totalinputs < minrelease ) // return elegible balance to be spent, and blocks left until min release can be released. { int64_t lockedblocks_balance = totalinputs; // inputs that can be spent already. // sort utxos by blocks until able to be spent, smallest at top. @@ -800,7 +800,6 @@ UniValue PaymentsRelease(struct CCcontract_info *cp,char *jsonstr) return(result); } i = 0; - //for ( auto address : vAddressSnapshot ) if ( fixedAmount == 7 ) { // game setting, randomise bottom and top values @@ -846,7 +845,6 @@ UniValue PaymentsRelease(struct CCcontract_info *cp,char *jsonstr) newamount = amount; int64_t totalamountsent = 0; mpz_t mpzAmount; mpz_init(mpzAmount); mpz_set_si(mpzAmount,amount); - fprintf(stderr, "m.%i\n",m); for (i=0; i txidoprets; + CPubKey Paymentspk,mypk,txidpk; uint256 createtxid,hashBlock; int64_t inputsum,totalallocations=0; CScript opret; CTransaction tx; char txidaddr[64],destaddr[64]; std::string rawtx; + int32_t n,lockedblocks,minrelease,top,bottom,minimum=10000,blocksleft; std::vector txidoprets; std::vector> excludeScriptPubKeys; // snapshot uint256 tokenid; int8_t fixedAmount; cJSON *params = payments_reparse(&n,jsonstr); @@ -1033,7 +1031,6 @@ UniValue PaymentsMerge(struct CCcontract_info *cp,char *jsonstr) std::vector> vData = std::vector>(); if ( makeCCopret(opret, vData) ) mtx.vout.push_back(MakeCC1of2vout(EVAL_PAYMENTS,inputsum-PAYMENTS_TXFEE,Paymentspk,txidpk,&vData)); - //mtx.vout.push_back(MakeCC1vout(EVAL_PAYMENTS,inputsum-PAYMENTS_TXFEE,txidpk,&vData)); GetCCaddress1of2(cp,destaddr,Paymentspk,txidpk); CCaddr1of2set(cp,Paymentspk,txidpk,cp->CCpriv,destaddr); rawtx = FinalizeCCTx(0,cp,mtx,mypk,PAYMENTS_TXFEE,CScript()); @@ -1364,12 +1361,9 @@ UniValue PaymentsInfo(struct CCcontract_info *cp,char *jsonstr) txidpk = CCtxidaddr(txidaddr,createtxid); GetCCaddress1of2(cp,fundsaddr,Paymentspk,txidpk); funds = AddPaymentsInputs(false,2,cp,mtx,txidpk,0,CC_MAXVINS,createtxid,lockedblocks,minrelease,blocksleft); - //CCaddress_balance(fundsaddr,1); result.push_back(Pair(fundsaddr,ValueFromAmount(funds))); GetCCaddress(cp,fundsopretaddr,Paymentspk); - // TODO: Shows balance for ALL payments plans, not just the one asked for! Needs to be reworked. fundsopret = AddPaymentsInputs(false,1,cp,mtx,txidpk,0,CC_MAXVINS,createtxid,lockedblocks,minrelease,blocksleft); - //CCaddress_balance(fundsopretaddr,1); result.push_back(Pair(fundsopretaddr,ValueFromAmount(fundsopret))); result.push_back(Pair("totalfunds",ValueFromAmount(funds+fundsopret))); // Blocks until minrelease can be released. From f5a234c45f85ad27d9c92a711e56caba82215bf1 Mon Sep 17 00:00:00 2001 From: blackjok3r Date: Tue, 7 May 2019 14:29:32 +0800 Subject: [PATCH 4/6] bug fixes paymentsinfo, getCCopret --- src/cc/CCutils.cpp | 2 +- src/cc/payments.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cc/CCutils.cpp b/src/cc/CCutils.cpp index 363b54ad5..2d64e9a4f 100644 --- a/src/cc/CCutils.cpp +++ b/src/cc/CCutils.cpp @@ -64,7 +64,7 @@ int32_t has_opret(const CTransaction &tx, uint8_t evalcode) for ( auto vout : tx.vout ) { //fprintf(stderr, "[txid.%s] 1.%i 2.%i 3.%i 4.%i\n",tx.GetHash().GetHex().c_str(), vout.scriptPubKey[0], vout.scriptPubKey[1], vout.scriptPubKey[2], vout.scriptPubKey[3]); - if ( vout.scriptPubKey[0] == OP_RETURN && vout.scriptPubKey[2] == evalcode ) + if ( vout.scriptPubKey.size() > 2 && vout.scriptPubKey[0] == OP_RETURN && vout.scriptPubKey[2] == evalcode ) return i; i++; } diff --git a/src/cc/payments.cpp b/src/cc/payments.cpp index 12d5cff62..498d9d014 100644 --- a/src/cc/payments.cpp +++ b/src/cc/payments.cpp @@ -595,7 +595,7 @@ int64_t AddPaymentsInputs(bool fLockedBlocks,int8_t GetBalance,struct CCcontract } } } - if ( GetBalance == 3 && totalinputs < minrelease ) // return elegible balance to be spent, and blocks left until min release can be released. + if ( GetBalance == 3 && totalinputs < minrelease*COIN ) // return elegible balance to be spent, and blocks left until min release can be released. { int64_t lockedblocks_balance = totalinputs; // inputs that can be spent already. // sort utxos by blocks until able to be spent, smallest at top. From 462320cfaf2af75a532f144e21569568a7f6f1e6 Mon Sep 17 00:00:00 2001 From: Alrighttt <36680730+Alrighttt@users.noreply.github.com> Date: Sat, 11 May 2019 14:34:41 +0200 Subject: [PATCH 5/6] fix getaddresstxids help --- src/rpc/misc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index 4ea6e94e3..41134e831 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -1432,8 +1432,8 @@ UniValue getsnapshot(const UniValue& params, bool fHelp) UniValue getaddresstxids(const UniValue& params, bool fHelp) { - if (fHelp || params.size() > 2) - throw runtime_error( + if (fHelp || params.size() > 2 || params.size() < 1) + throw runtime_error "getaddresstxids (ccvout)\n" "\nReturns the txids for an address(es) (requires addressindex to be enabled).\n" "\nArguments:\n" From b489328ce87ff8ee517f961b92fb515c1850908c Mon Sep 17 00:00:00 2001 From: Alrighttt <36680730+Alrighttt@users.noreply.github.com> Date: Sat, 11 May 2019 14:35:51 +0200 Subject: [PATCH 6/6] syntax --- src/rpc/misc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index 41134e831..4f296174f 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -1433,7 +1433,7 @@ UniValue getsnapshot(const UniValue& params, bool fHelp) UniValue getaddresstxids(const UniValue& params, bool fHelp) { if (fHelp || params.size() > 2 || params.size() < 1) - throw runtime_error + throw runtime_error( "getaddresstxids (ccvout)\n" "\nReturns the txids for an address(es) (requires addressindex to be enabled).\n" "\nArguments:\n"