{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":19352450,"defaultBranch":"master","name":"dash","ownerLogin":"dashpay","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2014-05-01T17:45:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11511719?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1720288342.0","currentOid":""},"activityList":{"items":[{"before":"4f5991f1511c02ab5354c889194eac0f56abbcb5","after":"1f113587fb3d894fc64ef28e5ae5a912de8450c5","ref":"refs/heads/develop","pushedAt":"2024-07-09T14:38:52.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6101: fix: cppcheck warnings\n\n3d8ff0cd2dac16bd884a3fa2cd85b8fccd1af2fd fix: cppcheck warning about coinst in rpc/coinjoin (Konstantin Akimov)\n63dfdd7d42460913ae23b1c698b1d0773c2fd832 fix: workaround for buggy cppcheck in masternode/utils (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n\n `cppcheck 2.11` on my localhost returns 2 failures, that are not caught by our CI, probably due to difference in version:\n\n ```\n src/rpc/coinjoin.cpp:73:28: warning: Variable 'chainman' can be declared as reference to const [constVariableReference]\n src/masternode/utils.cpp:0:0: warning: Internal Error. MathLib::toLongNumber: input was not completely consumed: 5s [cppcheckError]\n\n Advice not applicable in this specific case? Add an exception by updating\n IGNORED_WARNINGS in test/lint/lint-cppcheck-dash.sh\n ```\n\n ## What was done?\n Adds missing const, workaround for probably a crash in cppcheck 2.11.\n\n ## How Has This Been Tested?\n Run `test/lint/lint-cppcheck-dash.sh`\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n utACK 3d8ff0cd2dac16bd884a3fa2cd85b8fccd1af2fd\n PastaPastaPasta:\n utACK 3d8ff0cd2dac16bd884a3fa2cd85b8fccd1af2fd\n\nTree-SHA512: c4c7e839161a6eb8d7a25b48cd05914d94dc4e4a6d53cbd39728a74a39d626d9b533afd98a9803550d2754df5c86445e5157e0e48853af52ea5ea5cb2e15d97b","shortMessageHtmlLink":"Merge #6101: fix: cppcheck warnings"}},{"before":"38249a525c4f84ca7fe7cb60dcd75a6c79b3bfc6","after":"4f5991f1511c02ab5354c889194eac0f56abbcb5","ref":"refs/heads/develop","pushedAt":"2024-07-09T14:37:53.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6092: fix: mixing for partially unlocked descriptor wallets\n\nc94490839912e21965a01655fa24f837f037b4f6 refactor: simplify implementation of function CWallet::IsLocked (Konstantin Akimov)\n685cf34cb9d4505c0ff2980e515bfa7dbc8d3e81 fix: unlock descriptor wallet for mixing-only (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n As [noticed by kwvg](https://github.com/dashpay/dash/pull/6090#pullrequestreview-2153639183), mixing doesn't work with descriptor wallets if do \"unlock only for mixing\". This PR is aiming to fix this issue.\n https://github.com/dashpay/dash-issues/issues/59\n\n ## What was done?\n Removed default argument \"bool mixing = false\" from WalletStorage interface,\n Refactored a logic of CWallet::IsLocked to make it shorter, clearer and unified with bitcoin.\n\n ## How Has This Been Tested?\n A. Run Dash-Qt with descriptor wallet, run mixing, enter passphrase.\n The wallet is partially unlocked (for mixing only) - possible to see yellow lock in status. Mixing happens.\n B. Open \"send transaction dialog\", try to send a transaction: the app asks password to unlock wallet as expected.\n\n Though, I am not sure how exactly to test that **all** rpc are indeed locked when descriptor wallet is unlocked for mixing only.\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n LGTM, ~utACK~ light ACK c94490839912e21965a01655fa24f837f037b4f6\n kwvg:\n ACK c94490839912e21965a01655fa24f837f037b4f6\n PastaPastaPasta:\n utACK c94490839912e21965a01655fa24f837f037b4f6\n\nTree-SHA512: 236c895dd75042449282b051e90781ace1c941a3b2c34bb29ddadb6e62ba9c8d57c2a677ed98847630ff7fb6df4e14d2b59f3473d8f299ec104afeeb8103930c","shortMessageHtmlLink":"Merge #6092: fix: mixing for partially unlocked descriptor wallets"}},{"before":"154bdd43a00dca323260d3e51891e0e0f01854bb","after":"38249a525c4f84ca7fe7cb60dcd75a6c79b3bfc6","ref":"refs/heads/develop","pushedAt":"2024-07-09T14:12:53.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6096: feat: split type of error in submitchainlock - return enum in CL verifying code\n\n0133c9866dafa63c1eeda07c76243192f1cc9393 feat: add functional test for submitchainlock far ahead in future (Konstantin Akimov)\n6004e067693edc1118ae5748d67eedf5ed914dd0 feat: return enum in RecoveredSig verifying code, apply for RPC submitchainlock (Konstantin Akimov)\n130b6d1e969976fe0a08f409d4706fab0de39876 refactor: replace static private member method to static method (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n Currently by result of `submitchainlock` impossible to distinct a situation when a signature is invalid and when a core is far behind and just doesn't know about signing quorum yet.\n\n This PR aims to fix this issue, as requested by shumkov for needs of platform:\n\n > mailformed signature and can’t verify signature due to unknown quorum is the same error?\n > possible to distingush ?\n\n ## What was done?\n Return enum in CL verifying code `chainlock_handler.VerifyChainLock`.\n The RPC `submitchainlock` now returns error with code=-1 and message `no quorum found. Current tip height: {N} hash: {HASH}`\n\n ## How Has This Been Tested?\n Functional test `feature_llmq_chainlocks.py` is updated\n\n ## Breaking Changes\n `submitchainlock` return one more error code - not really a breaking change though, because v21 hasn't released yet.\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n utACK 0133c9866dafa63c1eeda07c76243192f1cc9393\n PastaPastaPasta:\n utACK 0133c9866dafa63c1eeda07c76243192f1cc9393\n\nTree-SHA512: 794ba410efa57aaa66c47a67914deed97c1d060326e5d11a722c9233a8447f5e9215aa4a5ca401cb2199b8fc445144b2b2a692fc35494bf3296a74e9e115bda7","shortMessageHtmlLink":"Merge #6096: feat: split type of error in submitchainlock - return en…"}},{"before":"50a3b7c552ef4ed6df61190345b5a234af6e91aa","after":"154bdd43a00dca323260d3e51891e0e0f01854bb","ref":"refs/heads/develop","pushedAt":"2024-07-08T23:44:46.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6104: fix: adjust incorrect parameter description that says there is a default that doesn't exist\n\n60e36b786a04374c2404190cfffd5a713a225708 fix: adjust incorrect parameter description that says there is a default that doesn't exist (pasta)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n This default doesn't actually exist in code.\n\n ## What was done?\n Remove default from text\n\n ## How Has This Been Tested?\n\n ## Breaking Changes\n None\n\n ## Checklist:\n _Go over all the following points, and put an `x` in all the boxes that apply._\n - [ ] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n UdjinM6:\n utACK 60e36b786a04374c2404190cfffd5a713a225708\n\nTree-SHA512: 658eb2cf101d0450619461b7ffe6069de5c04c1fdcca216713f9374cc1e60413ec9b96c3a2931fb69a4c2f8277dd6677100270960a58197da3b92dffb1e9e327","shortMessageHtmlLink":"Merge #6104: fix: adjust incorrect parameter description that says th…"}},{"before":"6e5d3f1d1fb5cefdbcb6b30560f82ab7d12044da","after":"50a3b7c552ef4ed6df61190345b5a234af6e91aa","ref":"refs/heads/develop","pushedAt":"2024-07-08T17:55:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6095: fix: createwallet to require 'load_on_startup' for descriptor wallets\n\na42e9df06fa0d0dd08fc58450d69cbbc8f3d1bf8 fix: createwallet to require 'load_on_startup' for descriptor wallets (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n\n RPC `createwallet` has changed list of arguments: `createwallet \"wallet_name\" ( disable_private_keys blank \"passphrase\" avoid_reuse descriptors load_on_startup )` since https://github.com/dashpay/dash/pull/5965\n `load_on_startup` used to be an argument 5 but now it has a number 6. Both arguments 5 and 6 are boolean and it can confuse an user: they may even not notice that something wrong when it meant to be \"load on startup\" but got \"descriptor wallet\" which is not expected.\n\n See also previous attempt to resolve issue: https://github.com/dashpay/dash/pull/6029\n\n ## What was done?\n To prevent confusion if user is not aware about this breaking changes, the RPC createwallet throws an exception if user trying to create descriptor wallet but has not mentioned load_on_startup. This requirement can be removed when major amount of users updated to v21.\n\n ## How Has This Been Tested?\n Run unit/functional tests\n\n Tested with CLI:\n ```\n $ createwallet \"tmp-create\" true true \"\" false true\n RPC createwallet would not accept creating descriptor wallets without specifying 'load_on_startup' flag. It is required explicitly in v21 due to breaking changes in createwallet RPC (code -8)\n $ createwallet \"tmp-create\" true true \"\" false true true\n {\n \"name\": \"tmp-create\",\n \"warning\": \"Empty string given as passphrase, wallet will not be encrypted.\\nWallet is an experimental descriptor wallet\"\n }\n ```\n\n ## Breaking Changes\n You can't more pass 'descriptor=NN' without https://github.com/dashpay/dash/pull/5965 which has not been released yet.\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n utACK a42e9df06fa0d0dd08fc58450d69cbbc8f3d1bf8\n PastaPastaPasta:\n utACK a42e9df06fa0d0dd08fc58450d69cbbc8f3d1bf8\n thephez:\n utACK a42e9df06fa0d0dd08fc58450d69cbbc8f3d1bf8\n\nTree-SHA512: bf57fed40d04a32e756e4f8bfabbe39c0cbf87275546c92f4efc19523bc3c5dd3ddc5a884d67285971dc301a6c5808bef979db52c35645ca2db0810046fe1bdc","shortMessageHtmlLink":"Merge #6095: fix: createwallet to require 'load_on_startup' for descr…"}},{"before":null,"after":"6e5d3f1d1fb5cefdbcb6b30560f82ab7d12044da","ref":"refs/heads/v21.0.x","pushedAt":"2024-07-06T17:52:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6090: fix: auto backup issue with descriptor wallets for CJ\n\nbebea4b9b676e2cc68ca04575f0e5683247b5ac1 fix: auto backup issue with descriptor wallets for CJ (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n Qt CoinJoin session has problems (https://github.com/dashpay/dash/pull/5579#pullrequestreview-1912946808):\n - Autobackup problems\n - False keypool depletion reporting\n\n https://github.com/dashpay/dash-issues/issues/59\n\n ## What was done?\n Disables check for \"remaining keys left\" and \"auto-backups\" for non-legacy wallet.\n\n ## How Has This Been Tested?\n Run unit/functional test\n Try to run CJ mixing for descriptor wallet.\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK bebea4b9b676e2cc68ca04575f0e5683247b5ac1\n\nTree-SHA512: 610551001d054c447ddca9451ac6d94f3d063ecf3ccfab437d99324efc5f99ff86e59d80a36f4ff4983d3c8107aa19292c021cb3210fcf51e79919387169c414","shortMessageHtmlLink":"Merge #6090: fix: auto backup issue with descriptor wallets for CJ"}},{"before":"85ba35c6f5aa55646243a808498b0e74fd251df2","after":"6e5d3f1d1fb5cefdbcb6b30560f82ab7d12044da","ref":"refs/heads/develop","pushedAt":"2024-07-02T13:48:08.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6090: fix: auto backup issue with descriptor wallets for CJ\n\nbebea4b9b676e2cc68ca04575f0e5683247b5ac1 fix: auto backup issue with descriptor wallets for CJ (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n Qt CoinJoin session has problems (https://github.com/dashpay/dash/pull/5579#pullrequestreview-1912946808):\n - Autobackup problems\n - False keypool depletion reporting\n\n https://github.com/dashpay/dash-issues/issues/59\n\n ## What was done?\n Disables check for \"remaining keys left\" and \"auto-backups\" for non-legacy wallet.\n\n ## How Has This Been Tested?\n Run unit/functional test\n Try to run CJ mixing for descriptor wallet.\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK bebea4b9b676e2cc68ca04575f0e5683247b5ac1\n\nTree-SHA512: 610551001d054c447ddca9451ac6d94f3d063ecf3ccfab437d99324efc5f99ff86e59d80a36f4ff4983d3c8107aa19292c021cb3210fcf51e79919387169c414","shortMessageHtmlLink":"Merge #6090: fix: auto backup issue with descriptor wallets for CJ"}},{"before":"f33474240e5e5799c7de01a291fd4325d0630a91","after":"85ba35c6f5aa55646243a808498b0e74fd251df2","ref":"refs/heads/develop","pushedAt":"2024-07-02T13:44:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6088: feat: add a marker experimental for descriptor wallets\n\n684503db6bf7e19ccae5c74c9118cbdb3eb70348 feat: add a marker experimental for descriptor wallets (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n Descriptor wallets pass most of functional tests now, but they are not really tested in-the-real-environment by multiple users.\n\n ## What was done?\n Add a marker \"experimental\" for 'createwallet' rpc, for create wallet UI form.\n\n ## How Has This Been Tested?\n Run and check\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK 684503db6bf7e19ccae5c74c9118cbdb3eb70348\n\nTree-SHA512: e843e5b8080c7cd4273ea532038f3ec65e0260419b2c2a3db07ee1fadd856a7ce47f367705b4ddb19c5fc91cee5a529a54d580dbf53428c3e5e8b433c96ec0c9","shortMessageHtmlLink":"Merge #6088: feat: add a marker experimental for descriptor wallets"}},{"before":"acc42267d4b3d9b1a7b9bc5d85f3b368f2d4407e","after":"f33474240e5e5799c7de01a291fd4325d0630a91","ref":"refs/heads/develop","pushedAt":"2024-07-02T13:39:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6089: fix: crash if try to upgradetohd descriptor wallet\n\ne708a4b047e6c28bfd6523e53fecc34f4504030c fix: crash if try to upgradetohd descriptor wallet (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n\n If `upgradetohd` is called for blank descriptor wallet it can cause a crash:\n ```\n Posix Signal: Segmentation fault\n 0#: (0x55A0C7658814) stl_vector.h:115 - std::_Vector_base >::_Vector_impl_data::_M_copy_data(std::_Vector_base >::_Vector_impl_data const&)\n 1#: (0x55A0C7658814) stl_vector.h:127 - std::_Vector_base >::_Vector_impl_data::_M_swap_data(std::_Vector_base >::_Vector_impl_data&)\n 2#: (0x55A0C7658814) stl_vector.h:1959 - std::vector >::_M_move_assign(std::vector >&&, std::integral_constant)\n 3#: (0x55A0C7658814) stl_vector.h:768 - std::vector >::operator=(std::vector >&&)\n 4#: (0x55A0C7658814) stacktraces.cpp:777 - HandlePosixSignal\n 5#: (0x744F89C42990) libc_sigaction.c - ???\n 6#: (0x55A0C7789926) scriptpubkeyman.cpp:418 - LegacyScriptPubKeyMan::GenerateNewHDChain(std::__cxx11::basic_string, secure_allocator > const&, std::__cxx11::basic_string, secure_allocator > const&)\n 7#: (0x55A0C77BEC2E) wallet.cpp:5033 - CWallet::UpgradeToHD(std::__cxx11::basic_string, secure_allocator > const&, std::__cxx11::basic_string, secure_allocator > const&, std::__cxx11::basic_string, secure_allocator > const&, bilingual_str&)\n 8#: (0x55A0C775B85F) rpcwallet.cpp:2839 - operator()\n 9#: (0x55A0C775BBB4) std_function.h:292 - _M_invoke\n 10#: (0x55A0C72D4BC2) univalue.h:17 - UniValue::operator=(UniValue&&)\n 11#: (0x55A0C72D4BC2) server.h:110 - CRPCCommand::CRPCCommand(std::__cxx11::basic_string, std::allocator >, std::__cxx11::basic_string, std::allocator >, RPCHelpMan (*)(), std::vector, std::allocator >, std::allocator, std::allocator > > >)::{lambda(JSONRPCRequest const&, UniValue&, bool)#1}::operator()(JSONRPCRequest const&, UniValue&, bool) const\n 12#: (0x55A0C76ED57C) basic_string.h:792 - std::__cxx11::basic_string, std::allocator >::~basic_string()\n 13#: (0x55A0C76ED57C) request.h:29 - JSONRPCRequest::~JSONRPCRequest()\n 14#: (0x55A0C76ED57C) interfaces.cpp:576 - operator()\n 15#: (0x55A0C723B3D9) std_function.h:292 - _M_invoke\n 16#: (0x55A0C73D4FFC) std_function.h:591 - std::function::operator()(JSONRPCRequest const&, UniValue&, bool) const\n 17#: (0x55A0C73D4FFC) server.cpp:609 - ExecuteCommand\n 18#: (0x55A0C73D4FFC) server.cpp:528 - CRPCTable::execute(JSONRPCRequest const&) const\n 19#: (0x55A0C72421FB) basic_string.h:223 - std::__cxx11::basic_string, std::allocator >::_M_data() const\n 20#: (0x55A0C72421FB) basic_string.h:264 - std::__cxx11::basic_string, std::allocator >::_M_is_local() const\n 21#: (0x55A0C72421FB) basic_string.h:282 - std::__cxx11::basic_string, std::allocator >::_M_dispose()\n 22#: (0x55A0C72421FB) basic_string.h:792 - std::__cxx11::basic_string, std::allocator >::~basic_string()\n 23#: (0x55A0C72421FB) request.h:29 - JSONRPCRequest::~JSONRPCRequest()\n 24#: (0x55A0C72421FB) interfaces.cpp:487 - executeRpc\n 25#: (0x55A0C6F37700) univalue.h:17 - UniValue::operator=(UniValue&&)\n 26#: (0x55A0C6F37700) rpcconsole.cpp:338 - RPCConsole::RPCParseCommandLine(interfaces::Node*, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator > const&, bool, std::__cxx11::basic_string, std::allocator >*, WalletModel const*)\n 27#: (0x55A0C6F38475) rpcconsole.cpp:444 - RPCExecutor::request(QString const&, WalletModel const*)\n 28#: (0x55A0C8064490) - ???\n 29#: (0x55A0C82E95B2) - ???\n Aborted (core dumped)\n ```\n\n ## What was done?\n Added a guard in UpgradeToHD that wallet is not descriptor wallet.\n\n ## How Has This Been Tested?\n Create wallet \"Blank\" + \"Descriptor\".\n Call rpc \"upgradetohd\" -> no crash\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK e708a4b047e6c28bfd6523e53fecc34f4504030c\n\nTree-SHA512: 1963606b52e9aed13ba0f4d27f5c2e590351970842333f54c39612d4dc2d47f0ad7ac87cbff2473d2b3544d1f21dded10f9d84c109c2224f4e8070309655b053","shortMessageHtmlLink":"Merge #6089: fix: crash if try to upgradetohd descriptor wallet"}},{"before":"d2bbff3927d13b4828c1aaff4d847b6f7634e68a","after":"acc42267d4b3d9b1a7b9bc5d85f3b368f2d4407e","ref":"refs/heads/develop","pushedAt":"2024-07-01T16:45:34.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6080: feat: bump protocol version to distinguish v21 from v20.1\n\n375838378a650f73ab602c16b308b2ebb6fdc47a feat: bump protocol version to distinguish v21 from v20.1 (pasta)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n See commit\n\n ## What was done?\n\n ## How Has This Been Tested?\n\n ## Breaking Changes\n None really; will require MNs to upgrade in order to not be banned\n\n ## Checklist:\n _Go over all the following points, and put an `x` in all the boxes that apply._\n - [ ] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nTop commit has no ACKs.\n\nTree-SHA512: c4a61e3c9a1ccda9b00a8982eaaff6ea7672bf59d9538342b0e45a16977554224b44b34db48d3355d28e2b26a01ab3133a5e0c38bb00a3d7a1410cfd1fcfc4ae","shortMessageHtmlLink":"Merge #6080: feat: bump protocol version to distinguish v21 from v20.1"}},{"before":"c1de83bf8f53baa6fa3d7352b1133c18b90589ed","after":"d2bbff3927d13b4828c1aaff4d847b6f7634e68a","ref":"refs/heads/develop","pushedAt":"2024-07-01T16:41:26.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6087: feat: stricter bestCLHeightDiff checks\n\n6c5246803d90623b8d2a7d76945ff62eea5229d3 test: add tests for both current and future behaviour (UdjinM6)\n4e86bda4dc024c3b91e4c5f3e4d70cf0c15a77be feat: stricter bestCLHeightDiff checks (UdjinM6)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n Current `bestCLHeightDiff` checks are too relaxed\n\n ## What was done?\n Make`bestCLHeightDiff` checks stricter\n\n ## How Has This Been Tested?\n Run a node on mainnet/testet, run tests\n\n ## Breaking Changes\n Old nodes aren't aware of this new logic so it's activated via `mn_rr` hardfork\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n PastaPastaPasta:\n utACK https://github.com/dashpay/dash/pull/6087/commits/6c5246803d90623b8d2a7d76945ff62eea5229d3\n\nTree-SHA512: 2028d0ceb00a2270c92831ef38488d009d0bac47be4fc6a23ac93efdcf74847f1b9e99a529863fb4e14c65f120adda4e12c5b9e084d0f667d5f0fbaf80e3701d","shortMessageHtmlLink":"Merge #6087: feat: stricter bestCLHeightDiff checks"}},{"before":"3e342d797efa9c2389b2998430579ced0f38a639","after":"c1de83bf8f53baa6fa3d7352b1133c18b90589ed","ref":"refs/heads/develop","pushedAt":"2024-06-29T19:48:52.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6083: refactor: move Get*Index to rpc/index_util.cpp, const-ify functions and arguments, add lock annotations and some minor housekeeping\n\n8fb863008e26256000e3c6f846274e01b62bb664 refactor: inline sorting and make available through argument (Kittywhiskers Van Gogh)\n3e0fcf471fb5847fc0368faf13e2b5caaabe8e1e refactor: move accessing CBlockTreeDB global out of Get*Index (Kittywhiskers Van Gogh)\nee9d11214e6aa3d90adf6b1d3ec8892ac8c6ca3b refactor: move pair value swapping out of CTxMemPool::getAddressIndex() (Kittywhiskers Van Gogh)\n808842b1a364a8d259dc26c3aa3c79dd56a4a1a5 refactor: define all key/value pairings as *Entry and use them instead (Kittywhiskers Van Gogh)\n488f0474a89f4dd509883a97622cb1d857823dcb rpc: extend error-on-failure to GetSpentIndex (Kittywhiskers Van Gogh)\n9a6503d9e8d582b0b552be4937748ba6c2bdfd68 refactor: make CBlockTreeDB::Read*Index arguments const (Kittywhiskers Van Gogh)\n625982e8d2ed04327c3bfcb0e725ca466cbf4332 refactor: make CTxMemPool::get*Index functions and arguments const (Kittywhiskers Van Gogh)\n5ad49ad66890665bddce2eaa8a8b671693e445fe refactor: move Get{Address*, Timestamp, Spent}Index out of validation (Kittywhiskers Van Gogh)\n\nPull request description:\n\n ## Additional Information\n\n This pull request is motivated by [bitcoin#22371](https://github.com/bitcoin/bitcoin/pull/22371), which gets rid of the `pblocktree` global.\n\n The sole usage of `pblocktree` introduced by Dash is for managing our {address, spent, timestamp} indexes with most of invocations within `BlockManager` or `CChainState`, granting them internal access to `pblocktree` (now `m_block_tree_db`). The sole exception being `Get*Index`, that relies on accessing the global and has no direct internal access.\n\n This pull request aims to refactor code associated with `Get*Index` with the eventual aim of moving gaining access to the global out of the function. `Get*Index` is called exclusively called through RPC, which makes giving it access to `ChainstateManager` quite easy, which makes switching from the global to accessing it through `ChainstateManager` when backporting [bitcoin#22371](https://github.com/bitcoin/bitcoin/pull/22371) a drop-in replacement.\n\n Alongside that, the surrounding code has been given some TLC:\n\n * Moving code out of `validation.cpp` and into `rpc/index_util.cpp`. The code is exclusively used in RPC logic and doesn't aid in validation.\n * Add lock annotations for accessing `pblocktree` (while already protected by `::cs_main`, said protection is currently not enforced but will be once moved into `BlockManager` in the backport)\n * `const`-ing input arguments and using pass-by-value for input arguments that can be written inline (i.e. types like `CSpentIndexKey` are still pass-by-ref).\n * While `const`ing `CTxMemPool` functions were possible (courtesy of the presence of `const_iterator`s), the same is currently not possible with `CBlockTreeDB` functions as the iterator is non-`const`.\n * Extend error messages to `GetSpentIndex` to bring it line with other `Get*Index`es.\n * Define key-value pairings as a `*Entry` typedef and replacing all explicit type constructions with it.\n * Make `CTxMemPool::getAddressIndex` indifferent to how `CMempoolAddressDeltaKey` is constructed.\n * Current behaviour is to accept a `std::pair` and construct the `CMempoolAddressDeltaKey` internally, this was presumably done to account for the return type of `getAddressesFromParams` in the sole call for the `CTxMemPool::getAddressIndex`.\n * This has been changed, moving the construction into the RPC call.\n * Moving {height, timestamp} sorting out of RPC and into the applicable `Get*Index` functions.\n\n ## Breaking Changes\n\n None expected.\n\n ## Checklist:\n\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas (note: N/A)\n - [x] I have added or updated relevant unit/integration/functional/e2e tests (note: N/A)\n - [x] I have made corresponding changes to the documentation (note: N/A)\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n PastaPastaPasta:\n utACK 8fb863008e26256000e3c6f846274e01b62bb664\n UdjinM6:\n utACK 8fb863008e26256000e3c6f846274e01b62bb664\n\nTree-SHA512: 425a383e8284bbd74a5e9bcda4a9d7988221197055f43faa591e6f0d579625cee28f6a6046dab951e7afa0c3e33af1778fb4bb5f0a2e1e5792fe0d9396897a14","shortMessageHtmlLink":"Merge #6083: refactor: move Get*Index to rpc/index_util.cpp, const-if…"}},{"before":"37e026a038a60313214e01b6aba029809ea7ad39","after":"3e342d797efa9c2389b2998430579ced0f38a639","ref":"refs/heads/develop","pushedAt":"2024-06-29T19:45:38.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6086: backport: bitcoin/bitcoin#27610: Improve performance of p2p inv to send queues\n\n489b44c64737d62cbad283ef75bcfab834b7b99d Merge bitcoin/bitcoin#27610: Improve performance of p2p inv to send queues (fanquake)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n Couple of performance improvements when draining the inventory-to-send queue:\n\n * drop txs that have already been evicted from the mempool (or included in a block) immediately, rather than at the end of processing\n * marginally increase outgoing trickle rate during spikes in tx volume\n\n ## What was done?\n Backport bitcoin#27610\n\n ## How Has This Been Tested?\n Run unit/functional tests\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n utACK 489b44c64737d62cbad283ef75bcfab834b7b99d\n PastaPastaPasta:\n utACK 489b44c64737d62cbad283ef75bcfab834b7b99d\n\nTree-SHA512: 4afca4705b0f9680d147f0bef006fb82a6fd9692fef898dd50aede8570d02b6fece367ec30ab2caa973279df28d90348006a1f78b550dd8b0f7e72dbcb1bba5b","shortMessageHtmlLink":"Merge #6086: backport: bitcoin#27610: Improve performance of p2p inv …"}},{"before":"f542e8e6ffc409f8bdfa971cfb1b0a479902eee1","after":"37e026a038a60313214e01b6aba029809ea7ad39","ref":"refs/heads/develop","pushedAt":"2024-06-27T22:37:14.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6074: backport: merge bitcoin#18344, #20867, #20286, #21359, #21910, #19651, #21934, #22722, #20295, #23702, partial bitcoin#23706 (rpc backports)\n\nb23d94b14f3f92da644f179ca08f035ade751d5f partial bitcoin#23706: getblockfrompeer followups (Kittywhiskers Van Gogh)\n7e5cc5e37544df09492fd8cdafdf588186636bf2 merge bitcoin#23702: Add missing optional to getblockfrompeer (Kittywhiskers Van Gogh)\nc294457b5295789b9d3ff67ed2de8632928a3671 merge bitcoin#20295: getblockfrompeer (Kittywhiskers Van Gogh)\n63ac87f01159da1c55b0afb6e561c7e59b85288e merge bitcoin#22722: update estimatesmartfee rpc to return max of estimateSmartFee, mempoolMinFee and minRelayTxFee. (Kittywhiskers Van Gogh)\n07e4c2cdd0af4ce603c97c9f7000ad83b76f14f5 merge bitcoin#21934: Include versionbits signalling details during LOCKED_IN (Kittywhiskers Van Gogh)\n960e7687d49e495426f896aa8cf70cf31693312d merge bitcoin#19651: importdescriptors update existing (Kittywhiskers Van Gogh)\n1f31823fedc1276c4248c2c819ab1117379d926f merge bitcoin#21910: remove redundant fOnlySafe argument (Kittywhiskers Van Gogh)\n69c5aa89479af20c2bdb0c02191617140efdae5e merge bitcoin#21359: include_unsafe option for fundrawtransaction (Kittywhiskers Van Gogh)\n169dce7e509cad653bc0bdfbac1107b8f47fc2c7 merge bitcoin#20286: deprecate addresses and reqSigs from rpc outputs (Kittywhiskers Van Gogh)\n7cddf70c5836c2b72eb42d1a1c6e09c6e997b5ea merge bitcoin#20867: Support up to 20 keys for multisig under Segwit context (Kittywhiskers Van Gogh)\n7c59923845d026ee89fd1a644395bb86d85bdf66 merge bitcoin#18344: Fix nit in getblockchaininfo (Kittywhiskers Van Gogh)\nec0803a0f5269487cab3d17b7eeb41ea98f400a2 refactor: align `TxToUniv` argument list with upstream (Kittywhiskers Van Gogh)\n\nPull request description:\n\n ## Additional Information\n\n * Closes https://github.com/dashpay/dash/issues/6000\n\n * `TxToUniv`'s argument list needed to be rearranged to match upstream as closely as possible (i.e. placing Dash-specific arguments at the end of the list to allow for code to be backported unmodified, relying on default arguments instead of having to modify each invocation to insert the default argument in between).\n\n This was due to a new `TxToUniv` variant being introduced in [bitcoin#20286](https://github.com/bitcoin/bitcoin/pull/20286)\n\n * The maximum number of public keys in a multisig remains the same. The upper limit for bare multisigs is and always has been `MAX_PUBKEYS_PER_MULTISIG` ([source](https://github.com/dashpay/dash/blob/19512988c6e6e8641245bd9c5fab21dd737561f0/src/script/interpreter.cpp#L1143-L1144)), which has always been 20 ([source](https://github.com/dashpay/dash/blob/19512988c6e6e8641245bd9c5fab21dd737561f0/src/script/script.h#L28-L29)). The limit of up to 16 comes from P2SH overhead ([source](https://github.com/dashpay/dash/blob/19512988c6e6e8641245bd9c5fab21dd737561f0/src/script/descriptor.cpp#L877-L880)) and that hasn't changed.\n\n In effect, what [bitcoin#20867](https://github.com/bitcoin/bitcoin/pull/20867) does to Dash Core is change the error from \"too many public keys\" (as we'll be testing against the bare multisig limit) to \"excessive redeemScript size\" ([source](https://github.com/dashpay/dash/blob/19512988c6e6e8641245bd9c5fab21dd737561f0/src/rpc/util.cpp#L223-L225)) (which is the _true_ limitation).\n\n * Backporting [bitcoin#21934](https://github.com/bitcoin/bitcoin/pull/21934) required a minor change in the condition needed to emit `activation_height` as `has_signal` in the preceding block will evaluate true for both `STARTED` and `LOCKED_IN` while earlier it would only for `STARTED`.\n\n * In [bitcoin#22722](https://github.com/bitcoin/bitcoin/pull/22722), a `self.stop_node` had to be added to account for the absurd fee warning that a new test condition introduces.\n\n * [bitcoin#23706](https://github.com/bitcoin/bitcoin/pull/23706) is partial due to commits in it that rely on RPC type enforcement, which is currently not implemented in Dash Core.\n\n * `feature_dip3_deterministicmns.py` depends on the reporting of `addresses` to validate multisigs containing expected payees. There is no replacement RPC call to report the pubkeys that compose a multisig address. In the interm, the `-deprecatedrpc=addresses` flag has been enabled to allow the test to run otherwise unmodified.\n\n ## Breaking Changes\n\n * The following RPCs: `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, `gettransaction`, and REST endpoints: `/rest/tx`, `/rest/getutxos`, `/rest/block` deprecated the following fields (which are no longer returned in the responses by default): `addresses`, `reqSigs`.\n\n The `-deprecatedrpc=addresses` flag must be passed for these fields to be included in the RPC response. Note that these fields are attributes of the `scriptPubKey` object returned in the RPC response. However, in the response of `decodescript` these fields are top-level attributes, and included again as attributes of the `scriptPubKey` object.\n\n * When creating a hex-encoded Dash transaction using the `dash-tx` utility with the `-json` option set, the following fields: `addresses`, `reqSigs` are no longer returned in the tx output of the response.\n\n * The error message for attempts at making multisigs with >16 pubkeys will change to an \"excessive redeemScript size\" instead of the previous \"too many public keys\".\n\n ## Checklist:\n\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [x] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n UdjinM6:\n utACK b23d94b14f3f92da644f179ca08f035ade751d5f\n PastaPastaPasta:\n utACK b23d94b14f3f92da644f179ca08f035ade751d5f\n\nTree-SHA512: 659d9ba3a0a9f8594b307a7056ab172309d5a0d9efec605bc4b345f7e0fb1032ad303af9e8f51dbd6549e82d0b738ad41eae8a5b3aebf59081f39df0d4b5ec7c","shortMessageHtmlLink":"Merge #6074: backport: merge bitcoin#18344, bitcoin#20867, bitcoin#20286"}},{"before":"b0426f396dee8b0d5043bd547d245b27086cf82a","after":"f542e8e6ffc409f8bdfa971cfb1b0a479902eee1","ref":"refs/heads/develop","pushedAt":"2024-06-27T22:07:53.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6076: refactor: use new type of composite commands for governance NNN\n\n91aae7b2fef08f56e98a2658dd01d564add3701a refactor: use properly RPCHelpMan for governance RPC getsuperblockbudget (Konstantin Akimov)\ne92e5ef526d8a56c05700477a1a1531c66e689aa refactor: use properly RPCHelpMan for governance RPC voteraw (Konstantin Akimov)\n87b3011e558efba39f60da093f7b5ab41f8effc5 refactor: duplicated code between governance RPC list and diff (Konstantin Akimov)\nfaa61795fb26cbeb4109766b9e31af213f673d9c docs: move comments from the old code to the new implementation of governance RPC (Konstantin Akimov)\n39cd5e41b1e0bd13eab94f6884f19264893e673d fix: format code for rpc governance (Konstantin Akimov)\n006242114fdc682fbf57c115847e921af994395b refactor: use new style of composite commands for RPC gobject NNN (Konstantin Akimov)\n42e0b37cb2a7345ed03fcf5c7f6bf50707647b20 refactor: use properly RPCHelpMan for governance RPC getgovernanceinfo (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n See #6051\n\n ## What was done?\n Commands starting from 'governance ...' uses new a new way to make composite commands.\n\n This PR includes also a refactoring to remove common code between `gobject list` and `gobject diff`\n This PR includes also a refactoring to properly use RPCHelpMan for remaining governance's RPC.\n\n ## How Has This Been Tested?\n Run unit/functional tests.\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n utACK 91aae7b2fef08f56e98a2658dd01d564add3701a\n PastaPastaPasta:\n utACK 91aae7b2fef08f56e98a2658dd01d564add3701a\n\nTree-SHA512: 46c00df924a7d2c5af799c605bfc479034019eed346f9d487827b0688993aa712ba3dc528d9bdd09b64f0e07b6940078337ca1baf0a1355f87eb792406c676ca","shortMessageHtmlLink":"Merge #6076: refactor: use new type of composite commands for governa…"}},{"before":"1f00538ed601d3f8ed30355f63d2c97a42baa2b8","after":"b0426f396dee8b0d5043bd547d245b27086cf82a","ref":"refs/heads/develop","pushedAt":"2024-06-27T21:25:13.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6072: refactor: use new type of composite commands for protx NNN\n\n7b44af26ca6143ad408f30e1e5b26d0ce43f80db refactor: move common code inside protx_register_common_wrapper (Konstantin Akimov)\n89d5e26473d201fd0c5d62fff6b3ae754bca215a refactor: replace bunch of bool flags to the enum (Konstantin Akimov)\n1351bc9aad52a5780db6810dc6de318bf50d7646 refactor: move common code to the wrapper (Konstantin Akimov)\n8d4c28a983ac2fa663088ef5010f21f119f94a57 refactor: remove unused protx code from old implementation (Konstantin Akimov)\n2a837f8243364d611564115ee0d078ddf98b5384 refactor: use new composite for RPC 'protx NNN' (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n See #6051\n\n ## What was done?\n Commands starting from 'protx ...' uses new a new way to make composite commands.\n\n ## How Has This Been Tested?\n Run unit/functional tests.\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK 7b44af26ca6143ad408f30e1e5b26d0ce43f80db\n\nTree-SHA512: a5124121de93ba566bfa6c7c58a5217446301dd027839d137e056df00388282af6be0feb0b81ea0217310e12231a68e3b405fa82b66df93a3fb159d341d7a199","shortMessageHtmlLink":"Merge #6072: refactor: use new type of composite commands for protx NNN"}},{"before":"2b95b607c34a36aca587160ebc2dc65f822f0006","after":"1f00538ed601d3f8ed30355f63d2c97a42baa2b8","ref":"refs/heads/develop","pushedAt":"2024-06-27T21:01:20.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6084: fix: backport bitcoin#26909, allow for silent overwriting of inconsistent peers.dat\n\nadba60924c2bed51b802aa9faf898faa7d62bdf9 addrman: allow for silent overwriting of inconsistent peers.dat (Kittywhiskers Van Gogh)\nfbb2b51d75f281921fd6b7b3423afd25f73a324d merge bitcoin#26909: prevent peers.dat corruptions by only serializing once (Kittywhiskers Van Gogh)\n\nPull request description:\n\n ## Additional Information\n\n [bitcoin#22762](https://github.com/bitcoin/bitcoin/pull/22762) (backported as part of [dash#6043](https://github.com/dashpay/dash/pull/6043)) did away with then-existing behaviour of overwriting `peers.dat` silently if found corrupt with the rationale of preventing situations where the wrong file is pointed at or the file is written by a higher version of Core. Alongside a change in behaviour, refactoring also took place and further changes were built on top of them.\n\n Since then, there have been reports of an increasing number of \"Corrupt data. Consistency check failed with code -5: iostream error\" errors from builds based on `develop`. Reverting the pull request that introduced this change in behaviour is non-trivial due to the number of backports that build on top of the refactoring brought along with it.\n\n Nor were any other error messages found except for the one mentioned above. The tendency for `peers.dat` to corrupt itself has also been documented upstream ([bitcoin#26599](https://github.com/bitcoin/bitcoin/issues/26599)), with the issue marked as closed with the merger of [bitcoin#26909](https://github.com/bitcoin/bitcoin/pull/26909).\n\n Therefore, to remedy the above problem, alongside backporting [bitcoin#26909](https://github.com/bitcoin/bitcoin/pull/26909), to avoid inconvenience, instead of reverting all progress made from backporting (as the benefits of not overwriting `peers.dat` for having the wrong magic altogether, for example, is something that doesn't need to be reverted), only inconsistent `peers.dat` files will be overwritten and the action logged with no user intervention required.\n\n ## Breaking Changes\n\n None expected.\n\n ## Checklist:\n\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [x] I have made corresponding changes to the documentation **(note: N/A)**\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n UdjinM6:\n utACK adba60924c2bed51b802aa9faf898faa7d62bdf9\n knst:\n utACK adba60924c2bed51b802aa9faf898faa7d62bdf9\n PastaPastaPasta:\n utACK adba60924c2bed51b802aa9faf898faa7d62bdf9\n\nTree-SHA512: 3e09e7a77c82cce333fe9f02f137485e362f7816c450aef3d18950b9fd57276b4a21cbd1fe90b3eefd62ede0947970ed367c5917930a0656833bc38c0629e408","shortMessageHtmlLink":"Merge #6084: fix: backport bitcoin#26909, allow for silent overwritin…"}},{"before":"b316be76806cd7e2282e21c5fe3aa3e3954f674e","after":"2b95b607c34a36aca587160ebc2dc65f822f0006","ref":"refs/heads/develop","pushedAt":"2024-06-27T20:53:12.000Z","pushType":"push","commitsCount":17,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6079: backport: merge bitcoin#22433, #22464, #22845, #23007, #21920, #21430, #22133, #23269, #23494, #20201, #23947, #22088, #22093, partial bitcoin#20938 (build backports)\n\ncc55ebbf93db8eb959735506443f110af15e491c merge bitcoin#22093: Try posix-specific CXX first for mingw32 host (Kittywhiskers Van Gogh)\n638806b2cc9c72dc5f65c95e4d071e84ed6851cc merge bitcoin#22088: improve note on choosing posix mingw32 (Kittywhiskers Van Gogh)\n7ad0141d6617292826c978249fb20da119ceb88c merge bitcoin#23947: use host_os instead of TARGET_OS in configure output (Kittywhiskers Van Gogh)\n9126006c1897816c3982e09902b92147282838e5 merge bitcoin#20201: pkg-config related cleanup (Kittywhiskers Van Gogh)\n77862d8f5ffb249c892fbde297058efd3223bbca merge bitcoin#23494: minor boost tidyups (Kittywhiskers Van Gogh)\nef4b35060deeb743586470d54a582141bdfa2387 merge bitcoin#23269: remove redundant warning flags (Kittywhiskers Van Gogh)\n183d08f1d93901c3629a180db54d48f860b48107 merge bitcoin#22133: Make QWindowsVistaStylePlugin available again (Kittywhiskers Van Gogh)\n1fbdd009cd6ab6189521ce0b6904fa134309f22a merge bitcoin#21430: Add -Werror=implicit-fallthrough compile flag (Kittywhiskers Van Gogh)\ncae5496d0b8b9a48806dcfbb20a98c747b5d58da merge bitcoin#21920: improve macro for testing -latomic requirement (Kittywhiskers Van Gogh)\n78db324970df6e094096237e520719aef550c9a9 partial bitcoin#20938: fix linking against -latomic when building for riscv (Kittywhiskers Van Gogh)\n972b4198d791ec02ecf9354c441bd3e50741f2df merge bitcoin#23007: remove WSL install instructions and point to upstream (Kittywhiskers Van Gogh)\n54be58b4940406c2c6fe61e42046fde9d92e6039 merge bitcoin#22845: improve check for ::(w)system (Kittywhiskers Van Gogh)\n5b86009d40ccf733b098a53b1795784231e1279b merge bitcoin#22464: fix 32-bit narrowing warning in bench/peer_eviction.cpp (Kittywhiskers Van Gogh)\na42202d86fa1f661081e0db5ce6b972f38a5f68d merge bitcoin#22433: remove straggling boost thread_group related code (Kittywhiskers Van Gogh)\nabdf4d7b9fb23d70279f13f8af03d0b5cae1f885 build: use enough padding to match with labels in options printout (Kittywhiskers Van Gogh)\ne22f4216cbde3a4638b85a1a3da21b7ead40b0fe doc: clean up `build-windows.md` (Kittywhiskers Van Gogh)\n\nPull request description:\n\n ## Breaking Changes\n\n None expected.\n\n ## Checklist:\n\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**\n - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**\n - [x] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n PastaPastaPasta:\n utACK [cc55ebb](https://github.com/dashpay/dash/pull/6079/commits/cc55ebbf93db8eb959735506443f110af15e491c)\n\nTree-SHA512: f4cf6506120facabd5fc2e968c1b14a1fca02cf5858f63cce9e9743aa5327b18a7855b2584829eb568d6664a8e12c4bbfdda2f954ea44e29aaaba1776b3d1535","shortMessageHtmlLink":"Merge #6079: backport: merge bitcoin#22433, bitcoin#22464, bitcoin#22845"}},{"before":"4a520991db12ff1276aac0ea43a77fe9d400d52d","after":"b316be76806cd7e2282e21c5fe3aa3e3954f674e","ref":"refs/heads/develop","pushedAt":"2024-06-27T17:58:16.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6078: refactor: drop usage of chainstate globals in Dash-specific code, merge bitcoin#21866 (goodbye to a global chainstate)\n\n0213fbebe6b2ecde2c7217af6adfe114fb55058b merge bitcoin#21866: Farewell, global Chainstate! (Kittywhiskers Van Gogh)\ne3687f790a77f616966ad9feea8db1693fda2303 test, bench: remove globals vCoins and testWallet from test and bench (Kittywhiskers Van Gogh)\n0f4184cd70509000437613a532bc2bfc233fb623 refactor: drop usage of chainstate globals in spork logic (Kittywhiskers Van Gogh)\n208b1c079b282dba853f63674d8a41ac2e455626 refactor: drop usage of chainstate globals in masternode logic (Kittywhiskers Van Gogh)\n303c6bb4db8500ab1beaafa040cff32af4f4370d refactor: drop usage of chainstate globals in llmq logic (Kittywhiskers Van Gogh)\nfa20718b4f8a07af90b7d32b59fc04fd5722a758 refactor: drop usage of chainstate globals in asset locks logic (Kittywhiskers Van Gogh)\n21cc12c62ab3f964cfb0ea2172ba53ed8b9f4b5d refactor: drop usage of chainstate globals in governance logic (Kittywhiskers Van Gogh)\na475f5f4e5b982ecfe1da90bcbf1139349367ab4 refactor: drop usage of chainstate globals in coinjoin logic (Kittywhiskers Van Gogh)\ned56dbdbc4ce05e5fe79e6c9f582969eb0452c65 refactor: don't use globals to access members we can directly access (Kittywhiskers Van Gogh)\nc48c0e79f3ba20fccab5857c286fcb9cffedfb28 refactor: stop using `::ChainstateActive()` in `GetBlockHash` (Kittywhiskers Van Gogh)\n6abf7f8b6394295a152ac5df751cc59a81dbd1a8 refactor: stop using `::Chain`{`state`}`Active()` in `GetUTXO*` (Kittywhiskers Van Gogh)\nf6f7df37310adffbe773f3e1b8086b6e1233d72b rpc: don't use GetUTXOCoin in CDeterministicMN::ToJson() (Kittywhiskers Van Gogh)\n\nPull request description:\n\n ```\n Thank you, I'll say goodbye soon\n Though its the end of these globals, don't blame yourself now\n And if its true, I will surround you and give life to a chainstate\n That's our own\n ```\n\n ## Additional Information\n\n * In `CDeterministicMN::ToJson()`, `collateralAddress` is extracted by finding the `scriptPubKey` of a transaction output for a masternode, originally this used `GetUTXOCoin` but doesn't work for spent tranasction outputs (as they're _not_ UTXOs), so in [dash#5607](https://github.com/dashpay/dash/pull/5607), a fallback was introduced that looks through the general transaction set if going through the UTXO set yielded nothing.\n\n `GetUTXOCoin` accesses the active chainstate to get ahold of the UTXO set, this was done through globals. The removal of chainstate globals meant that whoever was calling `GetUTXOCoin` should have access to the chainstate handy. This is trivial in RPC code where `ToJson()` is used ([source](https://github.com/dashpay/dash/blob/5baa5222258f5cf2be0a3ce0f335dfd2fee931bc/src/rpc/evo.cpp#L1286)) through `Ensure`(`Any`)`Chainman`. Not the case in Qt code ([source](https://github.com/dashpay/dash/blob/5baa5222258f5cf2be0a3ce0f335dfd2fee931bc/src/qt/masternodelist.cpp#L369)), which is supposed to be given restricted access to information by the interface.\n\n As the fallback seems to be capable of fetching UTXOs and spent outputs, we can remove the `GetUTXOCoin` method and make the fallback the only method.\n\n * In `develop`, as of this writing, `CChainState` members `FlushStateToDisk` and {`Enforce`, `Invalidate`, `MarkConflicting`}`Block` were accessing their internals through the global, despite having direct access to them. As the globals they were calling are going to be bid farewell, they needed to be changed to access its members instead.\n\n The reason for going the roundabout way is unknown.\n\n * `CDSNotificationInterface` takes in a `ChainstateManager` (instead of the `CChainState` it actually requires) as at the time of interface initialization ([source](https://github.com/dashpay/dash/blob/5baa5222258f5cf2be0a3ce0f335dfd2fee931bc/src/init.cpp#L1915-L1918)), the active chainstate hasn't been loaded in yet as that happens further down ([source](https://github.com/dashpay/dash/blob/5baa5222258f5cf2be0a3ce0f335dfd2fee931bc/src/init.cpp#L1988-L1991)).\n\n As `CDSNotificationInterface::InitializeCurrentBlockTip()` is called well after it is initialized, we can resolve to the active chainstate in there.\n\n * As `GetCreditPoolDiffForBlock` requires access to `ChainstateManager` as `GetCreditPoolDiffForBlock` > `ProcessLockUnlockTransaction` > `CheckAssetLockUnlockTx` > `CheckAssetUnlockTx` > `ChainstateManager::m_blockman.LookupBlockIndex()` and `BlockAssembler` only has `CChainState`, it had to be reworked around `ChainstateManager`.\n\n ~~`CChainState` is passed as a direct argument while `ChainstateManager` can be fetched from `NodeContext`. Unlike `CTxMemPool`, which can be passed custom instances ([source](https://github.com/dashpay/dash/blob/5baa5222258f5cf2be0a3ce0f335dfd2fee931bc/src/rpc/mining.cpp#L381-L382), [source](https://github.com/dashpay/dash/blob/5baa5222258f5cf2be0a3ce0f335dfd2fee931bc/src/test/util/setup_common.cpp#L391-L392)), `CChainState`'s argument value is taken from `NodeContext::chainstate.ActiveChainstate()` and since we're now accepting `ChainstateManager` wholesale, we can dispense with accepting `CChainState` as an argument.~~\n\n ~~Changes to that effect have been made.~~\n\n AssumeUTXO introduces the need to be able to use different `CChainState`s, so this underlying assumption no longer holds true, the above described changes have been reverted. Asset locks code has been refactored to use `BlockManager` directly (which does come with the downside of needing to hold `cs_main` for longer than strictly necessary, this is why only asset locks uses `BlockManager` directly while other cases still benefit from having `ChainstateManager` as a whole).\n\n * `CMNHFManager::ConnectManagers` will be taking in a `ChainstateManager` pointer due to the `GetSignalsStage` > `GetForBlock` > `ProcessBlock` > `extractSignals` > `CheckMNHFTx` > `ChainstateManager::m_blockman.LookupBlockIndex()` chain.\n\n * The use of a bespoke `NodeContext` in `coinselector_tests` breaks tests if any interface call relies on a chainstate as `testNode` doesn't initialize one. For the most part, this was masked by `WalletTestingSetup` populating the chainstate globals from its own `NodeContext` even if the tests themselves preferred to use their own stripped down `testNode`.\n\n Though, removing the chainstate globals meant that they can no longer rely on `WalletTestingSetup`'s `NodeContext` to mask the barebones `testNode` global being used in the test (specifically, `addCoins` > `listMNCollaterials` > `ChainActive()` worked because `ChainActive()` accessed `WalletTestingSetup`'s `NodeContext` but when `ChainActive()` was gone and replaced with `NodeContext::chainman.ActiveChain()`, it uses `testNode`'s `ChainstateManager`, which doesn't exist, which causes it to crash).\n\n To remedy this, a5595b13 and 5e54aa9b from [bitcoin#23288](https://github.com/bitcoin/bitcoin/pull/23288) were adapted for the limited purpose of eliminating `testNode` and using `WalletTestingSetup`'s `NodeContext` instead. This comes with the unfortunate effect of skipping a lot of the refactoring, cleanups and optimizations done before and adapting the ones after them non-trivial.\n\n It is therefore best recommended that the commit be reverted and changes implemented step-by-step in a pull request at some point in the future. For now, it's kept around here for the sake of this pull request, which, if merged, should prevent more chainstate globals use from leaking into the codebase.\n\n
\n\n Pre-fix crash stacktrace: \n\n ```\n dash@71aecd6afb45:/src/dash$ lldb-16 ./src/test/test_dash\n (lldb) target create \"./src/test/test_dash\"\n Current executable set to '/src/dash/src/test/test_dash' (x86_64).\n (lldb) r -t coinselector_tests\n Process 395006 launched: '/src/dash/src/test/test_dash' (x86_64)\n Running 4 test cases...\n node/interfaces.cpp:711 chainman: Assertion `m_node.chainman' failed.\n Process 395006 stopped\n * thread #1, name = 'd-test', stop reason = signal SIGABRT\n frame #0: 0x00007ffff7a7300b libc.so.6`__GI_raise(sig=) at raise.c:51:1\n (lldb) bt\n * thread #1, name = 'd-test', stop reason = signal SIGABRT\n * frame #0: 0x00007ffff7a7300b libc.so.6`__GI_raise(sig=) at raise.c:51:1\n frame #1: 0x00007ffff7a52859 libc.so.6`__GI_abort at abort.c:79:7\n frame #2: 0x00005555563cba33 test_dash`assertion_fail(file=\"node/interfaces.cpp\", line=711, func=\"chainman\", assertion=\"m_node.chainman\") at check.cpp:13:5\n frame #3: 0x0000555555fb47aa test_dash`node::(anonymous namespace)::ChainImpl::listMNCollaterials(std::vector const&, unsigned int>, std::allocator const&, unsigned int>>> const&) [inlined] std::unique_ptr>& inline_assertion_check>&>(val=nullptr, file=, line=711, func=, assertion=) at check.h:62:13\n frame #4: 0x0000555555fb4781 test_dash`node::(anonymous namespace)::ChainImpl::listMNCollaterials(std::vector const&, unsigned int>, std::allocator const&, unsigned int>>> const&) [inlined] node::(anonymous namespace)::ChainImpl::chainman(this=0x000055555723e830)at interfaces.cpp:711:45\n frame #5: 0x0000555555fb477d test_dash`node::(anonymous namespace)::ChainImpl::listMNCollaterials(std::vector const&, unsigned int>, std::allocator const&, unsigned int>>> const&) [inlined] node::(anonymous namespace)::ChainImpl::listMNCollaterials(this=)::'lambda'()::operator()() const at interfaces.cpp:788:34\n frame #6: 0x0000555555fb474f test_dash`node::(anonymous namespace)::ChainImpl::listMNCollaterials(this=0x000055555723e830, outputs=size=0) at interfaces.cpp:788:34\n frame #7: 0x00005555565bcd07 test_dash`CWallet::AddToWallet(this=0x00005555571701e0, tx=, confirm=, update_wtx=, fFlushOnClose=) at wallet.cpp:886:46\n frame #8: 0x0000555555bed3ef test_dash`coinselector_tests::add_coin(wallet=0x00005555571701e0, nValue=0x00007fffffffc7c0, nAge=144, fIsFromMe=false, nInput=0, spendable=) at coinselector_tests.cpp:77:29\n frame #9: 0x0000555555bead3e test_dash`coinselector_tests::bnb_search_test::test_method() [inlined] coinselector_tests::add_coin(nValue=0x00007fffffffc7c0, nAge=144, fIsFromMe=false, nInput=0, spendable=false) at coinselector_tests.cpp:88:5\n frame #10: 0x0000555555bead20 test_dash`coinselector_tests::bnb_search_test::test_method(this=0x00007fffffffcad0) at coinselector_tests.cpp:278:5\n frame #11: 0x0000555555be6607 test_dash`coinselector_tests::bnb_search_test_invoker() at coinselector_tests.cpp:138:1\n ```\n\n
\n\n ## Breaking Changes\n\n * Backporting `coinselector_tests` changes are now much more annoying.\n\n * The following RPCs, `protx list`, `protx listdiff`, `protx info` will no longer report `collateralAddress` if the transaction index has been disabled (`txindex=0`).\n\n ## Checklist:\n\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [x] I have made corresponding changes to the documentation **(note: N/A)**\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n UdjinM6:\n utACK 0213fbebe6b2ecde2c7217af6adfe114fb55058b\n knst:\n utACK 0213fbebe6b2ecde2c7217af6adfe114fb55058b\n PastaPastaPasta:\n utACK https://github.com/dashpay/dash/commit/0213fbebe6b2ecde2c7217af6adfe114fb55058b\n\nTree-SHA512: 839f3f5b2af018520f330c4f4727622471d6225640c98853f28c3d88c4b6c728091b5e0c35b320e82979e5cd1357902fa1212afa4b6977967f05c636a25cc3b0","shortMessageHtmlLink":"Merge #6078: refactor: drop usage of chainstate globals in Dash-speci…"}},{"before":"fc11cd836289e1336b6e3fef9d8836f1de92e673","after":"4a520991db12ff1276aac0ea43a77fe9d400d52d","ref":"refs/heads/develop","pushedAt":"2024-06-25T14:46:57.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6066: feat: support descriptor wallets for RPC protx updateregistar\n\nc9a600e0fa1194f9dcc30114358d4d32fdbe65fe fix: linkage error - message signer better to be common code rather than libconsensus (Konstantin Akimov)\n8299b3b369bd27c0738c00edb4d7a3a468787918 feat: protxregistar implementation for descriptor wallets (Konstantin Akimov)\n6f45432f7643c9c3e884af9d5a80d58bda4273b7 refactor: removed unused SignSpecialTxPayloadByString (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n\n RPC `protx updateregistar` uses forcely LegacyScriptPubKeyMan instead using CWallet's interface.\n It causes a failures such as\n ```\n test_framework.authproxy.JSONRPCException: This type of wallet does not support this command (-4)\n ```\n\n ## What was done?\n New method `SignSpecialTxPayloadByHash` is implemented in interface instead exporting raw private key for some address.\n\n See https://github.com/dashpay/dash-issues/issues/59 to track progress\n\n ## How Has This Been Tested?\n Functional test `feature_dip3_deterministicmns.py` to run by both ways - legacy and descriptor wallets.\n\n Run unit and functional tests.\n\n Extra test done locally:\n ```diff\n --- a/test/functional/test_framework/test_framework.py\n +++ b/test/functional/test_framework/test_framework.py\n @@ -242,10 +242,10 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):\n\n if self.options.descriptors is None:\n # Prefer BDB unless it isn't available\n - if self.is_bdb_compiled():\n - self.options.descriptors = False\n - elif self.is_sqlite_compiled():\n + if self.is_sqlite_compiled():\n self.options.descriptors = True\n + elif self.is_bdb_compiled():\n + self.options.descriptors = False\n ```\n\n to flip flag descriptor wallets/legacy wallets for all functional tests.\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK c9a600e0fa1194f9dcc30114358d4d32fdbe65fe\n\nTree-SHA512: 00aea1cd9db3537b9a9dcdee096d47ea48337edeea3f52ad54aea91781678b8641ac2dd86b67f61f87e3912945bcb5361a42a3279b6c08bb8d9f096bed8fe842","shortMessageHtmlLink":"Merge #6066: feat: support descriptor wallets for RPC protx updatereg…"}},{"before":"6cb8dcd75bf61b7b088a605dfb937f6c953a18da","after":"fc11cd836289e1336b6e3fef9d8836f1de92e673","ref":"refs/heads/develop","pushedAt":"2024-06-25T14:27:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6077: test: functional tests for RPC getgovernanceinfo\n\n3971613285bb7ba39fe0f3aeb13449a5a2980d37 feat: functional tests for RPC getgovernanceinfo (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n https://github.com/dashpay/dash-issues/issues/63\n\n ## What was done?\n It adds functional test for `getgovernanceinfo`\n\n ## How Has This Been Tested?\n Run unit/functional tests\n\n Check output of `test/functional/test_runner.py -j20 --previous-releases --coverage --extended`\n ```\n Uncovered RPC commands:\n - cleardiscouraged\n - debug\n - getblockheaders\n - getmerkleblocks\n - getpoolinfo\n - voteraw\n ```\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK 3971613285bb7ba39fe0f3aeb13449a5a2980d37\n\nTree-SHA512: f2d93db9068a707f2b33dd841b14f266db226fc5e907f19a49cf7a856b840f0c2c1f521c462996888933bb0ed636c288db12b1d36978c124cb536ea1ab9f3892","shortMessageHtmlLink":"Merge #6077: test: functional tests for RPC getgovernanceinfo"}},{"before":"d2af69fb2b4f736585a4455936b76f2060d4e763","after":"6cb8dcd75bf61b7b088a605dfb937f6c953a18da","ref":"refs/heads/develop","pushedAt":"2024-06-25T13:46:09.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6065: fix: add missing checks for not nullptr in rpc for dash specific code\n\ndc154204708d7b165ee71c3ffaeb0c8c1421cf74 refactor: use EnsureConnman and EnsurePeerman when possible (Konstantin Akimov)\ndc01f07f7434b9120bc6d3a888918130fa692748 fix: add missing checks for not nullptr in rpc for dash specific code (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n There're some usages of unique pointers in RPC code that are not guarded by non-nullptr checks\n\n ## What was done?\n Added missing `CHECK_NON_FATAL` and refactored some of them to `EnsureConnman` and `EnsurePeerman`\n\n ## How Has This Been Tested?\n Run unit/functional tests\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK dc154204708d7b165ee71c3ffaeb0c8c1421cf74\n\nTree-SHA512: 0483d9208f38648cad55804791415b2facfd165514651463f9b48c44d1963be2888471bb6b1f51015bb9ddd160f272b86f42ee67aea66e640c410175412f5f75","shortMessageHtmlLink":"Merge #6065: fix: add missing checks for not nullptr in rpc for dash …"}},{"before":"5baa5222258f5cf2be0a3ce0f335dfd2fee931bc","after":"d2af69fb2b4f736585a4455936b76f2060d4e763","ref":"refs/heads/develop","pushedAt":"2024-06-25T13:44:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6058: fix: reset rounds to 0 when tx fee is not 0\n\n0365b06fabf0940f6b2a12add6977af3ad7d06ae fix: reset rounds to 0 when tx fee is not 0 (UdjinM6)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n > a coinjoin send with say 10x 1 + 0.001 denom -> 10 denom, and this doesn’t reset rounds to 0\n\n reported by @PastaPastaPasta 👍\n\n ## What was done?\n only real coinjoin tx can be a 0 fee tx with denoms, use that fact to avoid the edge case described above\n\n ## How Has This Been Tested?\n reproduced the issue\n\n ## Breaking Changes\n n/a\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n PastaPastaPasta:\n ACK 0365b06fabf0940f6b2a12add6977af3ad7d06ae\n\nTree-SHA512: b72ac5c01cc77c81945c3ae00b80fbdc4884acf3cfadc3fbcf4b78ff5655cce3b2ece4885478e5bf7476d351411df88b967d2baa3925155cffdc6054dd3bb502","shortMessageHtmlLink":"Merge #6058: fix: reset rounds to 0 when tx fee is not 0"}},{"before":"7ca4812b181530669248944bb08e530e313c6c41","after":"5baa5222258f5cf2be0a3ce0f335dfd2fee931bc","ref":"refs/heads/develop","pushedAt":"2024-06-24T16:54:48.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6045: feat: one more queue for \"external\" requests from 3rd parties\n\n241f0739329b78c384b0f3016753112c5a577858 feat: rpc external users are comma separated list (Konstantin Akimov)\n68def970ad4831daeee0691c8af2ee75adcf5cfb refactor: re-order arguments options alphabetically (Konstantin Akimov)\nc7efd56a07ff4a9dceca19a34c5a383437837e6f feat: rpc external users: use 2 queues but no extra threads (Konstantin Akimov)\nc575a5808ae0ba6d05df866e3fcc5345a7c346d9 feat: change handler to '/' for external users, use only rpc user name to choose queue (Konstantin Akimov)\nf1c1fd873e464e0d1480c9cb2e88ebc3c80678ae feat: implementation for /external handler for RPC (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n To avoid struggling to response to critical rpc requests, and split them from 3rd parties who uses a node as an external service, there are introduced one more queue of requests that will be served without throttling for instance consensus important rpcs\n\n ## What was done?\n new command line arguments:\n - `rpcexternaluser` - List of comma-separated usernames for JSON-RPC external connections. If not specified, there's no special queue is created, all requests in one queue\n - `rpcexternalworkqueue=` - Set the depth of the work queue to service external RPC calls\n\n ## How Has This Been Tested?\n Functional test `rpc_platform_filter.py` is updated to test new functionality\n\n ## Breaking Changes\n NA\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n utACK 241f0739329b78c384b0f3016753112c5a577858\n PastaPastaPasta:\n utACK https://github.com/dashpay/dash/commit/241f0739329b78c384b0f3016753112c5a577858\n\nTree-SHA512: 15b371f24f5302853b85419e2b20c29749d6aae1c98a541d7471f1d3a681643063302c2a5ecce04dfad2da9101ea69d2f08a7e0e11a28609c6011d78273c57a7","shortMessageHtmlLink":"Merge #6045: feat: one more queue for \"external\" requests from 3rd pa…"}},{"before":"91e9dd41bd506bf293dcccf5a002281323fbb0cb","after":"7ca4812b181530669248944bb08e530e313c6c41","ref":"refs/heads/develop","pushedAt":"2024-06-24T16:52:44.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6036: feat: skip governance checks for blocks below the best chainlock\n\n18328279ec20b8090a13f5948d1a6ed839c1dae3 fix: force mnsync to skip gov obj sync on reconnection (UdjinM6)\n08331bb95019ccf0eb6f9341c3fe773d9f429d39 fix: apply suggestions (UdjinM6)\n3c3489d7a1d3ac67f40ba262af070d69e012d611 test: add test (UdjinM6)\n41ab95dbf8baf7bc0ba4784acc5e89eeae5d9045 feat: skip governance checks for blocks below the best chainlock (UdjinM6)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n A node can miss governance trigger sometimes and then it would stuck not being able to sync any further. This issue can be fixed manually by resetting sync status and reconsidering the \"invalid\" block. However, that's inconvenient. Also, what it does under the hood is it simply disables some parts of block validation. We could do that automagically and more precise if we would trust ChainLocks instead.\n\n ## What was done?\n Skip governance checks for blocks below the best known chainlock, add tests.\n\n ## How Has This Been Tested?\n Run tests.\n\n ## Breaking Changes\n n/a\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n knst:\n utACK 18328279ec20b8090a13f5948d1a6ed839c1dae3\n PastaPastaPasta:\n utACK 18328279ec20b8090a13f5948d1a6ed839c1dae3\n\nTree-SHA512: 3cc4e2707e24b36c9f64502561667d0cb66eced7019db7941781ab1b84cfd267b3dab4684c71b059e074450ea76dc8e342744bffdd1ca1be6ccceb34b3580659","shortMessageHtmlLink":"Merge #6036: feat: skip governance checks for blocks below the best c…"}},{"before":"7f17ff8d8f301765241ea3d2e34d3affeb96e0c3","after":"91e9dd41bd506bf293dcccf5a002281323fbb0cb","ref":"refs/heads/develop","pushedAt":"2024-06-21T05:39:43.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6069: backport: bitcoin#19698, #20079, #20566, #20715, #20868, #21012, #21188, #21200, #21205, #21211, #21293\n\n4e81732c57b9513d0cc3de53d4a61918b064a3e7 Merge #21200: test: Speed up rpc_blockchain.py by removing miniwallet.generate() (Wladimir J. van der Laan)\n4ab6aa45989ac17183173d569369c7f32ec2a1ea Merge #21293: test: Replace accidentally placed bit-OR with logical-OR (Wladimir J. van der Laan)\n5a77c021887fe6f5bc3c4824637393b8bf7e5ec1 Merge #19698: test: apply strict verification flags for transaction tests and assert backwards compatibility (Wladimir J. van der Laan)\n259a767a38ba5b7930b087ce0feb592d546486fd Merge #21211: test: Move P2WSH_OP_TRUE to shared test library (MarcoFalke)\n91e0359df447c6f86e47496749f111abae85baf1 Merge #21205: build: actually fail when Boost is missing (fanquake)\ne3e69290a20c784880a6be69f8060ed9302c0b48 Merge #21188: scripted-diff: Remove redundant lock annotations in net processing (MarcoFalke)\n5ec99ff3b424c208db9bf00889683315751335de Merge #20715: util: Add ArgsManager::GetCommand() and use it in bitcoin-wallet (MarcoFalke)\n292861a9bcc089a5f4e3e44fdd90cc0ba9b7a466 Merge #20868: validation: remove redundant check on pindex (MarcoFalke)\ne5249fb307875c376e04f763971c15c07f1beced Merge #21012: ci: Fuzz with integer sanitizer (MarcoFalke)\n785f7310ed4f7d5ce4c1963284b7f0566b7a8a32 Merge #20079: p2p: Treat handshake misbehavior like unknown message (MarcoFalke)\n147d391c74c6ec15ab8b3f50cc6b6bae34638cc3 Merge #20566: refactor: Use C++17 std::array where possible (MarcoFalke)\n\nPull request description:\n\n ## What was done?\n Backports from bitcoin v22\n\n ## How Has This Been Tested?\n Run unit and functional tests\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [ ] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n PastaPastaPasta:\n utACK 4e81732c57b9513d0cc3de53d4a61918b064a3e7; LGTM\n UdjinM6:\n utACK 4e81732\n\nTree-SHA512: f18a73427b7f86bdc4cf9a3c2569b970d814a68705ed386196a143914860b52362365f24283f5b69bf1684ac35bbec5051a9728c475795ffdf3cf3a6ce217c00","shortMessageHtmlLink":"Merge #6069: backport: bitcoin#19698, bitcoin#20079, bitcoin#20566, b…"}},{"before":"77a025fb3b0ca0398db685d0a8c2f6763d08ccc9","after":"7f17ff8d8f301765241ea3d2e34d3affeb96e0c3","ref":"refs/heads/develop","pushedAt":"2024-06-18T02:57:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6062: feat: Let addrman handle multiple ports for all networks\n\n76b4300fdf422097b0b39460e80ee4da98247f03 fix: Let addrman handle multiple ports for all networks (UdjinM6)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n There is really no need to do have this restriction in `addrman`, we check `AllowMultiplePorts()` in `connman` which should be enough already. We can safely re-align `addrman` to its upstream implementation as suggested in #6043.\n\n ## What was done?\n Drop port \"discrimination\" in `addrman`, remove related tests.\n\n ## How Has This Been Tested?\n Run tests, run dash-qt on mainnet/testnet\n\n ## Breaking Changes\n n/a\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n kwvg:\n ACK 76b4300fdf422097b0b39460e80ee4da98247f03\n PastaPastaPasta:\n utACK 76b4300fdf422097b0b39460e80ee4da98247f03; is it really a fix or a refactor? doesn't change observable system behavior\n knst:\n utACK 76b4300fdf422097b0b39460e80ee4da98247f03\n\nTree-SHA512: 50363b5de7a6c6ad4de18c08b0a5cc31e89be8e5304f9684ce2cc609df4de07ff6d8d010556b5f6651c698e1a86960dba8005cc26fdb00bd03c856752d3e06ef","shortMessageHtmlLink":"Merge #6062: feat: Let addrman handle multiple ports for all networks"}},{"before":"30381acc76e5ec0edacf0325e2a0fc0088a47253","after":"77a025fb3b0ca0398db685d0a8c2f6763d08ccc9","ref":"refs/heads/develop","pushedAt":"2024-06-18T02:57:03.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6053: trivial: add a missing dash-specific files in util/ to linter lists\n\nfbffe06dad6f3dd1e257950f6f304d4a5de414cf fix: suppress lint warnings for edge due to both missing epoll and kpoll (Konstantin Akimov)\nb799683d6058ef02231f563544ff7fcc9864aef8 fix: pass reference instead copy of argument in util/edge (Konstantin Akimov)\n9d941aacb9b4c608f7aad29604be24e92ddc48d2 fix: removed unused assigned (Konstantin Akimov)\nd9e2e47685ba4a3463645fa0016030879976d8ef fix: add a missing file util/wpipe to linter lists (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n Some source files in src/util is missing to specify as dash specific for linters\n\n ## What was done?\n Added to list of dash's linters\n\n ## How Has This Been Tested?\n Run `test/lint/lint-all.sh`\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n utACK fbffe06dad6f3dd1e257950f6f304d4a5de414cf\n PastaPastaPasta:\n utACK fbffe06dad6f3dd1e257950f6f304d4a5de414cf\n kwvg:\n utACK fbffe06dad6f3dd1e257950f6f304d4a5de414cf\n\nTree-SHA512: 05bd40f987a93b47ca939f37d6e5b62e2044f2acce7a6ea6c361594eace808da17b17e0149095daecd0fb5418c6cbedbc70ad07ac3b7a1156a94188b04c2fd00","shortMessageHtmlLink":"Merge #6053: trivial: add a missing dash-specific files in util/ to l…"}},{"before":"692a076aa330992ba3d3c58f171e2108cdff1255","after":"30381acc76e5ec0edacf0325e2a0fc0088a47253","ref":"refs/heads/develop","pushedAt":"2024-06-15T17:02:57.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6056: backport: trivial 2024 06 11\n\nfb8a4db8f67966a157e24ce96144127200b4a7ee Merge bitcoin/bitcoin#26717: test: Improve `check-doc.py` pattern (MarcoFalke)\n349cad2865627c8de6a5e59535e4cc0e37c3bdfc Merge bitcoin/bitcoin#26708: clang-tidy: Fix `modernize-use-nullptr` in headers (MarcoFalke)\n6bf786d168dfa05fc787da77478421b9781484d6 Merge bitcoin/bitcoin#25735: net: remove useless call to IsReachable() from CConnman::Bind() (fanquake)\n012b0b71691b7619fb6b79984b00b3ab5afd1ab7 Merge bitcoin/bitcoin#24258: test: check localaddresses in getnetworkinfo for nodes with proxy (MarcoFalke)\nc67f527b0bfdd07b6c2b3c03fc29cfe2911d8065 Merge bitcoin-core/gui#448: Add helper to load font (Hennadii Stepanov)\n8e0abeb1c15c46526eda448f469ca60aea466a59 Merge bitcoin-core/gui#345: Connection Type Translator Comments (Hennadii Stepanov)\n688b66e9d196a87002baecdcbcd277e16962757a Merge bitcoin-core/gui#266: Doc: Copyright: Fix embedded font file location (MarcoFalke)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n Trivial backports\n\n ## What was done?\n\n ## How Has This Been Tested?\n Built and ran tests locally; p2p_addr_relay.py fails locally. Not sure why\n\n ## Breaking Changes\n\n ## Checklist:\n _Go over all the following points, and put an `x` in all the boxes that apply._\n - [ ] I have performed a self-review of my own code\n - [ ] I have commented my code, particularly in hard-to-understand areas\n - [ ] I have added or updated relevant unit/integration/functional/e2e tests\n - [ ] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_\n\nACKs for top commit:\n UdjinM6:\n utACK fb8a4db8f67966a157e24ce96144127200b4a7ee\n knst:\n utACK fb8a4db8f67966a157e24ce96144127200b4a7ee\n\nTree-SHA512: abb9469f25c6d45acea01da6d2b9cb6df94822f61d06f80e3008b32d2522016370a1e0b0c9ff95b92df22c4f227fc40f7765d76f1987eac7603155fe2d894593","shortMessageHtmlLink":"Merge #6056: backport: trivial 2024 06 11"}},{"before":"1b3bd26180fb3ae3ee5123054c117796a6797df3","after":"692a076aa330992ba3d3c58f171e2108cdff1255","ref":"refs/heads/develop","pushedAt":"2024-06-13T16:07:21.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"PastaPastaPasta","name":null,"path":"/PastaPastaPasta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6443210?s=80&v=4"},"commit":{"message":"Merge #6055: refactor: use new type of composite commands for quorum NNN\n\nb478406f9f4b7e78771ed9bb1e4c932249dd5de4 refactor: clean-up, missing const in rpc/quorums (Konstantin Akimov)\n50c99e84f84e1a6101537b12f71b485edb4c6a1c fix: adopt platform restriction for new composite commands (Konstantin Akimov)\ne3c4d66ef355a7c8352e0e38c330067da7da974f refactor: quorum sign methods (Konstantin Akimov)\n2af9d866542b846daa60ab44987442cd24c71763 refactor: use new approach for rpc quorums NNN (Konstantin Akimov)\n\nPull request description:\n\n ## Issue being fixed or feature implemented\n See #6051\n\n ## What was done?\n Commands starting from 'quorum ...' uses new a new way to make composite commands.\n\n ## How Has This Been Tested?\n Run unit/functional tests.\n Please notice, there's required extra changes for platform restrictions, the subcommand is no more first argument, but part of command, space separated.\n\n ## Breaking Changes\n N/A\n\n ## Checklist:\n - [x] I have performed a self-review of my own code\n - [x] I have commented my code, particularly in hard-to-understand areas\n - [x] I have added or updated relevant unit/integration/functional/e2e tests\n - [x] I have made corresponding changes to the documentation\n - [x] I have assigned this pull request to a milestone\n\nACKs for top commit:\n UdjinM6:\n utACK b478406f9f4b7e78771ed9bb1e4c932249dd5de4\n PastaPastaPasta:\n utACK b478406f9f4b7e78771ed9bb1e4c932249dd5de4\n\nTree-SHA512: c53856a3f45fee44a8130876ed4545f6f2c0f59f74e4d4745e7354097fee3a74ed526cc8160de532dbb4aeb81b82638ee912a0961b910692e78889baa2c976c3","shortMessageHtmlLink":"Merge #6055: refactor: use new type of composite commands for quorum NNN"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEesh-4AA","startCursor":null,"endCursor":null}},"title":"Activity · dashpay/dash"}