unassign_curator: TxDescriptor<{
    child_bounty_id: number;
    parent_bounty_id: number;
}>

Unassign curator from a child-bounty.

The dispatch origin for this call can be either RejectOrigin, or the curator of the parent bounty, or any signed origin.

For the origin other than T::RejectOrigin and the child-bounty curator, parent bounty must be in active state, for this call to work. We allow child-bounty curator and T::RejectOrigin to execute this call irrespective of the parent bounty state.

If this function is called by the RejectOrigin or the parent bounty curator, we assume that the child-bounty curator is malicious or inactive. As a result, child-bounty curator deposit is slashed.

If the origin is the child-bounty curator, we take this as a sign that they are unable to do their job, and are willingly giving up. We could slash the deposit, but for now we allow them to unreserve their deposit and exit without issue. (We may want to change this if it is abused.)

Finally, the origin can be anyone iff the child-bounty curator is "inactive". Expiry update due of parent bounty is used to estimate inactive state of child-bounty curator.

This allows anyone in the community to call out that a child-bounty curator is not doing their due diligence, and we should pick a new one. In this case the child-bounty curator deposit is slashed.

State of child-bounty is moved to Added state on successful call completion.

  • parent_bounty_id: Index of parent bounty.
  • child_bounty_id: Index of child bounty.