diff --git a/configure.ac b/configure.ac index bb08fe27c..905cb695b 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 2) define(_CLIENT_VERSION_MINOR, 1) define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 0) +define(_CLIENT_VERSION_BUILD, 1) define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2022) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 21a329c77..7596139db 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -70,114 +70,114 @@ static CBlock CreateGenesisBlock(uint32_t nTime, uint32_t nNonce, uint32_t nBits static Checkpoints::MapCheckpoints mapCheckpoints = boost::assign::map_list_of (0, uint256S("0000046879caeeaee24cbe95250a677cd08b0cc920e1f1bcac32f19e7256e92a")) - (19101, uint256S("dc706cb9d96491893aa101abf131f8473302f1288da8010c5c9addba28897d39")) - (38203, uint256S("e0d2ba0c834009d6658ce573131c838bbaa550f9897181daf2dd5fa19a1ea66c")) - (57305, uint256S("ede20e4e58eb4cd42929b2bacd98f882e2f3afac4f2d4f958513ac4e49aa87d9")) - (76407, uint256S("f45109b7f4e774732036acb16feb3ead63eee6aa8e18863e7a03c0b3c95be9e0")) - (95509, uint256S("bc781493cded8b30b30b0fc7f43abe304f254b5d26ea35790a751494609445dd")) - (114611, uint256S("345f6015d6ac0e9aed4a83791c0a7b57eeea515ac51002a7c9311f63877644e3")) - (133713, uint256S("51acc15b9ddbab574b2d4dd9183a2e4dbacbacf36f6e9ae83a4c53c70c6b8847")) - (152815, uint256S("06af4239b0518e6ca59e805ee50d7c21e47a950e41b13585a3e126e69d10cb54")) - (171917, uint256S("ad45ad845f390a3bd327f7d1be43733d7727f6551aaaf87bc8f4dfd8c1080832")) - (191019, uint256S("db07480f399f90184d554c4a26852a392ccbae802ea2eaeee9bfd8fa8835b8c3")) - (210121, uint256S("68d0d9d9136bee39618ac66321c99310516192a970629877c9c67ea5d721ee41")) - (229223, uint256S("8910b0c07882fc1a4557e836176019b5789d0e05d95d95a52a418cf5e00fbbae")) - (248325, uint256S("f7cb0d43fa1f79d9cc0c520acb287a23617b3cd69cb697927784fd8e391b2dcb")) - (267427, uint256S("03863e2081cc65c03aab28a036c7c1ff5665a25b57226b64e2f41cce9f881c65")) - (286529, uint256S("2ddde0d1eafd3cc8d2fc7bde43464c079b1ca760c1495c013d093659910a8026")) - (305631, uint256S("9e214860d45df9d004ada75608cd9d9dc545b3109c76979c673e8b63cbce7e33")) - (324733, uint256S("e642ff9a483bd32cfbfb8e1c489832c768549ed8ca95f92008b539f55e389254")) - (343835, uint256S("4ed965bf2f82c321e3fbb7c6f83820a3685cbacc59cfe216349e057d366c5681")) - (362937, uint256S("36876aa41e96107057e6523d7b0ff5aead2ddf1ff578ecc57a7ca4962907cd53")) - (382039, uint256S("0188a1261f010eb7048091c63455bb8b1ef4c20314547ca14020a7b299adc067")) - (401141, uint256S("99bd778174379841eb2aed80f1f39949e564581204986a4dcf0a182135fb7440")) - (420243, uint256S("5dffe2c15d823576e02b30a82e9713e877f247b2b843878585382520e35011eb")) - (439345, uint256S("164cd66795fb3631abeb845411f1ca10f94b393a51101b443885353dad7a8344")) - (458447, uint256S("e7b53a0c2b46bdf549ad12166f6796c35ccd384bb0884d46ec077fe6f599e361")) - (477549, uint256S("aeeeda3f2d8a4ca9763e5ef7605ae718f5fde547c80bc8ff5b120684dc75ef7e")) - (496651, uint256S("af2e901f5348b48c7a96a119c10f84af7e69739a1129da0acde398416b163db3")) - (515753, uint256S("c79b7dcd85c63b7116070becef9ec8f425316752b21c97a8b8c42e88236455f8")) - (534855, uint256S("7e603602f46f7b731dab2fa32c6665211049ce05b3cf7b52d614c51bec956526")) - (553957, uint256S("2678cdb56e0fc8721c1773e4553ac280ec2c61cc13349dff4745feaae005818b")) - (573059, uint256S("d6db07eacaef8fea0813bf52d677f88c0e334f89430b7824a15ff09a37a17ac9")) - (592161, uint256S("02a78ec0a4f61ed551e90d3498ca06633645162a132ae3c1d4fde279977f7b86")) - (611263, uint256S("c8fd061b7ae5362e356cb4e6ad1d69c1458bcb15716e039dcda2c6918604db71")) - (630365, uint256S("4e2406e4458c62af8dba1623759e1099742513393f6949a6616b1e6950dce23c")) - (649467, uint256S("61b0f25464bca7336d6d4fa32067afa52fdac5db22268f435326da3ed84bed5c")) - (668569, uint256S("ac1e56498bf7652c3682572223f9cb814f4f74edc81cc734854ad98a293134d5")) - (687671, uint256S("c949115e23eb1ae2039f5c31bf5b96c50c7cda4d32d9bc355679b57dd474684b")) - (706773, uint256S("4e243d6405cb8df3d37eba656777033a28464fb4b72f5b88469a69e15ef1e048")) - (725875, uint256S("dfb56d976e070d2e704bce074a24695d84e391d71dc982368085893d5a861481")) - (744977, uint256S("dfc857ecbf4e08113b9d8add1ff4b799a029db65ef5380d28e86281d16d9bff4")) - (764079, uint256S("5b34c33cbbb5d7c1ad5b96712abac5a512de9d004b259b87417a41067cfca0c4")) - (783181, uint256S("d5af13a96eeea23c1673a5901ec6f7d9890564164f64907bdbff6b08946fb3ca")) - (802283, uint256S("e395b80407ed2fc92dddd9634761fd782199ed9e0aa83ac02fad26fa0ca351cf")) - (821385, uint256S("372a5d1ecfefbb58390f7c222cad00bdb383955337cc4a518f153da1ec6ed9fc")) - (840487, uint256S("66752410d741535fca007ddd596a56d0ac3143e0eca58926a16c5309ca867526")) - (859589, uint256S("fd7056991cf9c8a3e93424d413a6bf7dd57d8534b8ab4344a0ddb2fb8e58d887")) - (878691, uint256S("a6380b4ce0c954c68aeb1d45c73cfec8d571fd9f2c0dd0b44b2263a97a593111")) - (897793, uint256S("630916a19ef62ae2974e487fbad97a3998c2bc80da10689e9aee8caf160b9c6e")) - (916895, uint256S("277261993f11889ba6bfce8575c1f5c027dcb32c8bf7e111530b8847e569172d")) - (935997, uint256S("66808f099a27f5823281ca6472248a2d91cd411e94e238a9d1d2eef12e7b95f6")) - (955099, uint256S("33178191592f0300a9f5c9d47d6af2f88ca32c775f86a9bbaf9bb5e629212e03")) - (974201, uint256S("fb61f2152ddaf604c0fe0c179359330297ec5db05f36150f51e4ef3304aa8a38")) - (993303, uint256S("3f605c2f3382d59d3cda157128fc91792b08b08fd0c040970eac8d4bdff8a91d")) - (1012405, uint256S("bc20ee4593c7363ae116b71be1300a1e6050e250e2d485c517acf5e6770eb4a2")) - (1031507, uint256S("86056a01fac833af0740c703f0efd726e745b343fa8731f2f74b1367ae2d93ff")) - (1050609, uint256S("566f68c6a906e71e0dad87c289eefb04f9b3d1ef07eeb4e4bab1a8f5a991ec75")) - (1069711, uint256S("80871927671dda45a3b96fccf3c0ee25d857365158abe031d42a01a48c61af34")) - (1088813, uint256S("0c530e6d329711c3a6075c8c86fb75d3cbdf9815795b317e770b7494c15aa812")) - (1107915, uint256S("ac621ce8194ba689f7491ef79a86b1e5e5d73b0a8db623f2cd405192e3818076")) - (1127017, uint256S("be4580f8739926fe768a25d7b802b9668d03f532ead9f10469c161b0ef025f2c")) - (1146119, uint256S("0528aaa502320c21bf72a0c350bbf5d1c56a8724b502e0c5fd2834664f3a39a2")) - (1165221, uint256S("fe290fd93fea2539772f75ffd77f1df7672cad95e3ed6b2eae38a04852431f6c")) - (1184323, uint256S("14caf42e80aace3476018d8ed00a5065ef7195e6f4e0fa2f86ead67ad177e208")) - (1203425, uint256S("9bf6521ea53c894f33cd92c1938177b8df104a68ee0bb9223fef6d1cdf93a839")) - (1222527, uint256S("72dc4c61e6b5bd02d632e053f462d0bcd05de69d09b73c02991e8f33dffde8b6")) - (1241629, uint256S("13f26a4f9a37b1cb202e7f34cab0f7044c0e516020e0915a1b6008d372295142")) - (1260731, uint256S("ecf4f6e6c1772c5b4d370616971cec46c37189774da170e0c2b4b1d8229cfdce")) - (1279833, uint256S("dbed16867ba024e10d1b71ba4d42c68c8aea0d58e10f05bc52485a0af95e491c")) - (1298935, uint256S("d2438626ba97aa23c1004a964939a379bddc768a61082de09c8ef02f00bdb930")) - (1318037, uint256S("f6de7dd26e793dd1d67a1926a5037d179b075abfcf39e87afd56acef4fbe7045")) - (1337139, uint256S("8a8595232677368a363639a3b00d55a4bb8597cbcfeecf1400b094173fe751cc")) - (1356241, uint256S("2abfe8a6151a9cd0d328fa3e1d5daf13485e7efec33f369aeb4937fe62ab55f0")) - (1375343, uint256S("60a3774bd916f4cc4cbb118def9849c8cf1b51cec87fd9b572116aef0e20e24e")) - (1394445, uint256S("13a0bf3405a5b21bf30b9b9cb8bfc185fc70429076216e7a99ccb287e97de543")) - (1413547, uint256S("9ff273c8b9fa5888b0026dcff8f774c8db4125f5bf553f6475b1c3f78664584e")) - (1432649, uint256S("acf1808ac89cafef0df80d8c33f46337af6f6b0ea16e0fd0676b0677cdefa843")) - (1451751, uint256S("f568bf04d432df20a4f4cb20fb3215c3ed865e4bbaea06a05c329881f1962394")) - (1470853, uint256S("d615b986f35aa6c23239affea022ed3645a78cd39d7e112b0acedfc68a4c28f1")) - (1489955, uint256S("8cfeac2c6f059a499390f83959d2419c1ba032b75332b41d53e8e56f5c3c0677")) - (1509057, uint256S("4a7b18952a0c67e3afa3737704621153c8264cfad5508eeba4de00fdd28b9eed")) - (1528159, uint256S("a089aa7811f7a9de1e5904e594350308dc056d415f9837b0b413ae9627e12a6a")) - (1547261, uint256S("522e38957b513fc0d603751e625878f08d4c931bf155c5aeea27393db5043fc6")) - (1566363, uint256S("32ee2ef22ebe2b0004eb6594b8b57e6d920e8590f3be96639bc2e43154a5f826")) - (1585465, uint256S("8875be9de92fa681d77d748f2b32769477706c4c4f034b14a8d4dbe0c90809ee")) - (1604567, uint256S("127daafe57d88276b816fec150b095408d13558cf657238c68cc7bca6110cd97")) - (1623669, uint256S("b42cfcaa77250bda88b0452a1656b7f3ad8ce91bded117c1489a2e24852703cd")) - (1642771, uint256S("4c8882e503656583f9c7cb31000e0b5b5fb942fa458350e2c934baf05bfcd4f4")) - (1661873, uint256S("f212a18a6330fb1ed3492125d2b5402a16e068c01708e893c0b176f936ff70b0")) - (1680975, uint256S("4fd5df7b685286ba09b78ae9332025c1b22df784a9f554d413afbaaef06429b3")) - (1700077, uint256S("daeb9c8b54df59da629885b087acf2e62767c2168f880fe215279a77b4b4934e")) - (1719179, uint256S("7be6e6a77a3f04bc80828e7c639b9cb9131cd7034fc2c747ffe0323bef0df712")) - (1738281, uint256S("11145a564c4e2efae2bc561218584d307836c6174f23259bfd004e8dcf6148ac")) - (1757383, uint256S("7ff7d58fa620ed4987ba9140c6624a897fb5f088c21c8f2ca2716ce5f6b4aae3")) - (1776485, uint256S("fc65e9fccc1e3378636197fee0793784d8b7521d37788519cbffebbffe4e73c3")) - (1795587, uint256S("2794d9872d44f8d92a804ad690383ac7e40a17c3c47b0bd43749319d01d7bb99")) - (1814689, uint256S("43aa84995a51a936875be83f90a5527a9bbd811cc87b26ec272805fa063b2267")) - (1833791, uint256S("93f01eb1ca693c8f71648caaeb4c973ac46430a7206ab4b699d023724d018fa2")) - (1852893, uint256S("398bc484883bd468f298795b41040919d4442a61e0ccefbb15eee31a76484ae7")) - (1871995, uint256S("bf1535589b801fc5fb07e4d5d2d18347b636a10d2b13cf16ce3771aa9238536f")) - (1891097, uint256S("53508a9b0a036ba6468b32c4d599ea5bb81ad35863cdaec4dcd0095fa1b5556c")) - (1910199, uint256S("96d3feb1bf0a4d8356313af3d00e697cf0815b18afee0e01baac505c4c3c8eb2")) + (20073, uint256S("fa600daa8f13d0a5554c213a2da83b511036e04957d4dde3d2e9d4e3238f8b82")) + (40147, uint256S("6eff9ab273866a3e5804beb842c436cd6caa97bd01367d3007474a5d35bf3d1e")) + (60221, uint256S("233bedb36ca0ddc669ef07ad07d9926027de023140e9351808aefe43f119ca3d")) + (80295, uint256S("4a82520962b33ef8823166471ae789f8d84ad6f346f2b1f46b25de1af5897c58")) + (100369, uint256S("d4f7447aa63d2ac5a8af4ce00f6ee5ff9e197bc6d7374a0014d04e0b913b7ee6")) + (120443, uint256S("ee15feb6003d5184a922173d35d3b34d0c5403617a22261b7bcfb457763335f6")) + (140517, uint256S("e825c902d4d0c343d0219cab886bfe2fa4700c6e007d531d3d0392f14424c3d0")) + (160591, uint256S("56e68322de3ad917b8e3fd631dc29b4b4454f0dfe8b653b2665930af11010e1d")) + (180665, uint256S("63360d95c4d3de0bef30a47be244ed7bba901e7c5578aad0244d42e205d3709e")) + (200739, uint256S("0b3fb90e9985a731710b49666a64027ae5ee31cc8f01ba8f4701adf65860d0c4")) + (220813, uint256S("6dc987e8c289405fb9b7c2338eb3ed9168ef25ab2c7793388453f9d34c7ad865")) + (240887, uint256S("5cbcda7385ff9dcbc021093882148d104dd3633d148503327b21f2e2c21d0f90")) + (260961, uint256S("6b91597e7bf3a6e34f1a3661fd1d26cca4ec5fe1bd05ad06db3ffca52d162ddb")) + (281035, uint256S("5aa48ddf6172b2d91eaa96988cd43742a70c6af2c696a8e0e7456499da459e89")) + (301109, uint256S("251b0c7fd478e017d98e4c3e83d30e4ac50d4975c0f39165f207daad96ba7ce1")) + (321183, uint256S("8437caaf38d0682f94d92fdb84bd134383b96e0e9bebab1474f228cea5c844f2")) + (341257, uint256S("b5d2da3e53381460311390ef590ede76da77a037842bb1ba930394f6db89ff81")) + (361331, uint256S("ed659709b29ea7247f602a3047be50af77319e2d381b0dd4a62c0dad3161a501")) + (381405, uint256S("f94f9149dbebcc55d299bdbaabd7b4a602592419b86036858e0bd65df7e29f75")) + (401479, uint256S("8f4641096176ca71dd4a1b13dd19b39ae6abdcbf1c777b66f8a63f544d93a1c8")) + (421553, uint256S("8912fa18e49e0070dafe74c9f33d5cc502f8caed4db768f5952ad2668ffdf28b")) + (441627, uint256S("2989b9838930086080a0cef0fd2bc8723076006cdf178ab9da64418f9ae79fd4")) + (461701, uint256S("91921b0c7f96cb8916824f63dc798f1e4abbfeb467e760aca077f0dce005dd95")) + (481775, uint256S("30db6d69e7f99520f9325e3f539d75d14b0c5c063263b5f62d30531b16aa9275")) + (501849, uint256S("1062a673b0f7e34a64d4e5d158f49ee98c712369ce32aa2d9f6f7f6ad305c63f")) + (521923, uint256S("50ad3fff9c82da796c78ed4c6f1d3b5886da2a7815a5e0d3da98da9095bf9618")) + (541997, uint256S("046a865a492ce5f979b09cec9ba07d9eacec06f115d42dc921d524a24f3529fa")) + (562071, uint256S("4030d4150e7ab653e48e0add61a439cf8dc213db45b1de21fec8333bdddd9360")) + (582145, uint256S("9bd0f394548bff63ba5d8d13c65f4563ef23ec7a2b5fd8e9a09af592acffec5a")) + (602219, uint256S("e1bbe9175f15002aa6cea5096350bc7dc8bb89b035de6d4803c12d7a1a0d4152")) + (622293, uint256S("33e9943ce92c887e4f4c0329e7bb70b4fb9c942d5c86a85cf98104ea438b0602")) + (642367, uint256S("89cab068f50616c97f08b18ceda88d41419912c542810498551a5e59448c15f0")) + (662441, uint256S("cc374e51c6ad0fa338df360d67b053bf2d6b31d12f5821f4aca187106be01cec")) + (682515, uint256S("9d748dffcad7b213ae7cf3536439078eadefefb989b6a77e8c354173062b2de8")) + (702589, uint256S("2b0f093b87c07481ea4a3c480d051aa55bbc5c706bde4f6c615b3ed0d1eb68ae")) + (722663, uint256S("dc8fc65d5d96a456d785de7c8b76ad5ccd8f119e538afdc473a303f87bc37a6f")) + (742737, uint256S("81105aa547c77d17b0d32930d8eca50f0b0e41488806facee0b831c86e947821")) + (762811, uint256S("ce38286956caca0ee860b5490441ea4f011e2444e6208ad844dace63bb5d3f4f")) + (782885, uint256S("1a1e8cef6c01963274ab611c8daf59f107cc8876666c481d5af5aca4ea8f7239")) + (802959, uint256S("75a570cbf1809a6b0fb270d77f8f238a425ef97587413e7d837057b228c2f08c")) + (823033, uint256S("1b23a7a80c4cf63f59de9abdd4fd152fda03a7b47706c9e7e9ccd166314357ce")) + (843107, uint256S("072e381bc5635d5f6f250620a562c9daa10b4deb9da12857035514cbfe61b8f3")) + (863181, uint256S("1de8e770a077a36ffa2e7bb1f0c511e852f375422820863186e93f39d97b5321")) + (883255, uint256S("33f202c918c63f70567997b0e3e425d87ff328e355eceb10ba9c2a1afa01f340")) + (903329, uint256S("f2d20bc76ed6d0fc99902e10de08140f7c8abe97ce32c8cb9042219b93f677e3")) + (923403, uint256S("ec6c5e1d4e42099fcfc75b73cd1384191d70c05488c7edf72c394b4cfdeda7fb")) + (943477, uint256S("90b93b6fde6c625c9597802379f5283f094b28767c0811993dfa420309926961")) + (963551, uint256S("d57ad33898c10b7ffd31baddd6bf7a790dbd5567993c2fc3bdaa8492549c8eea")) + (983625, uint256S("d271eb86755667ac9d2fc2aed5582a36a0b6e4770d1250e7b53e89abf9d7674d")) + (1003699, uint256S("8311e1c9c48bf0d1a6380340263adfccc4bf6449984d75ae4b315dd0bec013a8")) + (1023773, uint256S("e3994594baf41c1312318e8adbee7365556cef1e53cf64e39dbfb9a31ec2b2ff")) + (1043847, uint256S("824e3f83876293164774c6fb4e41f78d42c1f4e4bef068f2ba6c5962e62c7a46")) + (1063921, uint256S("5896661216557e7f6e70187da8a0f1aa1deabdb470b1e5e6e8731d2f3b1b63e2")) + (1083995, uint256S("28964546ab67486ec7306b97485403e7fc2d8d2d7ce80eb116966a3584c1cdaa")) + (1104069, uint256S("9baba3596d789ac022d95fab289be8695b399f43440209f90a021d7df2fa3991")) + (1124143, uint256S("eb829908a25819270043ef75549256b5f1b936bcc216be391c6d2962ec95ea42")) + (1144217, uint256S("2f96e990db90d0e7f1e2f559c2627b14f4bea5cc241bdf7b5d380dcb64a404a7")) + (1164291, uint256S("2c812c22397de88e1ec0c9af171769eecb6e9e1f50345cce0a17b7a72c65ba62")) + (1184365, uint256S("999591188c35e30441f605277e2790352c1a2a459b14ef2f191687e6e6506f23")) + (1204439, uint256S("aaa2169b37306733b6e3ac420426c053e2342dbaa85fd65ea4bb9324f07971c5")) + (1224513, uint256S("a423c4de51af94a52eee57ee4ed5d6e3388fab4bd7bddcbea13fae4f63549204")) + (1244587, uint256S("da860783ff921e123d16d87765213bb2f9e1e27f980d71e383590cfa722d826d")) + (1264661, uint256S("26a3b8425784b715f737fd6912050e2585a73fed80693968fffdadc881c95007")) + (1284735, uint256S("d79539ed85fbd4d758b51c2e1e162d860697b5ec457f613cc0dd1237462cf222")) + (1304809, uint256S("8544515b386b4c08c6b2548bba2cc7e3933c8efc2ab66a36a5f50a9c9f81aac2")) + (1324883, uint256S("33d5ce1ae6359c37fe4d46fafd313a1225ed613a0ff27d1cb3fb8b95632cdc5a")) + (1344957, uint256S("1f8fe49c1ed5814aa14ab3b20f298d1bc6251f41be0e9275995154fec57c7a09")) + (1365031, uint256S("5db19ace7ffed25e43e404d3a937290e799b6a6286942f8b5ddde0e768a7740b")) + (1385105, uint256S("9b2c9fe7a3cbd081e258f41a8e22257d3cd536780e7249d8f3c4e7ce8cf168ad")) + (1405179, uint256S("f87bc7e17833639d0cae3333e0ef7f89e29b190f87ef831fa8238e34f1ee99e8")) + (1425253, uint256S("c1455f19018dabb95c9954c9554eaf92b57d5e4606caaf8092a4631e761ec815")) + (1445327, uint256S("8c663b490752f17adf8efe465b0528eb8a652c917bfc13c0d86f6ac8c09270d0")) + (1465401, uint256S("f5256fd2ea18cd7cdf97d173dce4ce7a9acf7504e4fbb6c1d7e788fdc9ad71a9")) + (1485475, uint256S("3813b198509c395fdc715aebabc9555993512227957b6f1de2b76a6c123de0c8")) + (1505549, uint256S("4b4976c20e3297416da6bc55bb226648ea09e97256a14761243de1d1044a2c29")) + (1525623, uint256S("80745ca0106e578ea7ba61c8e0cdd362bdb8f2a490a30c4685546adea3e57aab")) + (1545697, uint256S("e5abc0a716b8993cbd743002333a61e659dd9b37e3c923e1e3a02673a48ca460")) + (1565771, uint256S("dab5376847d465e8bc6db6f89a9935c94703924a5a5b8bcb423cdd6d5ed67167")) + (1585845, uint256S("e0007f693dc1938f8f862a598fd7516f118b42ab89c2016d3e83187a28ac91be")) + (1605919, uint256S("177c69a4b3892f91c93655c35e58e94dc90fe9215570e88c42c53c3dcb3faa56")) + (1625993, uint256S("93d38c0af0b5311ffd4f817f89137869cc3ff268a9cc234fc508bd2427079d96")) + (1646067, uint256S("98ea126c29032480fee2ddb48d8554d8bbd976e6871e4d3a19d8b4cd1b2f1f4f")) + (1666141, uint256S("be927711aceae348c0aab507d54f3f652ee264effdb0db1e1c5d959f5bf4b959")) + (1686215, uint256S("de301149ece2ca197eb8707b2fe1469f1a32d350309113881363246fa8214d22")) + (1706289, uint256S("854b96a8a2ca9e5b5a774e3786f1d06351ad346760e0abcdab0d08d7667cfc5e")) + (1726363, uint256S("c7d38f8455a168b063cff34cb1a721f26c10e34b9d29e562a34e6df053f5123a")) + (1746437, uint256S("ae135ddd7c261d495ed57f4a56e71b0339fbb62868d38398ff86fa60d95fe07d")) + (1766511, uint256S("5790a12c2d3836bef56e9aa6e98a6d5bda4dcd6f8ddcacf5ca0d88a4e572b76b")) + (1786585, uint256S("30503f33dde80a3ee5dd31486af27a7a02b1027989e568c756a1917b60f972be")) + (1806659, uint256S("806259e794cc1d0b45e3711e5ad66d716c91f28ca96dfd3206a348da4b134b48")) + (1826733, uint256S("1385c974c6580e86f0a42cb043e29a8b47004b37188858d10e64d2fe5f63ab43")) + (1846807, uint256S("e5ab0252f3801f4e01125823b32e28cb965d7b3222317fa2f0380d6f7c349583")) + (1866881, uint256S("d82b8d3882d3d56cee87c07773140e1c66992a83660cf040f3ea081cd1a2af62")) + (1886955, uint256S("05514185dd34fdc0db52af77a68ed2b71009189ac38e6f73d07a20135626a8d3")) + (1907029, uint256S("147839121ae0f180fb50856ff085f61f83534c3ff5995d6f3e75304e3a23d645")) + (1927103, uint256S("79bbd0420c15f0b0899b9109b8398d9279c5a87b8a01099ef05c162a794bb830")) + (1947177, uint256S("671c7741410f79b2f9a9920c46531dddd55d751ea303d4513c2fd7d4052d09f5")) + (1967251, uint256S("15ca838a6187883cd7d66187ebb36db42f77e9edafaf6f138e63db2640316bfb")) + (1987325, uint256S("54456065244ff216e591b52cd38baa855973a7485dbef43dab8b9810b90bf8de")) + (2007399, uint256S("9661ba0903f557765092a108fb3b359503198e07183b61c411c47e57c7e695c4")) ; static const Checkpoints::CCheckpointData data = { &mapCheckpoints, - 1686699360, // * UNIX timestamp of last checkpoint block - 4477697, // * total number of transactions between genesis and last checkpoint + 1692670155, // * UNIX timestamp of last checkpoint block + 4675514, // * total number of transactions between genesis and last checkpoint // (the tx=... number in the UpdateTip debug.log lines) - 2828 // * estimated number of transactions per day after checkpoint + 2826 // * estimated number of transactions per day after checkpoint }; 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 6ed656fc0..9187e3456 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 eskacoind 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 eskacoind with -deprecatedrpc=accounts. Also include balance in watchonly addresses (see 'importaddress')\n" - + "\nResult:\n" "amount (numeric) The total amount in ESK 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 420565896..d42125347 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);