Aller au contenu
TaskFlow

Où vit la récompense, et qui peut la libérer

Les règles du contrat de prime, en mots simples.

Le séquestre : la récompense est bloquée avant que quiconque commence

Publier place la récompense en séquestre, un contrat intelligent qui paie un contributeur approuvé ou vous rembourse si vous annulez.

  • Chacun peut vérifier le montant bloqué.
  • L'auteur ne peut pas la dépenser ailleurs.
  • Annulation seulement si rien n'attend de décision.
Portefeuille de l'auteurSéquestre de la primeContributeur approuvéBlocageVersementRemboursement si annulée

Deux façons de décider

Chaque prime annonce qui décide avant que quiconque commence.

Évaluation par l'auteur

L'auteur approuve, ce qui paie, ou refuse avec une raison.

Pour les tâches courantes : bogues, docs, design.

Vote des validateurs

Un conseil nommé vote ; le quorum (ex. 2 sur 3) déclenche le paiement.

Pour les audits, les prix et les subventions.

ApprouveApprouvePas encore votéQuorum 2 sur 3Paiement lancé

Refus et remboursements

  • Chaque refus a une raison

    Le contributeur voit la note et peut soumettre à nouveau.

  • Une personne retenue, et les autres sont prévenues

    Les autres passent à « non retenue ».

  • Les remboursements sont publics

    L'annulation rembourse l'auteur et figure dans l'historique.

Visibilité selon le rôle

Tout le monde lit chaque prime ; l'auteur restreint qui peut soumettre.

  • Ouverte à tous
  • Membres Monark
  • Ambassadeurs seulement

Une réputation qui se gagne, pas qui s'achète

Elle ne vient que du travail approuvé, et ne s'achète ni ne se transfère.

DifficultéPoints par prime approuvée
Débutant+10
Intermédiaire+25
Avancé+50
Expert+100

Pour les développeurs et les étudiants

La couche de données de la démo reproduit ce contrat : elle peut passer à des appels wagmi/viem.

Voir l'interface du contrat
Interface du contrat (simplifiée)
// TaskFlow bounty escrow (simplified)
function post(token, reward, deadline, visibility, review) returns (bountyId);
function submit(bountyId, workUri) returns (submissionId);   // before deadline, role-gated

// Poster review
function approve(bountyId, submissionId);                   // pays the winner in the same call
function reject(bountyId, submissionId, string reason);     // reason is required

// Validator review
function vote(bountyId, submissionId, bool approve, string reason);
// when approvals >= quorum: pays the winner in the same call

function cancel(bountyId);   // only with no submission awaiting a decision; refunds the poster

event Posted(bountyId, poster, reward);
event Submitted(bountyId, submissionId, contributor);
event Voted(bountyId, submissionId, validator, approve);
event Paid(bountyId, contributor, amount);
event Cancelled(bountyId, refund);
  • src/lib/demo/types.tsPrimes, soumissions, votes, modes d'évaluation
  • src/lib/demo/ops.tsPublier, soumettre, approuver, refuser, voter, annuler
  • src/lib/demo/chain.tsDemande au portefeuille, attente, confirmation ou échec
  • src/lib/demo/select.tsRéputation, classement, qui peut soumettre
  • En exercice : rotation des validateurs, litiges, plusieurs gagnants.
  • À creuser : réentrance au versement, droit d'annuler, quorum inatteignable.

Voyez-le de vos propres clics

Ouvrir le tableau des primes