{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":694837659,"defaultBranch":"master","name":"polkadot-sdk","ownerLogin":"pandres95","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-09-21T19:51:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2502577?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1716478648.0","currentOid":""},"activityList":{"items":[{"before":"0f6b81d00eb70fe8d2935274c4573fe6fc83010e","after":"baf45ad906d2455e218e0e39ca72940040b14a46","ref":"refs/heads/assets-transfer-all","pushedAt":"2024-05-30T02:54:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix(prdoc): bump pallet-assets as minor change","shortMessageHtmlLink":"fix(prdoc): bump pallet-assets as minor change"}},{"before":"8cec7513be6d7d436ddb2b1d8dd0a93ac7c345bc","after":"0f6b81d00eb70fe8d2935274c4573fe6fc83010e","ref":"refs/heads/assets-transfer-all","pushedAt":"2024-05-30T02:51:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix(prdoc): bump pallet-assets as minor change","shortMessageHtmlLink":"fix(prdoc): bump pallet-assets as minor change"}},{"before":null,"after":"8949856d840c7f97c0c0c58a3786ccce5519a8fe","ref":"refs/heads/pallet-assets-vesting","pushedAt":"2024-05-23T15:37:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Refactor Nomination Pool to support multiple staking strategies (#3905)\n\nThird and final PR in the set, closes\nhttps://github.com/paritytech/polkadot-sdk/issues/454.\n\nOriginal PR: https://github.com/paritytech/polkadot-sdk/pull/2680\n\n## Precursors:\n- https://github.com/paritytech/polkadot-sdk/pull/3889.\n- https://github.com/paritytech/polkadot-sdk/pull/3904.\n\n## Follow up issues/improvements\n- https://github.com/paritytech/polkadot-sdk/issues/4404\n\nOverall changes are documented here (lot more visual 😍):\nhttps://hackmd.io/@ak0n/454-np-governance\n\n## Summary of various roles 🤯\n### Pallet Staking\n**Nominator**: An account that directly stakes on `pallet-staking` and\nnominates a set of validators.\n**Stakers**: Common term for nominators and validators.\nVirtual Stakers: Same as stakers, but they are keyless accounts and\ntheir locks are managed by a pallet external to `pallet-staking`.\n\n### Pallet Delegated Staking\n**Agent**: An account that receives delegation from other accounts\n(delegators) and stakes on their behalf. They are also Virtual Stakers\nin `pallet-staking` where `pallet-delegated-staking` manages its locks.\n**Delegator**: An account that delegates some funds to an agent.\n\n### Pallet Nomination Pools\n**Pool account**: Keyless account of a pool where funds are pooled.\nMembers pledge their funds towards the pools. These are going to become\n`Agent` accounts in `pallet-delegated-staking`.\n**Pool Members**: They are individual members of the pool who\ncontributed funds to it. They are also `Delegator` in\n`pallet-delegated-staking`.\n\n## Changes\n### Multiple Stake strategies\n\n**TransferStake**: The current nomination pool logic can be considered a\nstaking strategy where delegators transfer funds to pool and stake. In\nthis scenario, funds are locked in pool account, and users lose the\ncontrol of their funds.\n\n**DelegateStake**: With this PR, we introduce a new staking strategy\nwhere individual delegators delegate fund to pool. `Delegate` implies\nfunds are locked in delegator account itself. Important thing to note\nis, pool does not have funds of its own, but it has authorization from\nits members to use these funds for staking.\n\nWe extract out all the interaction of pool with staking interface into a\nnew trait `StakeStrategy`. This is the logic that varies between the\nabove two staking strategies. We use the trait `StakeStrategy` to\nimplement above two strategies: `TransferStake` and `DelegateStake`.\n\n### NominationPool\nConsumes an implementation of `StakeStrategy` instead of\n`StakingInterface`. I have renamed it from `Staking` to `StakeAdapter`\nto clarify the difference from the earlier used trait.\n\nTo enable delegation based staking in pool, Nomination pool can be\nconfigured as:\n```\ntype StakeAdapter = pallet_nomination_pools::adapter::DelegateStake;\n```\n\nNote that with the following configuration, the changes in the PR are\nno-op.\n```\ntype StakeAdapter = pallet_nomination_pools::adapter::TransferStake;\n```\n\n## Deployment roadmap\nPlan to enable this only in Westend. In production runtimes, we can keep\npool to use `TransferStake` which will be no functional change.\n\nOnce we have a full audit, we can enable this in Kusama followed by\nPolkadot.\n\n## TODO\n- [x] Runtime level (Westend) migration for existing nomination pools.\n- [x] Permissionless call/ pallet::tasks for claiming delegator funds.\n- [x] Add/update benches.\n- [x] Migration tests.\n- [x] Storage flag to mark `DelegateStake` migration and integrity\nchecks to not allow `TransferStake` for migrated runtimes.\n\n---------\n\nSigned-off-by: Matteo Muraca \nSigned-off-by: Alexandru Gheorghe \nSigned-off-by: Andrei Sandu \nSigned-off-by: Adrian Catangiu \nSigned-off-by: Alexandru Vasile \nSigned-off-by: Oliver Tale-Yazdi \nSigned-off-by: divdeploy \nSigned-off-by: dependabot[bot] \nSigned-off-by: hongkuang \nCo-authored-by: Bastian Köcher \nCo-authored-by: gemini132 <164285545+gemini132@users.noreply.github.com>\nCo-authored-by: Matteo Muraca <56828990+muraca@users.noreply.github.com>\nCo-authored-by: Liam Aharon \nCo-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>\nCo-authored-by: Alexandru Gheorghe <49718502+alexggh@users.noreply.github.com>\nCo-authored-by: Alessandro Siniscalchi \nCo-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>\nCo-authored-by: Ross Bulat \nCo-authored-by: Serban Iorga \nCo-authored-by: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com>\nCo-authored-by: Sam Johnson \nCo-authored-by: Adrian Catangiu \nCo-authored-by: Javier Viola <363911+pepoviola@users.noreply.github.com>\nCo-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>\nCo-authored-by: Niklas Adolfsson \nCo-authored-by: Dastan <88332432+dastansam@users.noreply.github.com>\nCo-authored-by: Clara van Staden \nCo-authored-by: Ron \nCo-authored-by: Vincent Geddes \nCo-authored-by: Svyatoslav Nikolsky \nCo-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>\nCo-authored-by: Dino Pačandi <3002868+Dinonard@users.noreply.github.com>\nCo-authored-by: Andrei Eres \nCo-authored-by: Alin Dima \nCo-authored-by: Andrei Sandu \nCo-authored-by: Oliver Tale-Yazdi \nCo-authored-by: Bastian Köcher \nCo-authored-by: Branislav Kontur \nCo-authored-by: Sebastian Kunert \nCo-authored-by: gupnik \nCo-authored-by: Vladimir Istyufeev \nCo-authored-by: Lulu \nCo-authored-by: Juan Girini \nCo-authored-by: Francisco Aguirre \nCo-authored-by: Dónal Murray \nCo-authored-by: Shawn Tabrizi \nCo-authored-by: Kutsal Kaan Bilgin \nCo-authored-by: Ermal Kaleci \nCo-authored-by: ordian \nCo-authored-by: divdeploy <166095818+divdeploy@users.noreply.github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Sergej Sakac <73715684+Szegoo@users.noreply.github.com>\nCo-authored-by: Squirrel \nCo-authored-by: HongKuang <166261675+HongKuang@users.noreply.github.com>\nCo-authored-by: Tsvetomir Dimitrov \nCo-authored-by: Egor_P \nCo-authored-by: Aaro Altonen <48052676+altonen@users.noreply.github.com>\nCo-authored-by: Dmitry Markin \nCo-authored-by: Alexandru Vasile \nCo-authored-by: Léa Narzis <78718413+lean-apple@users.noreply.github.com>\nCo-authored-by: Gonçalo Pestana \nCo-authored-by: georgepisaltu <52418509+georgepisaltu@users.noreply.github.com>\nCo-authored-by: command-bot <>\nCo-authored-by: PG Herveou \nCo-authored-by: jimwfs \nCo-authored-by: jimwfs <169986508+jimwfs@users.noreply.github.com>\nCo-authored-by: polka.dom ","shortMessageHtmlLink":"Refactor Nomination Pool to support multiple staking strategies (pari…"}},{"before":null,"after":"a0f5015b70e6ceb78ab52c16979327b511426d7d","ref":"refs/heads/pallet-assets-holder","pushedAt":"2024-05-21T05:42:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"change(pallet-assets): define HeldBalance","shortMessageHtmlLink":"change(pallet-assets): define HeldBalance"}},{"before":"2892e785506f871636e9b0ac72c7c96158bfa021","after":"8cec7513be6d7d436ddb2b1d8dd0a93ac7c345bc","ref":"refs/heads/assets-transfer-all","pushedAt":"2024-05-20T16:36:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix(prdoc): missing bumps for asset-hub testing runtimes","shortMessageHtmlLink":"fix(prdoc): missing bumps for asset-hub testing runtimes"}},{"before":"cff490ad14fec776e713c017f44dcc8daa87afd4","after":"2892e785506f871636e9b0ac72c7c96158bfa021","ref":"refs/heads/assets-transfer-all","pushedAt":"2024-05-20T15:11:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"change(parachains/assets): update weights on asset-hub parachains","shortMessageHtmlLink":"change(parachains/assets): update weights on asset-hub parachains"}},{"before":"c7dc82ce5b7bc9246437e6ad02f364b753906868","after":"cff490ad14fec776e713c017f44dcc8daa87afd4","ref":"refs/heads/assets-transfer-all","pushedAt":"2024-05-20T15:01:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"change(prdoc): add prdoc for pull request","shortMessageHtmlLink":"change(prdoc): add prdoc for pull request"}},{"before":null,"after":"c7dc82ce5b7bc9246437e6ad02f364b753906868","ref":"refs/heads/assets-transfer-all","pushedAt":"2024-05-20T14:50:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"feat(pallet-assets): define call for transfer_all","shortMessageHtmlLink":"feat(pallet-assets): define call for transfer_all"}},{"before":"1eaa48367d4566c5f1b69dd377e5b335812e13e1","after":"9986c7c3f8bbaa19c67cf809d35736e998dc69f7","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-05-03T06:28:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix: typo","shortMessageHtmlLink":"fix: typo"}},{"before":"9986c7c3f8bbaa19c67cf809d35736e998dc69f7","after":"1eaa48367d4566c5f1b69dd377e5b335812e13e1","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-05-03T03:55:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"wip: implement_poll_status_change_with_weights","shortMessageHtmlLink":"wip: implement_poll_status_change_with_weights"}},{"before":"a180ad08e3e6d97674004cb5be3b6db60866a2c5","after":null,"ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-30T13:34:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"}},{"before":"5ef88272801e7c01f934a04b5f54356dfd6b015c","after":"a180ad08e3e6d97674004cb5be3b6db60866a2c5","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-30T00:14:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Update prdoc/pr_4312.prdoc\n\nCo-authored-by: Francisco Aguirre ","shortMessageHtmlLink":"Update prdoc/pr_4312.prdoc"}},{"before":"8b27856690fd25638ec318d804dd9995bc64950b","after":"5ef88272801e7c01f934a04b5f54356dfd6b015c","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-30T00:13:47.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Merge branch 'master' into assets-events-deposit-withdraw","shortMessageHtmlLink":"Merge branch 'master' into assets-events-deposit-withdraw"}},{"before":"8515af11e09f26ed94c1eb277ae06176020a5f16","after":"9986c7c3f8bbaa19c67cf809d35736e998dc69f7","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-04-29T06:45:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix: typo","shortMessageHtmlLink":"fix: typo"}},{"before":"b15cb6c8e4518ab783ff96997460800553fa2971","after":"8515af11e09f26ed94c1eb277ae06176020a5f16","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-04-29T06:44:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix(prdoc): apply requested changes","shortMessageHtmlLink":"fix(prdoc): apply requested changes"}},{"before":"ccd2d73fa9e11a6d94a5f7431a06730a5a7b3a28","after":"b15cb6c8e4518ab783ff96997460800553fa2971","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-04-29T06:24:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix(pallet-referenda): address requested changes","shortMessageHtmlLink":"fix(pallet-referenda): address requested changes"}},{"before":"5eba536f95763024c3345767bac590d6e8c0838c","after":"ccd2d73fa9e11a6d94a5f7431a06730a5a7b3a28","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-04-29T06:15:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"change(pallet-referenda): implement a counter for testing on_poll_status_change","shortMessageHtmlLink":"change(pallet-referenda): implement a counter for testing on_poll_sta…"}},{"before":"971d68a0e518306543917edb195419fb1dd13d68","after":"5eba536f95763024c3345767bac590d6e8c0838c","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-04-29T05:49:30.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Merge branch 'trait-on-poll-status-change' of https://github.com/pandres95/polkadot-sdk into trait-on-poll-status-change","shortMessageHtmlLink":"Merge branch 'trait-on-poll-status-change' of https://github.com/pand…"}},{"before":"4f61a34b1915d09250538fe66edcad12fa3f00bd","after":"971d68a0e518306543917edb195419fb1dd13d68","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-04-29T05:43:30.000Z","pushType":"push","commitsCount":48,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Merge branch 'master' into trait-on-poll-status-change","shortMessageHtmlLink":"Merge branch 'master' into trait-on-poll-status-change"}},{"before":"a4577fb729005580758dcceba128540a78768a2b","after":"4f61a34b1915d09250538fe66edcad12fa3f00bd","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-04-29T05:43:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix: address requested changes","shortMessageHtmlLink":"fix: address requested changes"}},{"before":"ca7a4baf67346b295b4971fbb3ce673ff54acc19","after":"8b27856690fd25638ec318d804dd9995bc64950b","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-26T18:10:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix(pallet-assets): move new events to the end of the enum","shortMessageHtmlLink":"fix(pallet-assets): move new events to the end of the enum"}},{"before":"cf3690e0286da6787debff78c4da5bf4bbe45240","after":"ca7a4baf67346b295b4971fbb3ce673ff54acc19","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-26T17:30:07.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Merge branch 'master' into assets-events-deposit-withdraw","shortMessageHtmlLink":"Merge branch 'master' into assets-events-deposit-withdraw"}},{"before":"d4f0bb339213166a796a904152b1018ca65df2a9","after":"cf3690e0286da6787debff78c4da5bf4bbe45240","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-26T17:24:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"apply requested changes","shortMessageHtmlLink":"apply requested changes"}},{"before":"399bc017a5e41c474234372fe0c1f77882402c9f","after":"d4f0bb339213166a796a904152b1018ca65df2a9","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-26T16:53:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"fix(pallet-assets): fmt","shortMessageHtmlLink":"fix(pallet-assets): fmt"}},{"before":"e5da8d32d1cd46bbf9c675e85ce06f3a9e9adf58","after":"399bc017a5e41c474234372fe0c1f77882402c9f","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-26T16:37:19.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Merge branch 'assets-events-deposit-withdraw' of https://github.com/pandres95/polkadot-sdk into assets-events-deposit-withdraw","shortMessageHtmlLink":"Merge branch 'assets-events-deposit-withdraw' of https://github.com/p…"}},{"before":"c16b1189842c74212cde8cb915c887b1acb2cc36","after":"e5da8d32d1cd46bbf9c675e85ce06f3a9e9adf58","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-26T16:29:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paritytech-ci","name":"Parity CI Robot","path":"/paritytech-ci","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52199148?s=80&v=4"},"commit":{"message":"\".git/.scripts/commands/fmt/fmt.sh\"","shortMessageHtmlLink":"\".git/.scripts/commands/fmt/fmt.sh\""}},{"before":"988e30f102b155ab68d664d62ac5c73da171659a","after":"c16b1189842c74212cde8cb915c887b1acb2cc36","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-26T16:15:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"change: assert event emissions for `pallet-assets`' Deposit and Withdraw","shortMessageHtmlLink":"change: assert event emissions for pallet-assets' Deposit and Withdraw"}},{"before":null,"after":"988e30f102b155ab68d664d62ac5c73da171659a","ref":"refs/heads/assets-events-deposit-withdraw","pushedAt":"2024-04-26T15:15:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Implementation of the new validator disabling strategy (#2226)\n\nCloses https://github.com/paritytech/polkadot-sdk/issues/1966,\nhttps://github.com/paritytech/polkadot-sdk/issues/1963 and\nhttps://github.com/paritytech/polkadot-sdk/issues/1962.\n\nDisabling strategy specification\n[here](https://github.com/paritytech/polkadot-sdk/pull/2955). (Updated\n13/02/2024)\n\nImplements:\n* validator disabling for a whole era instead of just a session\n* no more than 1/3 of the validators in the active set are disabled\nRemoves:\n* `DisableStrategy` enum - now each validator committing an offence is\ndisabled.\n* New era is not forced if too many validators are disabled.\n\nBefore this PR not all offenders were disabled. A decision was made\nbased on [`enum\nDisableStrategy`](https://github.com/paritytech/polkadot-sdk/blob/bbb6631641f9adba30c0ee6f4d11023a424dd362/substrate/primitives/staking/src/offence.rs#L54).\nSome offenders were disabled for a whole era, some just for a session,\nsome were not disabled at all.\n\nThis PR changes the disabling behaviour. Now a validator committing an\noffense is disabled immediately till the end of the current era.\n\nSome implementation notes:\n* `OffendingValidators` in pallet session keeps all offenders (this is\nnot changed). However its type is changed from `Vec<(u32, bool)>` to\n`Vec`. The reason is simple - each offender is getting disabled so\nthe bool doesn't make sense anymore.\n* When a validator is disabled it is first added to\n`OffendingValidators` and then to `DisabledValidators`. This is done in\n[`add_offending_validator`](https://github.com/paritytech/polkadot-sdk/blob/bbb6631641f9adba30c0ee6f4d11023a424dd362/substrate/frame/staking/src/slashing.rs#L325)\nfrom staking pallet.\n* In\n[`rotate_session`](https://github.com/paritytech/polkadot-sdk/blob/bdbe98297032e21a553bf191c530690b1d591405/substrate/frame/session/src/lib.rs#L623)\nthe `end_session` also calls\n[`end_era`](https://github.com/paritytech/polkadot-sdk/blob/bbb6631641f9adba30c0ee6f4d11023a424dd362/substrate/frame/staking/src/pallet/impls.rs#L490)\nwhen an era ends. In this case `OffendingValidators` are cleared\n**(1)**.\n* Then in\n[`rotate_session`](https://github.com/paritytech/polkadot-sdk/blob/bdbe98297032e21a553bf191c530690b1d591405/substrate/frame/session/src/lib.rs#L623)\n`DisabledValidators` are cleared **(2)**\n* And finally (still in `rotate_session`) a call to\n[`start_session`](https://github.com/paritytech/polkadot-sdk/blob/bbb6631641f9adba30c0ee6f4d11023a424dd362/substrate/frame/staking/src/pallet/impls.rs#L430)\nrepopulates the disabled validators **(3)**.\n* The reason for this complication is that session pallet knows nothing\nabut eras. To overcome this on each new session the disabled list is\nrepopulated (points 2 and 3). Staking pallet knows when a new era starts\nso with point 1 it ensures that the offenders list is cleared.\n\n---------\n\nCo-authored-by: ordian \nCo-authored-by: ordian \nCo-authored-by: Maciej \nCo-authored-by: Gonçalo Pestana \nCo-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>\nCo-authored-by: command-bot <>\nCo-authored-by: Ankan <10196091+Ank4n@users.noreply.github.com>","shortMessageHtmlLink":"Implementation of the new validator disabling strategy (paritytech#2226)"}},{"before":"25af0adf7836c67e28083276ec6f06d974e4f685","after":"988e30f102b155ab68d664d62ac5c73da171659a","ref":"refs/heads/master","pushedAt":"2024-04-26T15:13:17.000Z","pushType":"push","commitsCount":1436,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"Implementation of the new validator disabling strategy (#2226)\n\nCloses https://github.com/paritytech/polkadot-sdk/issues/1966,\nhttps://github.com/paritytech/polkadot-sdk/issues/1963 and\nhttps://github.com/paritytech/polkadot-sdk/issues/1962.\n\nDisabling strategy specification\n[here](https://github.com/paritytech/polkadot-sdk/pull/2955). (Updated\n13/02/2024)\n\nImplements:\n* validator disabling for a whole era instead of just a session\n* no more than 1/3 of the validators in the active set are disabled\nRemoves:\n* `DisableStrategy` enum - now each validator committing an offence is\ndisabled.\n* New era is not forced if too many validators are disabled.\n\nBefore this PR not all offenders were disabled. A decision was made\nbased on [`enum\nDisableStrategy`](https://github.com/paritytech/polkadot-sdk/blob/bbb6631641f9adba30c0ee6f4d11023a424dd362/substrate/primitives/staking/src/offence.rs#L54).\nSome offenders were disabled for a whole era, some just for a session,\nsome were not disabled at all.\n\nThis PR changes the disabling behaviour. Now a validator committing an\noffense is disabled immediately till the end of the current era.\n\nSome implementation notes:\n* `OffendingValidators` in pallet session keeps all offenders (this is\nnot changed). However its type is changed from `Vec<(u32, bool)>` to\n`Vec`. The reason is simple - each offender is getting disabled so\nthe bool doesn't make sense anymore.\n* When a validator is disabled it is first added to\n`OffendingValidators` and then to `DisabledValidators`. This is done in\n[`add_offending_validator`](https://github.com/paritytech/polkadot-sdk/blob/bbb6631641f9adba30c0ee6f4d11023a424dd362/substrate/frame/staking/src/slashing.rs#L325)\nfrom staking pallet.\n* In\n[`rotate_session`](https://github.com/paritytech/polkadot-sdk/blob/bdbe98297032e21a553bf191c530690b1d591405/substrate/frame/session/src/lib.rs#L623)\nthe `end_session` also calls\n[`end_era`](https://github.com/paritytech/polkadot-sdk/blob/bbb6631641f9adba30c0ee6f4d11023a424dd362/substrate/frame/staking/src/pallet/impls.rs#L490)\nwhen an era ends. In this case `OffendingValidators` are cleared\n**(1)**.\n* Then in\n[`rotate_session`](https://github.com/paritytech/polkadot-sdk/blob/bdbe98297032e21a553bf191c530690b1d591405/substrate/frame/session/src/lib.rs#L623)\n`DisabledValidators` are cleared **(2)**\n* And finally (still in `rotate_session`) a call to\n[`start_session`](https://github.com/paritytech/polkadot-sdk/blob/bbb6631641f9adba30c0ee6f4d11023a424dd362/substrate/frame/staking/src/pallet/impls.rs#L430)\nrepopulates the disabled validators **(3)**.\n* The reason for this complication is that session pallet knows nothing\nabut eras. To overcome this on each new session the disabled list is\nrepopulated (points 2 and 3). Staking pallet knows when a new era starts\nso with point 1 it ensures that the offenders list is cleared.\n\n---------\n\nCo-authored-by: ordian \nCo-authored-by: ordian \nCo-authored-by: Maciej \nCo-authored-by: Gonçalo Pestana \nCo-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>\nCo-authored-by: command-bot <>\nCo-authored-by: Ankan <10196091+Ank4n@users.noreply.github.com>","shortMessageHtmlLink":"Implementation of the new validator disabling strategy (paritytech#2226)"}},{"before":"d764f25df1fb538ea65fc91295913cbc83bb3b29","after":"a4577fb729005580758dcceba128540a78768a2b","ref":"refs/heads/trait-on-poll-status-change","pushedAt":"2024-04-21T17:59:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pandres95","name":"Pablo Andrés Dorado Suárez","path":"/pandres95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2502577?s=80&v=4"},"commit":{"message":"change: include `OnPollStatusChange` on pallet_referenda configs for runtimes withing polkadot-sdk","shortMessageHtmlLink":"change: include OnPollStatusChange on pallet_referenda configs for …"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEV49rcgA","startCursor":null,"endCursor":null}},"title":"Activity · pandres95/polkadot-sdk"}