diff --git a/configure.ac b/configure.ac index 4b750c7e8..65d6954c5 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 1) define(_CLIENT_VERSION_MINOR, 1) define(_CLIENT_VERSION_REVISION, 5) -define(_CLIENT_VERSION_BUILD, 0) +define(_CLIENT_VERSION_BUILD, 1) define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2023) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index cb1228a02..1871998f0 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -71,114 +71,114 @@ static CBlock CreateGenesisBlock(uint32_t nTime, uint32_t nNonce, uint32_t nBits static Checkpoints::MapCheckpoints mapCheckpoints = boost::assign::map_list_of (0, uint256S("00000551e93eb0749d40dfafd54b092e78d6612b47bd40de8d099818f65f53c1")) - (8801, uint256S("c68cecb66ed4a695386b8b341558743b0fe46a6a737953be0c63cc25aaeedf98")) - (17603, uint256S("bcbfe193798fadf04087beb34be7a662c7c82f9a1b364951d9cee7dc3cfa7183")) - (26405, uint256S("7df0e9cf86fde310efd2f4b656d9151c1a5bcfe4f775d254b5e0d086b1f70868")) - (35207, uint256S("404e9271442863998d5f1f20eae15b2db425e4cafd268c01eb0bdbcada1c9cd2")) - (44009, uint256S("46e762eda110dba4fea08cb10fe05d06d3c16fe5002f30d4ba588b35028631ad")) - (52811, uint256S("0ad54130b6b242c300151b1f18333ec755d95631ba52ad9fd1eb52a00bf01125")) - (61613, uint256S("880585c4bcc4fd8d4880153ed9b2b648a3ad58329d1ad8823efbee706ff88c91")) - (70415, uint256S("468e078ae77ff4f0aaeb8be4b8312228af05834b4951b8d5427d33d1d99dceac")) - (79217, uint256S("c4c7e769608b86ab42f6cf1fd51bab3ca6a825c8d8ddbfc089d47602d64176cc")) - (88019, uint256S("ad6cfb7ecc391c825d6d9ce210da0a58d9f6bf01d4010af1998e8430c2d5fdad")) - (96821, uint256S("270a7a7f099548130e9385a7537f0f923796ff42204fa9755ddf35f5650978fc")) - (105623, uint256S("eb0830d2b50ba49bc16d155948cd9f04ee11a2352bb6d7cb64b1f3ddf77bd407")) - (114425, uint256S("8ae5a1d00c9d37748e4260c902f77365d80e7de623ab4ec984ada2ac4bec93ea")) - (123227, uint256S("26407c2095f2fe2e778c76c3e83264040ded533b26536475ef3f7abda15fb118")) - (132029, uint256S("c6cf449449bcb5cb1d265fc6aed17abc600b8f67d92d36884d329e858c09701e")) - (140831, uint256S("1798fd73cb667b88682da29360a46aae62ab9a6e63ee39590999ff7f319cd06f")) - (149633, uint256S("cce89c4782b7a9e8192ecbd2b91f17829227906f77673009001926ca1eb90862")) - (158435, uint256S("6d36777cfb0d12e530672236fcdad12a5a25c794686c8a8eb59603d2e096f4e2")) - (167237, uint256S("4c2ac6768fce8b5d2908afc0c78d05e183a6c0880ec0d46fce1424552ac136b6")) - (176039, uint256S("1d9c0a3fab8a20ed7ec8349c887a375703889b00d3112eeda166c45def9e5d91")) - (184841, uint256S("7b54a8d518d70ffa3a94ad491a7aa01cabe28dd55d0fd09def22d871e01fa9ae")) - (193643, uint256S("40a1a37a42e91e45124b612e3db722081b1ba98239fd7b892df4c7c7df3dba03")) - (202445, uint256S("f7ba0c95f51730dcdbdc83bbefdcd612f7992f4567d2bbbb2ef51a03632efa30")) - (211247, uint256S("3e09b57ee2c3c7727105921d247b27f1e1ac60c6e1ee3b99a94b0d11eba52c48")) - (220049, uint256S("25cbe95aaba5993e0487399e3ec63b689e5bf582f9c3a70a67842d9166bf1e20")) - (228851, uint256S("0ef99a79e81f35e82bcbd47bd404ee1cf916d9204d7109b74f147c1f4762a189")) - (237653, uint256S("eab9a6bf3324f8492a93124f07f91b98bffd7d03d6f7b62512c9b4f9e8fa414e")) - (246455, uint256S("5b7037d0542ac3c6f34e143ba870669dfa035c38317190f007020d36bc38ec1f")) - (255257, uint256S("0fc2646fe850d6e6f37e82095a918e059da942961142fabe6b2e87ab5b5816ec")) - (264059, uint256S("63e276c17080cee40ae65b45f9faa2eb5482a5d57ebaa28e0729e77b04f20653")) - (272861, uint256S("53923e9409cb2035152c491df49f311771d3481dcf4d3b4b57f61f7756181d83")) - (281663, uint256S("bc26527c60be7acc0ba67b999cf478a31cb1065c1ded0819c6f5b28f19a794c0")) - (290465, uint256S("949e05d1d6b515a991ae1d56638d4d9e762d99cda7379ddc19c51d6cf6040d8c")) - (299267, uint256S("d28dfddd411b0de295831362bfb8c6f15248edf62b087b16b5f508b5c51be2a3")) - (308069, uint256S("962d06531c987b51beab51227ed2822857c2af25ca975da3bdc25830d71cef29")) - (316871, uint256S("c292a6aaced34fdc9e1ba8fc28e726f2a9981582dd498116a329181518052582")) - (325673, uint256S("68e7425ac3b04596f67c07179edc8a41aca01086b4b6929c1d8f39dd9a40248f")) - (334475, uint256S("b4a362357155feee6e16cc70fe2370a186699adf8867d5f11d7179102fde68bd")) - (343277, uint256S("f585a4af1c681f08f1d36507bd9d1f42217b31cd011ed36450052639219fbe54")) - (352079, uint256S("d0e80a136fab97348c2511b13344bd474fca0e25106c402b64bea16b848649b4")) - (360881, uint256S("11b0eabc571ff9cbd310f3234b7f8b34e3614b3a4bd6f8e697f9bb797437c0d8")) - (369683, uint256S("45f82698154fb47b87047ff256b953ed7059bc8fa369b77260f36ada9d871756")) - (378485, uint256S("e945a0b7a8a123e7fc021ab4491c545fc2c848902a005bd127479bf0550cffd1")) - (387287, uint256S("76c93c19acd991e6048be1e46024efd0a14f95783b0f4230c059fee6640d4af6")) - (396089, uint256S("362aa35df8dd30c44b9443602ea505fbea5b0f8deef64d0ba0d5996dd9e550d9")) - (404891, uint256S("4597ccad585ed967c12216279ca591204885807c9305bb2a4c1cb4bc841f4fca")) - (413693, uint256S("90dcaefc1a4270351a0ce94466e30f45517364aaca57617161c4a89b6a179103")) - (422495, uint256S("fd661d93a3fa8e2db6cd1a7c12eada7d9ff1737db0b379f2bfb7e17aee459583")) - (431297, uint256S("d4e62364ef1467757ac00b4fbabf1c32a8b3567061008a9566c43bcd536c2755")) - (440099, uint256S("4c552a72eea913ae35841152f90c51895465c11f4989f33f63af697df2fbf1a7")) - (448901, uint256S("a1ee8f7ef73a2cdb39275a236e5c076962063d49c068945c1aefc5a920967fbb")) - (457703, uint256S("ab0182794de8b9f3ace7927b703f9842d73fa4082023a7de01a9c19b8d03dd7a")) - (466505, uint256S("fa028ed5f8b15cb298aea5152ed120cb24c6781070f28194abf3b020041a0255")) - (475307, uint256S("9dab90beeda796000e2f288fae1b0f669bb75308440c70f998b41049c45136b4")) - (484109, uint256S("3a28bf09519384463a928b3193a6f216f98d6c848eb68b45ea0580e9a3e2f12b")) - (492911, uint256S("394122531449fd84fe53bc944a6220a6447227b78896fb72d6c78fa2ed99290e")) - (501713, uint256S("b7321c791d4369e9d1216c0740e313b1b3490c2994df799d411206dbcb567608")) - (510515, uint256S("4de7a08296b31e84ca3ec7909aece9f213816a14a3b093f345023f8729fbf33f")) - (519317, uint256S("20adfcaa190b1a7a4c56ccdcb9680d1d879add9b0e6a297aef3319446f775103")) - (528119, uint256S("5e630db86768427547d6d31c287735eb6d97405adf172adf0c5ea33b9dad84d5")) - (536921, uint256S("67390c28f601a0976a53919bd7616f49f55f7d9ade07bd1271f9e8b30509fc9e")) - (545723, uint256S("6cb9f5fe934a7b52761cf4425092d10ba868331107bafcdca3cb1397987a9e3f")) - (554525, uint256S("846d67d904912b8a92d3eeca8c93026fabd6d1473bec864e4930f637913f44f5")) - (563327, uint256S("f3fa992fb546634b8d6e74c4a3c27b1b33b4234c3210d4f9bce853a9dd6407b9")) - (572129, uint256S("26745351e6469d656e2bdfd04226eb6236575285a67886198f12d081a8f2f32c")) - (580931, uint256S("6ea38fb9093fb812c499f40e8583578f1a2e2ca860b7480ab78df6385fe13798")) - (589733, uint256S("4dd405c0dd4aeb7363ad9002e2228fa2b0f00123dc2e6d8296b8042f8425b84d")) - (598535, uint256S("2df0fc07b74359afe59d6374dfccf89be6284db499bae2c590dda269e1707188")) - (607337, uint256S("5df81821d3d12f59803ac4f166607523607fe2c3f34cba9ba5449698f8c3fe4c")) - (616139, uint256S("2d6a57a02d99954763485a04b2c0b68587f28420edb95967ad1f82f93c6ce112")) - (624941, uint256S("16cfe96da17b903950229f2ecc1e63fbff32296278b0b2959ab4fec503a9cec3")) - (633743, uint256S("4335ff34fceee45a3c8eb1b41e9f6bff329c2f368052fb3f0890ba1e14877ff7")) - (642545, uint256S("097bada853b11d166c0d1c0b5f2b71341e7054b3ac35c2c635f7d916d042e634")) - (651347, uint256S("b035f8f1dfb370775a8c598ab229f54129aa253554b25f4b5680c13017ad731c")) - (660149, uint256S("c4d89b9ddf5ad9a498f6b1a4720f10ef9f96e8297afa38fac307f2e5e89506fc")) - (668951, uint256S("95c04dbf992566815e73509a5f548414f3f7525adcf09407d08544434401eb3b")) - (677753, uint256S("6e9b064274080eafd031adfe767d27bc401115589eeb6c84ffeee1a238bd4d69")) - (686555, uint256S("bedf9a3eaf2c80e56264f5d0052e672ac5bfe15bb65d7e1a4758f2aa149d0ca5")) - (695357, uint256S("6e295122908926c1cb15b1e2e175c1cad56921ca263d6a9a24a4d578e1a596f0")) - (704159, uint256S("cfbcbacb1d170d44dfde752c44e15f74fb9190dd6b72eb89ab82dc94a4d51219")) - (712961, uint256S("66be682cfd2c41b042eef072277660b07dc62622f115b1cb16a566d8592c5a81")) - (721763, uint256S("ad0cbbcaafef7fda4e8175cfef454d641bbca4af4e24ab1f625518112f5b5a90")) - (730565, uint256S("1f807c717da2f8b7b36a631ec26e88e8425dacb652d67aa01b838152b1b46eef")) - (739367, uint256S("d8378a5aee0f217a3bd73f4dafdbd8ef0d472d4b16b98bdf096b2411d508b3f3")) - (748169, uint256S("ca844fa08b4c28dffef94d73459db9d7ce233796b3817ed46cde8416689a5e9a")) - (756971, uint256S("cc10c1f825bb0e57268c1e266bf7b16eeebc07e9f251f40d8b09fd8263b7ddf8")) - (765773, uint256S("e335429d3175f4df032342e04cae678b13568ab0d4c96627b3146ab625157f13")) - (774575, uint256S("0bb80d484776979f390b376a650b7fe438d6a541f1555fe5241f50c5cdb18929")) - (783377, uint256S("1928f3c03c8d7bf3381e11c83861628d50dd36daecda35671403ebb06601f141")) - (792179, uint256S("4772f055e5ce5d4197c346229ca174f2c45203a296df4c2e0d53f4c2e21b84ca")) - (800981, uint256S("784c10e98de38a135559a176a2a661622eda2c53889bf58aede255520d154508")) - (809783, uint256S("d00f292a0b2210b46c86acda7bb60a5255d494b94ef64490f305aa1768b319f6")) - (818585, uint256S("12d600d51e13d1751b9527d522fc56f8c14abe5d8dcd68dd155a126a7eef1b01")) - (827387, uint256S("9c9f132702026e6b11cbb25e721f10e670b561116fa9c6200533be937cdd406c")) - (836189, uint256S("068a87a83d61df83ed35d4ebad8eda2ae53afc24d533aa5f16205e4fbf8a44d3")) - (844991, uint256S("e5cc8d109de72ef13947a342472c9c21edb407ad6fc7003d99e00b66c1382721")) - (853793, uint256S("2fdb245f4ec1afc3d224b8023de9bf74e966a0e3a77a76e409d118a404cf8406")) - (862595, uint256S("92eda41886a10f53f04526c4a643a20a9ba68e207db335eb6998cb49040ff3a1")) - (871397, uint256S("80faf6e0a55fabfce75e8d37ea23cb20e6c527a1ddb40b5bea152a3a8dcd7641")) - (880199, uint256S("e1f663f01d7af15a1c24638965fd3362b2444216ce7504eaf029f75c01f5be65")) -; + (10586, uint256S("2593146d756d02c59a02f8db67c7f266931c1dcf5f81d9987c41bd3b943e3443")) + (21173, uint256S("f8d6341e2c774ab7db1284ca1f1eb2a57bfefc87c81c5bdd94a69b1351df734f")) + (31760, uint256S("263f5cb659c3685635236387acbe7e81f9342472f726903d466df35ad9a26647")) + (42347, uint256S("f1f052bd90f16bffa7cb0e4aa170737f18e2ce55e2c44de18d484f02acbbe481")) + (52934, uint256S("a72cab3003e2b4955e60204e396a6d7777ecdeba95c3c7dded18c23a02587206")) + (63521, uint256S("7e5619762b27c0499d8611749bf6cb07db538ec186d780a7b561c4bbc3d22f8b")) + (74108, uint256S("3c37c3f5afcc81e24a2fb937af3af2e92e1c87f699414252f9d5daae567a4604")) + (84695, uint256S("891ee042cdb98cfebb2921536eb82405b71a7f252e6edc5948446e7d87acd85f")) + (95282, uint256S("8ee8d7d5c127099abfbb3bbe2b49cdd1d23ebd921b3a53accf11b86afc6e4643")) + (105869, uint256S("e00429f853cf814f68ee9e4a2ec6e7a2383eb7a19b7e62024cb2ffbd18a2e33b")) + (116456, uint256S("2fa079d972df10e50ca472e37d94e017441bb5eb3a8503a2e1099ca8cb94a7de")) + (127043, uint256S("09fc826480ae8a84262b5796cbf78e561dace60a8ee78060ed742cf5f8914f71")) + (137630, uint256S("7520670253d218ee3832b1938856c943c8889e4a320b298b9a0d78a8b2243cf4")) + (148217, uint256S("540309c63274ffe2724b96dc845cbcb56cb187e8949ade67044fa6ab4df0f2ee")) + (158804, uint256S("8d80fe36320d239230a19ec9d6f2d5ca462ca95f97985e13243f208089b0f9aa")) + (169391, uint256S("9811a06d4d8dc3b3272695c1f14fc84af8efc0c2606a142c3984dddd754017ee")) + (179978, uint256S("166191b66a2277caa7b9ad616e45d011cbee20851838f64891cdb1ca41f2b4e8")) + (190565, uint256S("f6a55387ad9297646486a1e596f942037fbaae094c1bd25c8b6a817d253108ae")) + (201152, uint256S("4dcdf4f6060a654743c2ebb9fffeda6039d2ed518ac9d639267787ea64204f3d")) + (211739, uint256S("a72dce384debc5a6329cd72003040a70f805689163fb012cb2586654246e7b5a")) + (222326, uint256S("e4f92003c89814dac7449e55f9ea63faa522aa4ca46cf42c5201d4a9bd819c1b")) + (232913, uint256S("3fa47f3cb6556cece55eb451fda9f715501ccd54aa2d2d3f830448b0263111c8")) + (243500, uint256S("61b811ef538e00ff987fff8141734f915cfae20f9e437c9136eefea9f66c7b38")) + (254087, uint256S("a65475a18813d10e46086fea833cb74b23a0648f75dec97e5db2bee033a93a76")) + (264674, uint256S("89e37aa277727d0fcc3587b077050c5b2954dec7d043a7d7967b80cb2dd96fb1")) + (275261, uint256S("9c0710c82251b49e695c8eb5459099368d5115248a5b595f9f3dc67c06455c37")) + (285848, uint256S("dde03308ecd6a5c5bd47ddc90a51e5160b733aaa851349610bb5613bc31944e6")) + (296435, uint256S("ed19249ef2e20bba8610b6e2c29703fa8ce5340d8b887309c7efd0876c75f26b")) + (307022, uint256S("12f309fdc511ea7e3fc442e44b2a4090a660eaa990b99cf0d7661ffa207791a4")) + (317609, uint256S("63b89157199e04f0171ddf7c43f0fd0c6123f5bd4e44c883aad3b9f846dcd85b")) + (328196, uint256S("26a8cdc0c8344967048903c5a833366706872626778c72fbdb2cd9fe6b351dda")) + (338783, uint256S("68f4ce06d08823d839606c3f7a2ce3b8f14720b58bdd5d1a79829af5a1600516")) + (349370, uint256S("4f5ece707a4d35ebca73ce755a3835e273d451d2f05fcecfdd657bc24cecb9d2")) + (359957, uint256S("7b14cdc785265a935adf2acac5169d92ac4eab2f6ada87eda3d2aac3c9dc4c7a")) + (370544, uint256S("c6ff59702b0369a408dd82f3c4f94b78e9f18e935b0f1a976102f416698668fa")) + (381131, uint256S("eda66cba2c557b6a5262c24d0ffd012d8af864a20199824ef0ac6eaec052f25a")) + (391718, uint256S("d64dd3586bf074a56e180e357feccaaf221952a429afda007db399584c4946aa")) + (402305, uint256S("2cc5a02770a0aa41af1526cb87dc589bb2f9f6c1f61a12a40698da1198e1d7fa")) + (412892, uint256S("f3a1b0f3c377b3b09832a68427d67dfc1301c3f987316802a8f74e7fee850456")) + (423479, uint256S("7ee327a06c4ef8859c9c83d8d5ebb4056ce87a50aed0d3f9095770e6c4dcf5da")) + (434066, uint256S("cb93f86697bd839ed7530aa99a286daa2060334801db77bc1afadfbf638b3c52")) + (444653, uint256S("428d562af817aa58261fdd7e0f89a56ff159a0a8b4c048765065015028cf608e")) + (455240, uint256S("c2ec2fe34b183f36c75ccfb2e4dd931138cc7e6867c334679c50594ffebde51b")) + (465827, uint256S("ad078b4a5c0de670c4857018d962453989be75a65134110e2f05a55c8510ab77")) + (476414, uint256S("e7658da96a7e974ff56b15baf473467b3e5f77ec2dd80b1333fb3c4a3e985fea")) + (487001, uint256S("daf2a8af9f65d3878360be7d452d64856ce6f37c9aa4fbeb395d59ef880c706f")) + (497588, uint256S("6677d9f438fd21d0a93619e5450d0f60388ea3c85e1544e658572903347641cc")) + (508175, uint256S("18c618cc88f6475973d71edae52d20b27944a39f8c85ad20273e6353b99db2ac")) + (518762, uint256S("27bd1592c2d9a498078b38efeccd318658f1beb098d91326a018338916a46db1")) + (529349, uint256S("962c88098156806e1b07fde2633c0bdc4fdfe0b78e40f05ba25049e7d22a8de1")) + (539936, uint256S("e542fb19c942d43e12f6b1a561c923c2e29603a120fcf2631fe637cc175c1f90")) + (550523, uint256S("12a135252612647fde841badff20593351d115807ddac23ca44612c991bbdf8d")) + (561110, uint256S("62b515d4cb9095091b8014da808c943f051c87ae870caa0aea8ddd895414c84b")) + (571697, uint256S("1fa745b3fb88a5c8e179f040d273288f8ffc7d94fe50686c6bf0c15f7196c07e")) + (582284, uint256S("a9551a71424cce848b24031bbff8be44cf5638db4a7ebcf361c0a6d729f764da")) + (592871, uint256S("f506e171ebe5e0e1c6c841872933eb4976b7fa3c8f862ec716e03e4b6f8f525f")) + (603458, uint256S("9c9c1079607932e74b0b2af0214917ea71fa43c2350863bdbeaac4757f781aa8")) + (614045, uint256S("653120295d9882d96f67a48c960d990d5ad98a05d1bc6bb758e3185f1c93bd19")) + (624632, uint256S("11ad92015f94e95265126e441ee1b8fbc8ab8718fe1eea62cc625fe6ba2e8561")) + (635219, uint256S("ddc8c8f906ca00436ff9f51f05cdbba8120e9ff648e86cb33e000e07cef8790b")) + (645806, uint256S("9d2504bbe996dd4b03af50a1ef9edecec97051954c3b02e466d4d32e3ab01a8b")) + (656393, uint256S("7a8a76c8eb3d0be51279937a1aba7f49b24405c99e7bf56706ab61ff19b7b857")) + (666980, uint256S("2ebce668f513bafe721f62cc5338cf8574f17458e553677eeae0f8b38e9b297c")) + (677567, uint256S("c8351c9927a1423bdbfead9cdb1e464ba03c72da6f23c8f88d38105030292883")) + (688154, uint256S("9740544c2c771b5a77ce55645855ebbd31e90edf7fcd019b856ebcdac4ba075d")) + (698741, uint256S("52d58ab113d008fdac5b52dd9e57e64352aac5e8ba05a5f2953e1ac511648c5d")) + (709328, uint256S("802c3d9e596d532dd53663da0fd96618101cdad06c789fbae169271436e3fee6")) + (719915, uint256S("8a6c20d84530a1bd3ec32480537fa3a37fd26c9e2d140048f2c4185b2f52945f")) + (730502, uint256S("e9341fe07a2a2d7159639371f6131e742640f24be4892e9351867a95b7e6d8ed")) + (741089, uint256S("144da2f8894719cd9a6a809ae23a8fdea60dffef0d6441978894b8ac42dd1106")) + (751676, uint256S("21606439edb6abeade85f0649ca0ebe4b74b2928ecc41bbf115b6163e0ddb531")) + (762263, uint256S("a57b26f14ceb2e6a2a91bf3fedf1189379ee9451e9c6fafcabf21baa81c968ac")) + (772850, uint256S("0d650f64280ef38528cc8b1391f90656b269d0365f3c439dc5e7adec429f1d2a")) + (783437, uint256S("46e01e63d41f5f8b827614decd79d9045a0376c0bffa259e0ceacd0128bd2fd8")) + (794024, uint256S("a7e7827e21e642278d0b3d85a5e77603bfdb0886995457906a0154473f2867a7")) + (804611, uint256S("139994f6751ac8b89412d33678d310442f42abe3756eb504cfac01b70674efb4")) + (815198, uint256S("cab98bbbdd9165cd64978bd11d0c805fcbc838507904523f8b4ecaebcd985bd1")) + (825785, uint256S("fab9e3b27daacfb893e8404cb07c963723f55ec67d79f779b73d227cdcea876d")) + (836372, uint256S("91f2124251bcc8be92ee4f8b26a2ed895db95d1ec2244f0e20de60b920583928")) + (846959, uint256S("817b3b9e61725237e0265f1b8d1211ce75baaf0df14544d1a2e0b379b0decfa8")) + (857546, uint256S("9559d79825310b92e3603c61233f4f1739e38c9e670f726cddc30fa3dedb3662")) + (868133, uint256S("01b512a0652b36054a4085b89fefe5bb8687f5822b845aff86010731d089b261")) + (878720, uint256S("303cbb65e08b97e6e0b10986b334cfd95d0a2a9eb9c3c2555e794147e06fa296")) + (889307, uint256S("5031e527be2d98c6a68e4100060330624fa65b1fc06beb77b2235bd896bceb36")) + (899894, uint256S("a9ff4976ae0f20c8bd384306f4bbab5c0353ed1949a336a7981a6a038e8bc044")) + (910481, uint256S("ccf037d5349108c941440d8980eb1ae0a264568d544f68836f2772afe638f479")) + (921068, uint256S("653f19a9d159dab2925f7be900b3f308af35a55aeb1a4ac73505614d84ffb613")) + (931655, uint256S("8dfa3f86ed44ce7afeca3f8fda7978889c9c8e7ca8116d6998df37b30f73175f")) + (942242, uint256S("be5dbb049193468af14bf7b11af8d7310ec96cf1148ac21edc3da44c0e5bf275")) + (952829, uint256S("8fc0e9571f9dd58cb979af9780859c51e98de3dcded27437d6178031434d9314")) + (963416, uint256S("390125e25b16e63323d8a74b062958008c2c99e7280a229eb9f9d90f255d8ab2")) + (974003, uint256S("b1c3ff357c97c8c0502c47d8670403936b3d8debafb2de6a9c5c0bd9eb7e54a9")) + (984590, uint256S("f84a25506e995f974ff32f1e1b9131190d44646978a4e8f98b2a581d438f9cc4")) + (995177, uint256S("5e96926de911a23bbf4bc032891993dc19a631d161bec7e138185fb07512c49e")) + (1005764, uint256S("291f12f1ddb2e8d27735fa1d49e1863887a43a2ac5a312056a15a47ab03936b4")) + (1016351, uint256S("524c22daa21fb653dd765bd01264982384f96445f720e4b77ce1483e1658eb14")) + (1026938, uint256S("d44cc2ac2e857cab9b55abb8ce7be9f49b0b2621982b4556c8be63f8f27bbc15")) + (1037525, uint256S("570e92a6906c2100010a213816f3f55e4032d3818e15699bf72716a6e4ec3605")) + (1048112, uint256S("886a68499863e2333bf1c8701f82ca3fa4a0fac5c96f49f51e3e760e4116ac64")) + (1058699, uint256S("9f8feca036c2a415d6b34bfc2801f2d5f82ce366e4c736829a09df38c89a3502")) +; static const Checkpoints::CCheckpointData data = { &mapCheckpoints, - 1681836510, // * UNIX timestamp of last checkpoint block - 1900999, // * total number of transactions between genesis and last checkpoint + 1692835920, // * UNIX timestamp of last checkpoint block + 2267510, // * total number of transactions between genesis and last checkpoint // (the tx=... number in the UpdateTip debug.log lines) - 2838 // * estimated number of transactions per day after checkpoint. 2000 for 10 minutes of bitcoin blockchain (1M block size). With 2M of block size and 1 minute of block time, this field should be around 4000 * 10 * 6 * 24 = 5760000 + 2822 // * estimated number of transactions per day after checkpoint. 2000 for 10 minutes of bitcoin blockchain (1M block size). With 2M of block size and 1 minute of block time, this field should be around 4000 * 10 * 6 * 24 = 5760000 }; static Checkpoints::MapCheckpoints mapCheckpointsTestnet = diff --git a/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui b/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui index 1bbea14e9..4df7a8f89 100644 --- a/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui +++ b/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui @@ -167,10 +167,10 @@ - 8 + 0 - 0 + 1 999999 diff --git a/src/qt/pivx/settings/settingswalletoptionswidget.cpp b/src/qt/pivx/settings/settingswalletoptionswidget.cpp index 284745db7..f802ad77e 100644 --- a/src/qt/pivx/settings/settingswalletoptionswidget.cpp +++ b/src/qt/pivx/settings/settingswalletoptionswidget.cpp @@ -100,20 +100,27 @@ void SettingsWalletOptionsWidget::setSpinBoxStakeSplitThreshold(double val) void SettingsWalletOptionsWidget::onSpinBoxStakeSplitThresholdChanged() { - if (ui->spinBoxStakeSplitThreshold->value() > 0) { - if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2) { - ui->spinBoxAutoCombineThreshold->setValue(ui->spinBoxStakeSplitThreshold->value() * 2 - 1); + if (ui->spinBoxStakeSplitThreshold->value() > 1) { + if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2 - 1) { + ui->spinBoxAutoCombineThreshold->setValue(floor(ui->spinBoxStakeSplitThreshold->value() * 2 - 1)); } + } else { + ui->spinBoxAutoCombineThreshold->setValue(1); } } void SettingsWalletOptionsWidget::onSpinBoxAutoCombineThresholdChanged() { - if (ui->spinBoxStakeSplitThreshold->value() > 0) { - if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2) { - ui->spinBoxAutoCombineThreshold->setValue(ui->spinBoxStakeSplitThreshold->value() * 2 - 1); + if (ui->spinBoxStakeSplitThreshold->value() > 1) { + if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2 - 1) { + ui->spinBoxAutoCombineThreshold->setValue(floor(ui->spinBoxStakeSplitThreshold->value() * 2 - 1)); } + } else { + ui->spinBoxAutoCombineThreshold->setValue(1); } + + // Enforce only integers. + ui->spinBoxAutoCombineThreshold->setValue(floor(ui->spinBoxAutoCombineThreshold->value())); } void SettingsWalletOptionsWidget::onAutoCombineCheckboxStateChanged() diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 1f6e6e420..5920b0cba 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -1019,7 +1019,7 @@ UniValue getbalance(const JSONRPCRequest& request) " To use this deprecated argument, start kyanited with -deprecatedrpc=accounts. Only include transactions confirmed at least this many times.\n" "3. includeWatchonly (bool, optional, default=false) DEPRECATED. This argument will be removed in v5.0.\n" " To use this deprecated argument, start kyanited with -deprecatedrpc=accounts. Also include balance in watchonly addresses (see 'importaddress')\n" - + "\nResult:\n" "amount (numeric) The total amount in KYAN received for this account.\n" @@ -1045,7 +1045,7 @@ UniValue getbalance(const JSONRPCRequest& request) isminefilter filter = ISMINE_SPENDABLE; if (request.params.size() > 2 && request.params[2].get_bool()) filter = filter | ISMINE_WATCH_ONLY; - + return ValueFromAmount(pwalletMain->GetLegacyBalance(filter, nMinDepth, account)); } @@ -1172,7 +1172,7 @@ UniValue sendfrom(const JSONRPCRequest& request) "6. \"comment-to\" (string, optional) An optional comment to store the name of the person or organization \n" " to which you're sending the transaction. This is not part of the transaction, \n" " it is just kept in your wallet.\n" - + "\nResult:\n" "\"transactionid\" (string) The transaction id.\n" @@ -1203,7 +1203,7 @@ UniValue sendfrom(const JSONRPCRequest& request) wtx.mapValue["to"] = request.params[5].get_str(); isminefilter filter = ISMINE_SPENDABLE; - + EnsureWalletIsUnlocked(); // Check funds @@ -1236,7 +1236,7 @@ UniValue sendmany(const JSONRPCRequest& request) " }\n" "3. minconf (numeric, optional, default=1) Only use the balance confirmed at least this many times.\n" "4. \"comment\" (string, optional) A comment\n" - + "\nResult:\n" "\"transactionid\" (string) The transaction id for the send. Only 1 transaction is created regardless of \n" " the number of addresses.\n" @@ -1263,7 +1263,7 @@ UniValue sendmany(const JSONRPCRequest& request) " }\n" "3. minconf (numeric, optional, default=1) Only use the balance confirmed at least this many times.\n" "4. \"comment\" (string, optional) A comment\n" - + "\nResult:\n" "\"transactionid\" (string) The transaction id for the send. Only 1 transaction is created regardless of \n" " the number of addresses.\n" @@ -1320,7 +1320,7 @@ UniValue sendmany(const JSONRPCRequest& request) } isminefilter filter = ISMINE_SPENDABLE; - + EnsureWalletIsUnlocked(); // Check funds @@ -1732,7 +1732,7 @@ UniValue listtransactions(const JSONRPCRequest& request) "2. count (numeric, optional, default=10) The number of transactions to return\n" "3. from (numeric, optional, default=0) The number of transactions to skip\n" "4. includeWatchonly (bool, optional, default=false) Include transactions to watchonly addresses (see 'importaddress')\n" - + "\nResult:\n" "[\n" " {\n" @@ -1783,7 +1783,7 @@ UniValue listtransactions(const JSONRPCRequest& request) "2. count (numeric, optional, default=10) The number of transactions to return\n" "3. from (numeric, optional, default=0) The number of transactions to skip\n" "4. includeWatchonly (bool, optional, default=false) Include transactions to watchonly addresses (see 'importaddress')\n" - + "\nResult:\n" "[\n" " {\n" @@ -1852,7 +1852,7 @@ UniValue listtransactions(const JSONRPCRequest& request) isminefilter filter = ISMINE_SPENDABLE; if ( request.params.size() > 3 && request.params[3].get_bool() ) filter = filter | ISMINE_WATCH_ONLY; - + if (nCount < 0) throw JSONRPCError(RPC_INVALID_PARAMETER, "Negative count"); if (nFrom < 0) @@ -2969,7 +2969,7 @@ UniValue setautocombinethreshold(const JSONRPCRequest& request) "}\n" "\nExamples:\n" + - HelpExampleCli("setautocombinethreshold", "true 500.12") + HelpExampleRpc("setautocombinethreshold", "true, 500.12")); + HelpExampleCli("setautocombinethreshold", "true 500") + HelpExampleRpc("setautocombinethreshold", "true, 500")); RPCTypeCheck(request.params, {UniValue::VBOOL, UniValue::VNUM}); @@ -2983,6 +2983,8 @@ UniValue setautocombinethreshold(const JSONRPCRequest& request) nThreshold = AmountFromValue(request.params[1]); if (nThreshold < COIN) throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("The threshold value cannot be less than %s", FormatMoney(COIN))); + if (nThreshold % COIN != 0) + throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("The threshold value must be an integer")); } CWalletDB walletdb(pwalletMain->strWalletFile); diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 383e5cd74..409f13ea9 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1651,9 +1651,9 @@ CAmount CWallet::GetStakingBalance() const { return std::max(CAmount(0), loopTxsBalance( [](const uint256& id, const CWalletTx& pcoin, CAmount& nTotal) { - if (pcoin.IsTrusted() && - pcoin.GetDepthInMainChain() - >= + if (pcoin.IsTrusted() && + pcoin.GetDepthInMainChain() + >= (Params().GetConsensus().NetworkUpgradeActive(chainActive.Height(), Consensus::UPGRADE_STAKE_MIN_DEPTH_V2) ? Params().GetConsensus().nStakeMinDepthV2 : Params().GetConsensus().nStakeMinDepth) ) { @@ -1810,7 +1810,7 @@ bool CWallet::GetMasternodeVinAndKeys(CTxIn& txinRet, CPubKey& pubKeyRet, CKey& CTxOut txOut = wtx.vout[nOutputIndex]; // Masternode collateral value - if (!CMasternode::CheckMasternodeCollateral(txOut.nValue)) + if (!CMasternode::CheckMasternodeCollateral(txOut.nValue)) { strError = "Invalid collateral tx value"; return error("%s: tx %s, index %d not a masternode collateral", __func__, strTxHash, nOutputIndex); @@ -1863,7 +1863,7 @@ bool CWallet::AvailableCoins(std::vector* pCoins, // --> populates { if (pCoins) pCoins->clear(); const bool fCoinsSelected = (coinControl != nullptr) && coinControl->HasSelected(); - + { LOCK2(cs_main, cs_wallet); for (std::map::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) { @@ -1876,9 +1876,9 @@ bool CWallet::AvailableCoins(std::vector* pCoins, // --> populates continue; // Check min depth requirement for stake inputs - if (nCoinType == STAKEABLE_COINS && - nDepth - < + if (nCoinType == STAKEABLE_COINS && + nDepth + < (Params().GetConsensus().NetworkUpgradeActive(chainActive.Height(), Consensus::UPGRADE_STAKE_MIN_DEPTH_V2) ? Params().GetConsensus().nStakeMinDepthV2 : Params().GetConsensus().nStakeMinDepth)) continue; @@ -2503,7 +2503,7 @@ bool CWallet::CreateCoinStake( if (WITH_LOCK(cs_main, return chainActive.Height()) != pindexPrev->nHeight) return false; // Make sure the wallet is unlocked and shutdown hasn't been requested - if (IsLocked() || ShutdownRequested()) return false; + if (IsLocked() || ShutdownRequested()) return false; nCredit = 0; @@ -2623,7 +2623,7 @@ CWallet::CommitResult CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& AddToWallet(wtxNew); // Notify that old coins are spent - + std::set updated_hashes; for (const CTxIn& txin : wtxNew.vin) { // notify only once @@ -3242,12 +3242,17 @@ void CWallet::AutoCombineDust(CConnman* connman) return; } - std::map > mapCoinsByAddress = AvailableCoinsByAddress(true, nAutoCombineThreshold * COIN); + // Make sure we don't break the settings saved in the old wallets where the autocombine threshold was saved incorrectly. + CAmount adjustedAutoCombineThreshold = nAutoCombineThreshold; + if (nAutoCombineThreshold < COIN) { + adjustedAutoCombineThreshold = nAutoCombineThreshold * COIN; + } + + std::map > mapCoinsByAddress = AvailableCoinsByAddress(true, adjustedAutoCombineThreshold); //coins are sectioned by address. This combination code only wants to combine inputs that belong to the same address for (std::map >::iterator it = mapCoinsByAddress.begin(); it != mapCoinsByAddress.end(); it++) { std::vector vCoins, vRewardCoins; - bool maxSize = false; vCoins = it->second; // We don't want the tx to be refused for being too large @@ -3270,13 +3275,12 @@ void CWallet::AutoCombineDust(CConnman* connman) nTotalRewardsValue += out.Value(); // Combine to the threshold and not way above - if (nTotalRewardsValue > nAutoCombineThreshold * COIN) + if (nTotalRewardsValue > adjustedAutoCombineThreshold) break; // Around 180 bytes per input. We use 190 to be certain txSizeEstimate += 190; if (txSizeEstimate >= MAX_STANDARD_TX_SIZE - 200) { - maxSize = true; break; } } @@ -3317,7 +3321,7 @@ void CWallet::AutoCombineDust(CConnman* connman) } //we don't combine below the threshold unless the fees are 0 to avoid paying fees over fees over fees - if (!maxSize && nTotalRewardsValue < nAutoCombineThreshold * COIN && nFeeRet > 0) + if (nTotalRewardsValue < adjustedAutoCombineThreshold && nFeeRet > 0) continue; const CWallet::CommitResult& res = CommitTransaction(wtx, keyChange, connman);