Files
pezkuwi-subxt/substrate/frame/bounties
Michal Kucharczyk 87d41d0a89 GenesisBuild<T,I> deprecated. BuildGenesisConfig added. (#14306)
* frame::support: GenesisConfig types for Runtime enabled

* frame::support: macro generating GenesisBuild::build for RuntimeGenesisConfig

* frame: ambiguity BuildStorage vs GenesisBuild fixed

* fix

* RuntimeGenesisBuild added

* Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed"

This reverts commit 950f3d019d0e21c55a739c44cc19cdabd3ff0293.

* Revert "fix"

This reverts commit a2f76dd24e9a16cf9230d45825ed28787211118b.

* Revert "RuntimeGenesisBuild added"

This reverts commit 3c131b618138ced29c01ab8d15d8c6410c9e128b.

* Revert "Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed""

This reverts commit 2b1ecd467231eddec69f8d328039ba48a380da3d.

* Revert "Revert "fix""

This reverts commit fd7fa629adf579d83e30e6ae9fd162637fc45e30.

* Code review suggestions

* frame: BuildGenesisConfig added, BuildGenesis deprecated

* frame: some pallets updated with BuildGenesisConfig

* constuct_runtime: support for BuildGenesisConfig

* frame::support: genesis_build macro supports BuildGenesisConfig

* frame: BuildGenesisConfig added, BuildGenesis deprecated

* Cargo.lock update

* test-runtime: fixes

* Revert "fix"

This reverts commit a2f76dd24e9a16cf9230d45825ed28787211118b.

* Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed"

This reverts commit 950f3d019d0e21c55a739c44cc19cdabd3ff0293.

* self review

* doc fixed

* ui tests fixed

* fmt

* tests fixed

* genesis_build macrto fixed for non-generic GenesisConfig

* BuildGenesisConfig constraints added

* warning fixed

* some duplication removed

* fmt

* fix

* doc tests fix

* doc fix

* cleanup: remove BuildModuleGenesisStorage

* self review comments

* fix

* Update frame/treasury/src/tests.rs

Co-authored-by: Sebastian Kunert <skunert49@gmail.com>

* Update frame/support/src/traits/hooks.rs

Co-authored-by: Sebastian Kunert <skunert49@gmail.com>

* doc fix: GenesisBuild exposed

* ".git/.scripts/commands/fmt/fmt.sh"

* frame: more serde(skip) + cleanup

* Update frame/support/src/traits/hooks.rs

Co-authored-by: Davide Galassi <davxy@datawok.net>

* frame: phantom fields moved to the end of structs

* chain-spec: Default::default cleanup

* test-runtime: phantom at the end

* merge master fixes

* fix

* fix

* fix

* fix

* fix (facepalm)

* Update frame/support/procedural/src/pallet/expand/genesis_build.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* fmt

* fix

* fix

---------

Co-authored-by: parity-processbot <>
Co-authored-by: Sebastian Kunert <skunert49@gmail.com>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Bastian Köcher <git@kchr.de>
2023-07-12 10:22:12 +00:00
..
2022-04-16 09:55:37 +00:00

Bounties Module ( pallet-bounties )

Bounty

NOTE: This pallet is tightly coupled with pallet-treasury.

A Bounty Spending is a reward for a specified body of work - or specified set of objectives - that needs to be executed for a predefined Treasury amount to be paid out. A curator is assigned after the bounty is approved and funded by Council, to be delegated with the responsibility of assigning a payout address once the specified set of objectives is completed.

After the Council has activated a bounty, it delegates the work that requires expertise to a curator in exchange of a deposit. Once the curator accepts the bounty, they get to close the active bounty. Closing the active bounty enacts a delayed payout to the payout address, the curator fee and the return of the curator deposit. The delay allows for intervention through regular democracy. The Council gets to unassign the curator, resulting in a new curator election. The Council also gets to cancel the bounty if deemed necessary before assigning a curator or once the bounty is active or payout is pending, resulting in the slash of the curator's deposit.

This pallet may opt into using a [ChildBountyManager] that enables bounties to be split into sub-bounties, as children of anh established bounty (called the parent in the context of it's children).

NOTE: The parent bounty cannot be closed if it has a non-zero number of it has active child bounties associated with it.

Terminology

Bounty:

  • Bounty spending proposal: A proposal to reward a predefined body of work upon completion by the Treasury.
  • Proposer: An account proposing a bounty spending.
  • Curator: An account managing the bounty and assigning a payout address receiving the reward for the completion of work.
  • Deposit: The amount held on deposit for placing a bounty proposal plus the amount held on deposit per byte within the bounty description.
  • Curator deposit: The payment from a candidate willing to curate an approved bounty. The deposit is returned when/if the bounty is completed.
  • Bounty value: The total amount that should be paid to the Payout Address if the bounty is rewarded.
  • Payout address: The account to which the total or part of the bounty is assigned to.
  • Payout Delay: The delay period for which a bounty beneficiary needs to wait before claiming.
  • Curator fee: The reserved upfront payment for a curator for work related to the bounty.

Interface

Dispatchable Functions

Bounty protocol:

  • propose_bounty - Propose a specific treasury amount to be earmarked for a predefined set of tasks and stake the required deposit.
  • approve_bounty - Accept a specific treasury amount to be earmarked for a predefined body of work.
  • propose_curator - Assign an account to a bounty as candidate curator.
  • accept_curator - Accept a bounty assignment from the Council, setting a curator deposit.
  • extend_bounty_expiry - Extend the expiry block number of the bounty and stay active.
  • award_bounty - Close and pay out the specified amount for the completed work.
  • claim_bounty - Claim a specific bounty amount from the Payout Address.
  • unassign_curator - Unassign an accepted curator from a specific earmark.
  • close_bounty - Cancel the earmark for a specific treasury amount and close the bounty.