From 6de7b4176e2dc22d5f1281292d22e5c9f658ee1e Mon Sep 17 00:00:00 2001 From: Alright Date: Thu, 9 Jun 2022 08:54:12 -0400 Subject: [PATCH 01/16] dpow season 6 activation --- src/komodo_defs.h | 78 +++++++++++++++++++++++++++++++++++++++++--- src/komodo_globals.h | 3 ++ 2 files changed, 77 insertions(+), 4 deletions(-) diff --git a/src/komodo_defs.h b/src/komodo_defs.h index 621e6179692..b65b7d07f9d 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -60,7 +60,7 @@ // 7113400 = 5x current KMD blockheight. // to add 4th season, change NUM_KMD_SEASONS to 4, and add timestamp and height of activation to these arrays. -#define NUM_KMD_SEASONS 6 +#define NUM_KMD_SEASONS 7 #define NUM_KMD_NOTARIES 64 extern const uint32_t nStakedDecemberHardforkTimestamp; //December 2019 hardfork @@ -72,8 +72,11 @@ extern const int32_t nS4HardforkHeight; //dPoW Season 4 2020 hardfork extern const uint32_t nS5Timestamp; //dPoW Season 5 June 14th, 2021 hardfork (03:00:00 PM UTC) (defined in komodo_globals.h) extern const int32_t nS5HardforkHeight; //dPoW Season 5 June 14th, 2021 hardfork estimated block height (defined in komodo_globals.h) -static const uint32_t KMD_SEASON_TIMESTAMPS[NUM_KMD_SEASONS] = {1525132800, 1563148800, nStakedDecemberHardforkTimestamp, nS4Timestamp, nS5Timestamp, 1751328000}; -static const int32_t KMD_SEASON_HEIGHTS[NUM_KMD_SEASONS] = {814000, 1444000, nDecemberHardforkHeight, nS4HardforkHeight, nS5HardforkHeight, 7113400}; +extern const uint32_t nS6Timestamp; // dPoW Season 6 Fri Jun 24 2022 13:37:33 GMT+0000 +extern const int32_t nS6HardforkHeight; // estimated June 24 2022 + +static const uint32_t KMD_SEASON_TIMESTAMPS[NUM_KMD_SEASONS] = {1525132800, 1563148800, nStakedDecemberHardforkTimestamp, nS4Timestamp, nS5Timestamp, nS6Timestamp, 1751328000}; +static const int32_t KMD_SEASON_HEIGHTS[NUM_KMD_SEASONS] = {814000, 1444000, nDecemberHardforkHeight, nS4HardforkHeight, nS5HardforkHeight, nS6HardforkHeight, 7113400}; // Era array of pubkeys. Add extra seasons to bottom as requried, after adding appropriate info above. static const char *notaries_elected[NUM_KMD_SEASONS][NUM_KMD_NOTARIES][2] = @@ -476,7 +479,74 @@ static const char *notaries_elected[NUM_KMD_SEASONS][NUM_KMD_NOTARIES][2] = {"strob_SH", "0213751a1c59d3489ca85b3d62a3d606dcef7f0428aa021c1978ea16fb38a2fad6" }, {"strobnidan_SH", "033e33ef18effb979437cd202bb87dc32385e16ebd52d6f762d8a3b308d6f89c52" }, {"dragonhound_DEV", "02b3c168ed4acd96594288cee3114c77de51b6afe1ab6a866887a13a96ee80f33c" } - } + }, + { + // Season 6 + {"blackice_DEV", "03e2de3418c88be0cfe2fa0dcfdaea001b5a36ad86e6833ad284d79021ae7e2b94"}, + {"blackice_AR", "03949b06c2773b4573aeb0b52e70ccc2d98dc5794a47e24eeb902c9d28e0e8d28b"}, + {"alien_EU", "022b85908191788f409506ebcf96a892f3274f352864c3ed566c5a16de63953236"}, + {"alien_NA", "022f62b56ddfd07c9860921c701285ac39bb3ac8f6f083d1b59c8f4943be3de162"}, + {"alien_SH", "024f20c096b085308e21893383f44b4faf1cdedea9ad53cc7d7e7fbfa0c30c1e71"}, + {"alienx_EU", "025de0911bab55616c307f02ea8a5915a2e0c8e479aa97968e7f00d1025cbe6c6d"}, + {"alienx_NA", "025d5e11725233ab161f4f63d697c5f9f0c6b9d3aa2b9c68299638f8cc63faa9c2"}, + {"artem.pikulin_AR", "03a45c4ad7f279cbc50acb48d81fc0eb63c4c5f556e3a4393fb3d6414df09c6e4c"}, + {"artem.pikulin_DEV", "025ee88d1c12f546c1c8942d7a3e0678f10bc27cc566e27bf4a2d2178e018d18c6"}, + {"blackice_EU", "025f8de3a6181270ceb5c31654e6a6e95d0339bc14b46b5e3050e8a69861c91baa"}, + {"chmex_AR", "030cd487e10fbf142e0e8d582e702ecb775f378569c3cb5acd0ff97b6b12803588"}, + {"chmex_EU", "030bf7bd7ad0515c33b5d5d9a91e0729baf801b9002f80495ae535ea1cebb352cb"}, + {"chmex_NA", "024e88a36d729352a391e07d1821dbfda1fca6409320cf9c2869b6fb99f05fbddd"}, + {"chmex_SH", "03e09c8ee6ae20cde64857d116c4bb5d50db6de2887ac39ea3ccf6434b1abf8698"}, + {"chmex1_SH", "02d59db293de6c7da6673beeb373ebce62fd6d3522f715ea1356b5a2624fbd11a2"}, + {"cipi_1_EU", "033a812d6cccdc4208378728f3a0e15db5b12074def9ab686ddc3752715ff1a194"}, + {"cipi_2_EU", "0302ca28a041ed00544de737651bdec9bafe3b7f1c0bf2c6092f2368d59fec75c2"}, + {"cipi_AR", "02336758998f474659020e6887ece61ac7b8567f9b2d38724ebf77ae800c1fb2b7"}, + {"cipi_NA", "0335352862da521bd90b99d394db1ee3ecde379db9cf7ba2f28b16fa76153e289f"}, + {"computergenie_EU", "033a2474a762700b452b96a49730280040a9872070bc51461e3727f6f118ff5358"}, + {"computergenie_NA", "02f945d87b7cd6e9f2173a110399d36b369edb1f10bdf5a4ba6fd4923e2986e137"}, + {"dimxy_AR", "0337e443df52f278f313f90628aaaa7a8db777f17bc7ce519069eb72717c1c2755"}, + {"dimxy_DEV", "03a7edd6d0ba188960e39eced4d6b4ca6946bd98323ab40cbc13d6e52696de7dc4"}, + {"dragonhound_NA", "0366a87a476a09e05560c5aae0e44d2ab9ba56e69701cee24307871ddd37c86258"}, + {"fediakash_AR", "035be6a54242a53e3ca55bd63430ac9b960fbfaad336d8c1464b5802f03ab184be"}, + {"gcharang_DEV", "03a3878af1152f648e6084fd3fbe697a26b1c2e92d407dd96c375f45f7d3ca13bf"}, + {"gcharang_SH", "0321868e0eb39271330fa2c3a9f4e542275d9719f8b87773c5432448ab10d6943d"}, + {"goldenman_AR", "03e027927dd1e379c2f45624ed9b057b187fe094595fee55c53f36ed665ed566ab"}, + {"kolo_AR", "032c2a6aeaf8176f9630abe2e1bbea5e481da23ab1f9a5b10f220a9b2bc9607bd6"}, + {"kolo_EU", "03b21717e84c0a6cf22b557b198daba4f78980048211b9139b4517fa08f9f17359"}, + {"kolox_AR", "038010e24e6d53f26871d31287f446f407fa87596d946bcd1f7b7b8458e34ad73f"}, + {"komodopioneers_EU", "02fb31b130babe79ac780a6118702555a8c66875835f35c2232a6cb8b1438fe71d"}, + {"madmax_DEV", "02d1ace4a25794de5a5287edeb9df9619dc97020114801c5cb287b1efdd49ddbb3"}, + {"marmarachain_EU", "02ca3e0618bc7c75afa6359ae476ee639682adfaa6fc463bbe7016c4f00da23ccf"}, + {"mcrypt_AR", "02845d016c68c3e5ce924b164abc271511f3092ae359677a515e8f81a9533472f4"}, + {"mcrypt_SH", "027a4ca7b11d3456ff558c08bb04483a89c7f383448461fd0b6b3b07424aabe9a4"}, + {"metaphilibert_SH", "03b21ff042bf1730b28bde43f44c064578b41996117ac7634b567c3773089e3be3"}, + {"mylo_NA", "02493412e6014d2bb985b1026e31204e7634a211a16454fc696f4dc4dfe409e998"}, + {"mylo_SH", "026a52dba25ca4deb225a5ef7fca117d59e20ef2319b00e1bb6750a5d61e5ed601"}, + {"nodeone_NA", "0310a249c6c2dcc29f2135715138a9ddb8e01c0eab701cbd0b96d9cec660dbdc58"}, + {"nutellalicka_AR", "03a5502c61839a34edc8443aee5c16c67d4a958874e13d9b6b69d29075354739ad"}, + {"nutellalicka_SH", "03c7822f0c3434037fa17bfa4d3b7f9d3e0eb9abe49e8cc1188d92c6b3c360a675"}, + {"ocean_AR", "02d216e72d37a38449d661413cbc6e1f008b21cffdb06865f7be636e2cbc1e5346"}, + {"pbca26_NA", "030b6515e80aaa489215875e2aa6f2a15fa36cb3342580e885275f8c636252cbc8"}, + {"pbca26_SH", "02d17840724692a9d5e72d61d001c31eb5ddc4d2f0f104b760e6854bf144e63fb8"}, + {"phit_SH", "021b893b7978284e3d73701a623f23104fcce27e70fb49427c215f9a7481f652da"}, + {"ptyx_NA", "025d72ef0f1c5103de306d536360bcf3c5b6129c2046334b21cec8202e9bfc4baf"}, + {"ptyx2_NA", "02913b3af6f67453eaff2318f3eed0fa0ea60eb2b37c8da64c575fec972f178d9b"}, + {"sheeba_SH", "030dd2c3c02cbc5b3c25e3c54ed02c1541951a6f5ecf8adbd353e8d9052d08b8fc"}, + {"smdmitry_AR", "0397b7584cb29717b721c0c587d4462477efc1f36a56921f133c9d17b0cd7f278a"}, + {"smdmitry_EU", "0338f30ca34d0aca0d79b69abde447036aaaa75f482b6c75801fd382e984337d01"}, + {"smdmitry_SH", "03f7d5ac650baaccedab959adf7c4f416584f4c05a37bf079f710227560c456978"}, + {"strob_SH", "0213751a1c59d3489ca85b3d62a3d606dcef7f0428aa021c1978ea16fb38a2fad6"}, + {"strobnidan_SH", "033e33ef18effb979437cd202bb87dc32385e16ebd52d6f762d8a3b308d6f89c52"}, + {"tokel_NA", "0315d866c09e15709e2036a05faec6aaf28e0ecf67329b2adb922b746f22e694bc"}, + {"tonyl_AR", "02e2d9ecdc9f462a4767f7dfe8ed243c98fcccc1511989a60e3f859dc6fda42d16"}, + {"tonyl_DEV", "0399c4f8c5b604cda64c1ccb8fdbd7a89730131519f87491a79b0811e619102d8f"}, + {"van_EU", "0370305b9e91d46331da202ae733d6050d01038ef6eceb2036ada394a48fae84b9"}, + {"webworker01_EU", "0390ba250f20b5849b9d37ad2bcb58d3d9a3a0385937e652c26511ba9f445f5db1"}, + {"webworker01_NA", "03bde0df98de0ff9697b7d5ecea225fd7267f55c061caa2c43a47b313e35c9b6c6"}, + {"who-biz_NA", "0268d30efafc6ac84b1c8210e99fd4936e178794581d348b87f64fcbbfa8d5e73b"}, + {"yurii-khi_DEV", "0243977da0533c7c1a37f0f6e30175225c9012d9f3f426180ff6e5710f5a50e32b"}, + {"ca333_EU", "03c34a62c8c89889e4529962578e0b75a010a6e1d9bcbe8f4bb9cc680d82c7261e"}, + {"dragonhound_DEV", "02b3c168ed4acd96594288cee3114c77de51b6afe1ab6a866887a13a96ee80f33c"}, + }, }; #define SETBIT(bits,bitoffset) (((uint8_t *)bits)[(bitoffset) >> 3] |= (1 << ((bitoffset) & 7))) diff --git a/src/komodo_globals.h b/src/komodo_globals.h index 87c94052dd7..9c366153918 100644 --- a/src/komodo_globals.h +++ b/src/komodo_globals.h @@ -35,6 +35,9 @@ const int32_t nS4HardforkHeight = 1922000; //dPoW Season 4 2020 hardfork Sunda const uint32_t nS5Timestamp = 1627466969; //dPoW Season 5 Wed Jul 28 2021 10:09:29 GMT+0000 (timestamp of TOKEL block #1) const int32_t nS5HardforkHeight = 2437300; //dPoW Season 5 Monday, June 14th, 2021 +const uint32_t nS6Timestamp = 1656077853; // dPoW Season 6 Fri Jun 24 2022 13:37:33 GMT+0000 +const int32_t nS6HardforkHeight = 2963330; // estimated June 24 2022 + #define _COINBASE_MATURITY 100 int COINBASE_MATURITY = _COINBASE_MATURITY;//100; unsigned int WITNESS_CACHE_SIZE = _COINBASE_MATURITY+10; From 2dc57d10832a320fe9f287aacd8f37a6851f9e02 Mon Sep 17 00:00:00 2001 From: NutellaLicka Date: Mon, 20 Jun 2022 16:54:13 +1000 Subject: [PATCH 02/16] README updates Readme updates only addition of blog link Random link fix --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f08c388114f..9a00be2da70 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ To NFT and Beyond #### What Tokel offers: - The blockchain that facilitates the tokens and NFTs. -- An open-sourced all-in-one ]GUI application](https://github.com/TokelPlatform/tokel_dapp). +- An open-sourced all-in-one [GUI application](https://github.com/TokelPlatform/tokel_dapp). - DEX functionality for all tokens/NFTs created on Tokel. - A free-to-use test blockchain (TKLTEST). - Easy to use integrations (nSPV) @@ -60,6 +60,7 @@ https://github.com/TokelPlatform/tokel_dapp - Tokel Website: [https://tokel.io](https://tokel.io) - Tokel Block Explorer: [https://explorer.tokel.io](https://explorer.tokel.io) - Tokel Discord: [Tokel Discord Invitation](http://discord.tokel.io) +- Tokel Blog: [Tokel Blog](https://tokel.io/blog/) - Email: [contact@tokel.io](mailto:contact@tokel.io) - Whitepaper: [Tokel Paper](https://tokel.io/TokelPaper1stEdition.pdf) - Knowledgebase & How-to: [Tokel Documentation](https://docs.tokel.io) From d2e98de9d1ac6e26c20d540d5a8d7a493e2cf5fd Mon Sep 17 00:00:00 2001 From: dimxy Date: Tue, 28 Jun 2022 22:20:42 +0500 Subject: [PATCH 03/16] fix fingerprint buf size --- src/cryptoconditions/src/cryptoconditions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cryptoconditions/src/cryptoconditions.c b/src/cryptoconditions/src/cryptoconditions.c index fe27e0e9a01..451a938f693 100644 --- a/src/cryptoconditions/src/cryptoconditions.c +++ b/src/cryptoconditions/src/cryptoconditions.c @@ -179,7 +179,7 @@ void asnCondition(const CC *cond, Condition_t *asn) { default: return; }; choice->cost = cc_getCost(cond); - choice->fingerprint.buf = calloc(1, fingerprintSize); + choice->fingerprint.buf = calloc(1, 32); cond->type->fingerprint(cond, choice->fingerprint.buf); choice->fingerprint.size = fingerprintSize; } From e0982435d8346ab9ffd58d5c04c29e14ff42bf75 Mon Sep 17 00:00:00 2001 From: dimxy Date: Tue, 28 Jun 2022 21:04:59 +0500 Subject: [PATCH 04/16] ext test for token Raddress --- src/test-komodo-cc/test-assets.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/test-komodo-cc/test-assets.cpp b/src/test-komodo-cc/test-assets.cpp index b2eed97dd33..13df21a8c33 100644 --- a/src/test-komodo-cc/test-assets.cpp +++ b/src/test-komodo-cc/test-assets.cpp @@ -2873,15 +2873,24 @@ TEST_F(TestAssetsCC, tokenv2transfer_raddress) EXPECT_TRUE(eval.AddTx(mcreatetx)); uint256 tokenid = mcreatetx.GetHash(); - std::vector dests = { pk2 }; + std::vector dests = { pk2.GetID() }; // dest R-address - std::vector tokenaddrs = GetTokenV2IndexKeys(pk1); - CMutableTransaction mtransfertx = MakeTokenV2TransferTx(pk1, 0, tokenid, tokenaddrs, {}, 1, dests, 1, false, false); - ASSERT_FALSE(CTransaction(mtransfertx).IsNull()); - EXPECT_TRUE(eval.AddTx(mtransfertx)); - CAmount bal = TokenV2Balance(pk2, tokenid); + std::vector tokenaddrs1 = GetTokenV2IndexKeys(pk1); + CMutableTransaction mtransfertx1 = MakeTokenV2TransferTx(pk1, 0, tokenid, tokenaddrs1, {}, 1, dests, 1, false, false); + ASSERT_FALSE(CTransaction(mtransfertx1).IsNull()); + EXPECT_TRUE(eval.AddTx(mtransfertx1)); + CAmount bal1 = TokenV2Balance(pk2, tokenid); // std::cerr << __func__ << " TokenV2Balance(pk2, tokenid)=" << bal << " mtransfertxid=" << mtransfertx.GetHash().GetHex() << " reason=" << eval.state.GetRejectReason() << std::endl; - EXPECT_TRUE(bal == 1); + EXPECT_TRUE(bal1 == 1); + + // try to spend + std::vector tokenaddrs2 = GetTokenV2IndexKeys(pk2); + CMutableTransaction mtransfertx2 = MakeTokenV2TransferTx(pk2, 0, tokenid, tokenaddrs2, {}, 1, dests, 1, false, false); + ASSERT_FALSE(CTransaction(mtransfertx2).IsNull()); + EXPECT_TRUE(eval.AddTx(mtransfertx2)); + CAmount bal2 = TokenV2Balance(pk2, tokenid); + EXPECT_TRUE(bal2 == 1); + } // test burn pk From 55f743677aaf17f46e8c2653b4e6e3d0a5386a1c Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 00:12:44 +0500 Subject: [PATCH 05/16] fix ccv1 validation --- src/cc/CCutils.cpp | 2 +- src/main.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cc/CCutils.cpp b/src/cc/CCutils.cpp index 3a33b5dba94..edf8867e883 100644 --- a/src/cc/CCutils.cpp +++ b/src/cc/CCutils.cpp @@ -378,7 +378,7 @@ bool _GetCCaddress(char *destaddr,uint8_t evalcode,CPubKey pk,bool mixed) if (payoutCond.get() != 0 ) { //if (mixed) CCtoAnon(payoutCond.get()); - Getscriptaddress(destaddr,CCPubKey(payoutCond.get(), CC_MIXED_MODE_SUBVER_0)); + Getscriptaddress(destaddr,CCPubKey(payoutCond.get(), mixed ? CC_MIXED_MODE_SUBVER_0 : CC_OLD_V1_SUBVER)); } return(destaddr[0] != 0); } diff --git a/src/main.cpp b/src/main.cpp index 08d4058e754..443097bba4a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3897,6 +3897,7 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin std::vector vChecks; if (!ContextualCheckInputs(tx, state, view, fExpensiveChecks, flags, false, txdata[i], chainparams.GetConsensus(), consensusBranchId, pindex->GetBlockTime(), pindex->GetHeight(), evalcodeChecker, nScriptCheckThreads ? &vChecks : NULL)) return false; + control.Add(vChecks); } { // check tx outputs including coinbases From 59b087b704e266e691c3faea0e44a8abe0ef4862 Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 00:13:27 +0500 Subject: [PATCH 06/16] added GetCurrentHeightCompat old style for oracles rewards --- src/cc/betprotocol.cpp | 2 +- src/cc/disputepayout.cpp | 2 +- src/cc/eval.cpp | 4 ++++ src/cc/eval.h | 1 + src/cc/oracles.cpp | 2 +- src/cc/rewards.cpp | 2 +- 6 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/cc/betprotocol.cpp b/src/cc/betprotocol.cpp index 0724f2fea7c..bc2875adfcb 100644 --- a/src/cc/betprotocol.cpp +++ b/src/cc/betprotocol.cpp @@ -264,7 +264,7 @@ bool Eval::DisputePayout(AppVM &vm, std::vector params, const CTransact if (!GetTxConfirmed(disputeTx.vin[0].prevout.hash, sessionTx, sessionBlock)) return Error("couldnt-get-parent"); - if (GetCurrentHeight() < sessionBlock.GetHeight() + waitBlocks) + if (GetCurrentHeightCompat() < sessionBlock.GetHeight() + waitBlocks) return Invalid("dispute-too-soon"); // Not yet } diff --git a/src/cc/disputepayout.cpp b/src/cc/disputepayout.cpp index 60924b00bae..1d0f8f1f8d9 100644 --- a/src/cc/disputepayout.cpp +++ b/src/cc/disputepayout.cpp @@ -61,7 +61,7 @@ bool Eval::DisputePayout(AppVM &vm, std::vector params, const CTransact if (!GetTxConfirmed(disputeTx.vin[0].prevout.hash, sessionTx, sessionBlock)) return Error("couldnt-get-parent"); - if (GetCurrentHeight() < sessionBlock.GetHeight() + waitBlocks) + if (GetCurrentHeightCompat() < sessionBlock.GetHeight() + waitBlocks) return Invalid("dispute-too-soon"); // Not yet } diff --git a/src/cc/eval.cpp b/src/cc/eval.cpp index 350647d5472..e0e78cf130a 100644 --- a/src/cc/eval.cpp +++ b/src/cc/eval.cpp @@ -164,6 +164,10 @@ unsigned int Eval::GetCurrentHeight() const { return nCurrentHeight; } +unsigned int Eval::GetCurrentHeightCompat() const +{ + return chainActive.Height(); +} bool Eval::GetBlock(uint256 hash, CBlockIndex& blockIdx) const { diff --git a/src/cc/eval.h b/src/cc/eval.h index 6686c83fed5..224dc9f0e66 100644 --- a/src/cc/eval.h +++ b/src/cc/eval.h @@ -117,6 +117,7 @@ class Eval virtual int64_t GetCurrentTime() const; void SetCurrentTime(int64_t nTimeIn) { nCurrentTime = nTimeIn; } virtual unsigned int GetCurrentHeight() const; + virtual unsigned int GetCurrentHeightCompat() const; void SetCurrentHeight(int32_t nHeightIn) { nCurrentHeight = nHeightIn; } virtual bool GetSpendsConfirmed(uint256 hash, std::vector &spends) const; virtual bool GetBlock(uint256 hash, CBlockIndex& blockIdx) const; diff --git a/src/cc/oracles.cpp b/src/cc/oracles.cpp index 18fe528e25f..4cca6ebb088 100644 --- a/src/cc/oracles.cpp +++ b/src/cc/oracles.cpp @@ -498,7 +498,7 @@ bool OraclesValidate(struct CCcontract_info* cp, Eval* eval, const CTransaction& // vout.2: marker from oraclesfund tx to normal pubkey address (activation on Jul 15th 2019 00:00) // vout.n-2: change, if any // vout.n-1: opreturn with createtxid, pubkey and price per data point - if (GetLatestTimestamp(eval->GetCurrentHeight()) > PUBKEY_SPOOFING_FIX_ACTIVATION) { + if (GetLatestTimestamp(eval->GetCurrentHeightCompat()) > PUBKEY_SPOOFING_FIX_ACTIVATION) { if (tx.vout.size() < 1 || DecodeOraclesOpRet(tx.vout.back().scriptPubKey, oracletxid, tmppk, amount) != 'R') return eval->Invalid("invalid oraclesregister OP_RETURN data!"); else if (!eval->GetTxUnconfirmed(oracletxid, tmptx, hashblock)) diff --git a/src/cc/rewards.cpp b/src/cc/rewards.cpp index 7fc86d1f2d4..3b498ff7185 100644 --- a/src/cc/rewards.cpp +++ b/src/cc/rewards.cpp @@ -297,7 +297,7 @@ bool RewardsValidate(struct CCcontract_info *cp,Eval* eval,const CTransaction &t if ( !CheckTxFee(tx, txfee, chainActive.LastTip()->GetHeight(), chainActive.LastTip()->nTime, dummy) ) return eval->Invalid("txfee is too high"); amount = vinTx.vout[0].nValue; - reward = RewardsCalc((int64_t)amount,tx.vin[0].prevout.hash,(int64_t)APR,(int64_t)minseconds,(int64_t)maxseconds,GetLatestTimestamp(eval->GetCurrentHeight())); + reward = RewardsCalc((int64_t)amount,tx.vin[0].prevout.hash,(int64_t)APR,(int64_t)minseconds,(int64_t)maxseconds,GetLatestTimestamp(eval->GetCurrentHeightCompat())); if ( reward == 0 ) return eval->Invalid("no eligible rewards"); if ( numvins == 1 && tx.vout[0].scriptPubKey.IsPayToCryptoCondition() == 0 ) From 0eeb59beaba268a14cc1af316ad235baf9710b43 Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 02:19:41 +0500 Subject: [PATCH 07/16] fix py ci tests for 'C' addresses --- qa/pytest_komodo/cc_modules/test_oracles.py | 5 +++-- qa/pytest_komodo/cc_modules/test_token.py | 8 ++++---- qa/pytest_komodo/cc_modules/test_unspentccundex.py | 6 +++--- qa/pytest_komodo/cc_modules/util.py | 2 +- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/qa/pytest_komodo/cc_modules/test_oracles.py b/qa/pytest_komodo/cc_modules/test_oracles.py index 71c078ed7a9..8b7a5ce3da8 100644 --- a/qa/pytest_komodo/cc_modules/test_oracles.py +++ b/qa/pytest_komodo/cc_modules/test_oracles.py @@ -27,14 +27,14 @@ def test_oracles(test_params): for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' result = rpc.oraclesaddress(pubkey) assert_success(result) for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' # there are no oracles created yet if is_fresh_chain: @@ -247,6 +247,7 @@ def test_oracles(test_params): # checking data for s type result = rpc.oraclessamples(globals()["oracle_{}".format("s")], batonaddr_s, "1") + print('result=', result) assert "['Anton']" == str(result["samples"][0]['data']) # checking data for S type diff --git a/qa/pytest_komodo/cc_modules/test_token.py b/qa/pytest_komodo/cc_modules/test_token.py index 376247db756..5f8e7c5a9b7 100644 --- a/qa/pytest_komodo/cc_modules/test_token.py +++ b/qa/pytest_komodo/cc_modules/test_token.py @@ -34,25 +34,25 @@ def test_token(test_params): assert_success(result) for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' result = call_token_rpc(rpc, "token"+v+"address", pubkey) assert_success(result) for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' result = call_token_rpc(rpc, "assetsaddress") assert_success(result) for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' result = call_token_rpc(rpc, "assetsaddress", pubkey) assert_success(result) for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' # there are no tokens created yet # TODO: this test conflicts with heir test because token creating for heir diff --git a/qa/pytest_komodo/cc_modules/test_unspentccundex.py b/qa/pytest_komodo/cc_modules/test_unspentccundex.py index bf72dd61793..9e50074f724 100644 --- a/qa/pytest_komodo/cc_modules/test_unspentccundex.py +++ b/qa/pytest_komodo/cc_modules/test_unspentccundex.py @@ -28,7 +28,7 @@ def test_ccindex(test_params): assert_success(result) for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' # get token cc address for pubkey: result = rpc.tokenaddress(pubkey) @@ -36,7 +36,7 @@ def test_ccindex(test_params): pubkeyTokenCCAddress = "" for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' if x == 'pubkey Tokens CC Address': pubkeyTokenCCAddress = result[x] @@ -46,7 +46,7 @@ def test_ccindex(test_params): pubkey1TokenCCAddress = "" for x in result.keys(): if x.find('ddress') > 0: - assert result[x][0] == 'R' + assert result[x][0] == 'R' or result[x][0] == 'C' if x == 'pubkey Tokens CC Address': pubkey1TokenCCAddress = result[x] diff --git a/qa/pytest_komodo/cc_modules/util.py b/qa/pytest_komodo/cc_modules/util.py index 001817b1cdf..accdb16de01 100644 --- a/qa/pytest_komodo/cc_modules/util.py +++ b/qa/pytest_komodo/cc_modules/util.py @@ -34,7 +34,7 @@ def mine_and_waitconfirms(txid, proxy, confs_req=2): # should be used after tx try: confirmations_amount = proxy.getrawtransaction(txid, 1)['confirmations'] if confirmations_amount < confs_req: - print("\ntx is not confirmed yet! Let's wait a little more") + print("\ntx is not confirmed yet! Let's wait a little more", txid) time.sleep(5) else: print("\ntx confirmed") From dedd1c4165dc8c6e41e9839d15eaebf23715ac69 Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 19:24:31 +0500 Subject: [PATCH 08/16] fix tokentransfer[many] v1 (for tests) --- src/rpc/tokensrpc.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/rpc/tokensrpc.cpp b/src/rpc/tokensrpc.cpp index c68f2b57adf..919715e1bf6 100644 --- a/src/rpc/tokensrpc.cpp +++ b/src/rpc/tokensrpc.cpp @@ -564,9 +564,11 @@ static UniValue tokentransfer(const std::string& name, const UniValue& params, b return MakeResultError("destination as address not active yet"); if (dest.which() != TX_PUBKEYHASH && dest.which() != TX_PUBKEY) return MakeResultError("invalid destination pubkey or address"); + if (V::EvalCode() == EVAL_TOKENS && dest.which() != TX_PUBKEY) // address not supported for tokens 1 + return MakeResultError("invalid destination pubkey"); - // after subver_1 upgrade only addresses always will be used as destination, pubkeys are converted to addresses - if (dest.which() == TX_PUBKEY && CCUpgrades::IsUpgradeActive(nTime, nHeight, CCUpgrades::GetUpgrades(), CCUpgrades::CCUPGID_MIXEDMODE_SUBVER_1)) + // after subver_1 upgrade only addresses always will be used as destination, pubkeys are converted to addresses (for tokens v2) + if (V::EvalCode() == EVAL_TOKENSV2 && dest.which() == TX_PUBKEY && CCUpgrades::IsUpgradeActive(nTime, nHeight, CCUpgrades::GetUpgrades(), CCUpgrades::CCUPGID_MIXEDMODE_SUBVER_1)) dests.push_back(boost::get(dest).GetID()); else dests.push_back(dest); // address or pubkey @@ -643,12 +645,14 @@ UniValue tokentransfermany(const std::string& name, const UniValue& params, bool Myprivkey(mypriv); std::vector srctokenaddrs; std::vector> probes; - if (V::IsMixed() == EVAL_TOKENS) { + if (V::EvalCode() == EVAL_TOKENS) { CCwrapper probeCond; probeCond.reset( MakeCCcond1(V::EvalCode(), mypk) ); - char tokenaddr[KOMODO_ADDRESS_BUFSIZE]; - GetTokensCCaddress(cpTokens, tokenaddr, mypk, V::IsMixed()); - srctokenaddrs.push_back(tokenaddr); + //char tokenaddr[KOMODO_ADDRESS_BUFSIZE]; + //GetTokensCCaddress(cpTokens, tokenaddr, mypk, V::IsMixed()); + //srctokenaddrs.push_back(tokenaddr); + srctokenaddrs = GetTokenV1IndexKeys(mypk); + probes.push_back({probeCond, mypriv}); } From 2ec926601bd0aa19f2f33c2114da24e8afa4a9ea Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 19:25:17 +0500 Subject: [PATCH 09/16] fix GetTokenAddress for tokens v1 --- src/cc/CCutils.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cc/CCutils.cpp b/src/cc/CCutils.cpp index edf8867e883..daa2597106e 100644 --- a/src/cc/CCutils.cpp +++ b/src/cc/CCutils.cpp @@ -404,7 +404,7 @@ static bool _GetTokensCCaddress(char *destaddr, uint8_t evalcode1, uint8_t evalc { //if (mixed) // CCtoAnon(payoutCond.get()); - Getscriptaddress(destaddr, CCPubKey(payoutCond.get(), CC_MIXED_MODE_SUBVER_0)); + Getscriptaddress(destaddr, CCPubKey(payoutCond.get(), mixed ? CC_MIXED_MODE_SUBVER_0 : CC_OLD_V1_SUBVER)); } return(destaddr[0] != 0); } @@ -425,7 +425,7 @@ bool GetCCaddress1of2(struct CCcontract_info *cp,char *destaddr,CPubKey pk,CPubK if ( payoutCond.get() != 0 ) { //if (mixed) CCtoAnon(payoutCond.get()); - Getscriptaddress(destaddr,CCPubKey(payoutCond.get(), CC_MIXED_MODE_SUBVER_0)); + Getscriptaddress(destaddr,CCPubKey(payoutCond.get(), mixed ? CC_MIXED_MODE_SUBVER_0 : CC_OLD_V1_SUBVER)); } return(destaddr[0] != 0); } @@ -443,7 +443,7 @@ bool GetTokensCCaddress1of2(struct CCcontract_info *cp, char *destaddr, CPubKey { //if (mixed) // CCtoAnon(payoutCond.get()); - Getscriptaddress(destaddr, CCPubKey(payoutCond.get(), CC_MIXED_MODE_SUBVER_0)); + Getscriptaddress(destaddr, CCPubKey(payoutCond.get(), mixed ? CC_MIXED_MODE_SUBVER_0 : CC_OLD_V1_SUBVER)); } return(destaddr[0] != 0); } From 7d1c516f78ea19042b981d6157af8e55ae975e7e Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 19:25:51 +0500 Subject: [PATCH 10/16] fix token py tests for tokens v1 --- qa/pytest_komodo/basic/pytest_util.py | 2 +- qa/pytest_komodo/cc_modules/test_token.py | 44 +++++++++++------------ qa/pytest_komodo/cc_modules/util.py | 2 +- 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/qa/pytest_komodo/basic/pytest_util.py b/qa/pytest_komodo/basic/pytest_util.py index 27af5501ef0..e9c9d9c3091 100644 --- a/qa/pytest_komodo/basic/pytest_util.py +++ b/qa/pytest_komodo/basic/pytest_util.py @@ -80,7 +80,7 @@ def mine_and_waitconfirms(txid, proxy, confs_req=2): # should be used after tx try: confirmations_amount = proxy.getrawtransaction(txid, 1)['confirmations'] if confirmations_amount < confs_req: - print("\ntx is not confirmed yet! Let's wait a little more") + print("\ntx is not confirmed yet! Let's wait a little more", txid, 'confs=', confirmations_amount, 'required=', confirmations_amount) time.sleep(5) else: print("\ntx confirmed") diff --git a/qa/pytest_komodo/cc_modules/test_token.py b/qa/pytest_komodo/cc_modules/test_token.py index 5f8e7c5a9b7..3c857618016 100644 --- a/qa/pytest_komodo/cc_modules/test_token.py +++ b/qa/pytest_komodo/cc_modules/test_token.py @@ -30,29 +30,24 @@ def test_token(test_params): for v in ["", "v2"] : - result = call_token_rpc(rpc, "token"+v+"address") - assert_success(result) - for x in result.keys(): - if x.find('ddress') > 0: - assert result[x][0] == 'R' or result[x][0] == 'C' - - result = call_token_rpc(rpc, "token"+v+"address", pubkey) - assert_success(result) - for x in result.keys(): - if x.find('ddress') > 0: - assert result[x][0] == 'R' or result[x][0] == 'C' - - result = call_token_rpc(rpc, "assetsaddress") - assert_success(result) - for x in result.keys(): - if x.find('ddress') > 0: - assert result[x][0] == 'R' or result[x][0] == 'C' - - result = call_token_rpc(rpc, "assetsaddress", pubkey) - assert_success(result) - for x in result.keys(): - if x.find('ddress') > 0: - assert result[x][0] == 'R' or result[x][0] == 'C' + result = call_token_rpc(rpc, "token"+v+"indexkey", pubkey) + if v == '': # for v2 a diff result + assert_success(result) + for x in result.keys(): + if x.find('ddress') > 0: + assert result[x][0] == 'R' or result[x][0] == 'C' + else : # v2 index keys: + for x in result: + assert x[0] == 'C' + + result = call_token_rpc(rpc, "assets"+v+"indexkey", pubkey) + if v == '': # for v2 a diff result + assert_success(result) + for x in result.keys(): + if x.find('ddress') > 0: + assert result[x][0] == 'R' or result[x][0] == 'C' + else : # v2 index key + assert result[0] == 'C' # there are no tokens created yet # TODO: this test conflicts with heir test because token creating for heir @@ -299,6 +294,7 @@ def test_token(test_params): # valid token transfer sendtokens = call_token_rpc(rpc, "token"+v+"transfer", tokenid, randompubkey, "1") assert sendtokens['hex'], "token"+v+"transfer tx not created" + print('tx1=', sendtokens["hex"]) send_and_mine(sendtokens["hex"], rpc) result = call_token_rpc(rpc, "token"+v+"balance", tokenid, randompubkey) assert result["balance"] == 1 @@ -306,7 +302,9 @@ def test_token(test_params): print("making valid token" + v + "transfermany...") # valid token transfer sendtokens = call_token_rpc(rpc, "token"+v+"transfermany", tokenid, randompubkey, "1") + print('transfermany result', sendtokens) assert sendtokens['hex'], "token"+v+"transfermany tx not created" + print('tx2=', sendtokens["hex"]) send_and_mine(sendtokens["hex"], rpc) result = call_token_rpc(rpc, "token"+v+"balance", tokenid, randompubkey) assert result["balance"] == 2 \ No newline at end of file diff --git a/qa/pytest_komodo/cc_modules/util.py b/qa/pytest_komodo/cc_modules/util.py index accdb16de01..92bfb960e0f 100644 --- a/qa/pytest_komodo/cc_modules/util.py +++ b/qa/pytest_komodo/cc_modules/util.py @@ -34,7 +34,7 @@ def mine_and_waitconfirms(txid, proxy, confs_req=2): # should be used after tx try: confirmations_amount = proxy.getrawtransaction(txid, 1)['confirmations'] if confirmations_amount < confs_req: - print("\ntx is not confirmed yet! Let's wait a little more", txid) + print("\ntx is not confirmed yet! Let's wait a little more", txid, 'confs=', confirmations_amount, 'required=', confs_req) time.sleep(5) else: print("\ntx confirmed") From 1943e7384357ecfc00188a413f792216e1d13f2b Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 19:36:24 +0500 Subject: [PATCH 11/16] del extra logs in py test --- qa/pytest_komodo/cc_modules/test_token.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/qa/pytest_komodo/cc_modules/test_token.py b/qa/pytest_komodo/cc_modules/test_token.py index 3c857618016..462d3a34b23 100644 --- a/qa/pytest_komodo/cc_modules/test_token.py +++ b/qa/pytest_komodo/cc_modules/test_token.py @@ -294,7 +294,6 @@ def test_token(test_params): # valid token transfer sendtokens = call_token_rpc(rpc, "token"+v+"transfer", tokenid, randompubkey, "1") assert sendtokens['hex'], "token"+v+"transfer tx not created" - print('tx1=', sendtokens["hex"]) send_and_mine(sendtokens["hex"], rpc) result = call_token_rpc(rpc, "token"+v+"balance", tokenid, randompubkey) assert result["balance"] == 1 @@ -302,9 +301,7 @@ def test_token(test_params): print("making valid token" + v + "transfermany...") # valid token transfer sendtokens = call_token_rpc(rpc, "token"+v+"transfermany", tokenid, randompubkey, "1") - print('transfermany result', sendtokens) assert sendtokens['hex'], "token"+v+"transfermany tx not created" - print('tx2=', sendtokens["hex"]) send_and_mine(sendtokens["hex"], rpc) result = call_token_rpc(rpc, "token"+v+"balance", tokenid, randompubkey) assert result["balance"] == 2 \ No newline at end of file From 71fcbe55bc3291f253ec5a92e3f757a7e9d487d5 Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 20:57:35 +0500 Subject: [PATCH 12/16] fix py test C address check --- qa/pytest_komodo/basic/pytest_util.py | 2 +- qa/pytest_komodo/cc_modules/test_faucet.py | 2 +- qa/pytest_komodo/cc_modules/test_heir.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qa/pytest_komodo/basic/pytest_util.py b/qa/pytest_komodo/basic/pytest_util.py index e9c9d9c3091..0ea96650eee 100644 --- a/qa/pytest_komodo/basic/pytest_util.py +++ b/qa/pytest_komodo/basic/pytest_util.py @@ -249,7 +249,7 @@ def validate_tx_pattern(txid): def validate_raddr_pattern(addr): if not isinstance(addr, str): return False - address_pattern = re.compile(r"R[a-zA-Z0-9]{33}\Z") + address_pattern = re.compile(r"[RC][a-zA-Z0-9]{33}\Z") if address_pattern.match(addr): return True else: diff --git a/qa/pytest_komodo/cc_modules/test_faucet.py b/qa/pytest_komodo/cc_modules/test_faucet.py index 876c69bf89b..7169fb32cf2 100644 --- a/qa/pytest_komodo/cc_modules/test_faucet.py +++ b/qa/pytest_komodo/cc_modules/test_faucet.py @@ -100,7 +100,7 @@ class TestFaucetCCe2e: def test_faucet_addresses(self, test_params): rpc1 = test_params.get('node1').get('rpc') pubkey = test_params.get('node1').get('pubkey') - address_pattern = re.compile(r"R[a-zA-Z0-9]{33}\Z") # normal R-addr + address_pattern = re.compile(r"[RC][a-zA-Z0-9]{33}\Z") # normal R-addr res = rpc1.faucetaddress() for key in res.keys(): diff --git a/qa/pytest_komodo/cc_modules/test_heir.py b/qa/pytest_komodo/cc_modules/test_heir.py index a5659cf9a5f..bac1c33e9fa 100644 --- a/qa/pytest_komodo/cc_modules/test_heir.py +++ b/qa/pytest_komodo/cc_modules/test_heir.py @@ -189,7 +189,7 @@ class TestHeirFunc: def test_heir_addresses(self, test_params): rpc1 = test_params.get('node1').get('rpc') pubkey = test_params.get('node2').get('pubkey') - address_pattern = re.compile(r"R[a-zA-Z0-9]{33}\Z") # normal R-addr + address_pattern = re.compile(r"[RC][a-zA-Z0-9]{33}\Z") # normal R-addr # verify all keys look like valid AC addrs res = rpc1.faucetaddress('') From 27562996fb82ec3a2a715b680ca68732c6c88ea0 Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 21:18:53 +0500 Subject: [PATCH 13/16] inc tokel subversion --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 4177bee26da..71ae7c0a4ae 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,7 @@ dnl komodo codebase version define(_KOMODO_VERSION, 60000) dnl tokel codebase version -define(_TOKEL_VERSION, 30100) +define(_TOKEL_VERSION, 30200) AC_DEFINE(KOMODO_VERSION, _KOMODO_VERSION, [Komodo Version]) AC_DEFINE(TOKEL_VERSION, _TOKEL_VERSION, [Tokel Version]) From e52fa755e1bb707804ec77cb3b111cb895eb8190 Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 22:21:22 +0500 Subject: [PATCH 14/16] py test log fixed --- qa/pytest_komodo/basic/pytest_util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/pytest_komodo/basic/pytest_util.py b/qa/pytest_komodo/basic/pytest_util.py index 0ea96650eee..453758e39da 100644 --- a/qa/pytest_komodo/basic/pytest_util.py +++ b/qa/pytest_komodo/basic/pytest_util.py @@ -80,7 +80,7 @@ def mine_and_waitconfirms(txid, proxy, confs_req=2): # should be used after tx try: confirmations_amount = proxy.getrawtransaction(txid, 1)['confirmations'] if confirmations_amount < confs_req: - print("\ntx is not confirmed yet! Let's wait a little more", txid, 'confs=', confirmations_amount, 'required=', confirmations_amount) + print("\ntx is not confirmed yet! Let's wait a little more", txid, 'confs=', confirmations_amount, 'required=', confs_req) time.sleep(5) else: print("\ntx confirmed") From 0114751c30d158cd5f4cc01e54d5a2f08cf12107 Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 23:33:08 +0500 Subject: [PATCH 15/16] fix cryptocondition check threshold ffil non null --- src/cryptoconditions/src/threshold.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cryptoconditions/src/threshold.c b/src/cryptoconditions/src/threshold.c index a7bc78b6834..f29b614182a 100644 --- a/src/cryptoconditions/src/threshold.c +++ b/src/cryptoconditions/src/threshold.c @@ -140,6 +140,10 @@ static CC *thresholdFromFulfillmentMixed(const Fulfillment_t *ffill) { { // Get the real threshold from the first ffill CC *tc = fulfillmentToCC(arrFulfills[0], flags); + if (tc == NULL) { + free(cond); + return NULL; + } if (tc->type->typeId != CC_Preimage || tc->preimageLength != 1) { cc_free(tc); free(cond); From 41646c4d2eb65ce695a6869181443b71033f0263 Mon Sep 17 00:00:00 2001 From: dimxy Date: Fri, 8 Jul 2022 23:33:45 +0500 Subject: [PATCH 16/16] disable unsupported kv py test --- qa/pytest_komodo/basic/test_blocks.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/qa/pytest_komodo/basic/test_blocks.py b/qa/pytest_komodo/basic/test_blocks.py index 4117421930a..99d0bfafa1f 100644 --- a/qa/pytest_komodo/basic/test_blocks.py +++ b/qa/pytest_komodo/basic/test_blocks.py @@ -342,6 +342,8 @@ def test_getrawmempool(self, test_params): res = rpc.getrawmempool(True) assert res.get(txid).get('height') == kvheight + ''' + # kv not supported def test_kvsearch(self, test_params): test_values = { 'key': 'search_key', @@ -358,6 +360,7 @@ def test_kvsearch(self, test_params): assert res.get('key') == test_values['key'] assert res.get('keylen') == keylen assert res.get('value') == test_values['value'] + ''' def test_notaries(self, test_params): rpc = test_params.get('node1').get('rpc')