feat(bounty): treasury payout/cancel without the caller's personal wallet#680
Conversation
…payout/cancel Mirror the hackathon use-publish-winners flow: the backend now signs select_winners / cancel with the on-chain event manager (the org treasury or owner that published), so a connected wallet is only needed for EXTERNAL signing. Stop blocking MANAGED on a personal wallet and send ownerAddress as an optional hint. Pairs with boundless-nestjs#392.
|
@Benjtalkshow is attempting to deploy a commit to the Threadflow Team on Vercel. A member of the Team first needs to authorize it. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What
For a treasury-funded bounty, the organizer no longer needs to connect their personal wallet to pay out winners or cancel. It mirrors the hackathon
use-publish-winnersflow.Why
The backend already signs
select_winners/cancelwith the on-chain event manager (the treasury/owner that published) — see the pulled backend change + boundlessfi/boundless-nestjs#392, which makesownerAddressoptional. But the FE (useBountyPayout/useBountyCancel) still required the signed-in user's personal managed wallet and sent it asownerAddress, which mismatches a treasury-owned bounty.Changes
useBountyPayout/useBountyCancel— require a connected wallet only for EXTERNAL (which the wallet signs). For MANAGED, don't block on a personal wallet; sendownerAddressas an optional hint so the backend resolves + signs with the real manager.Note
ownerAddressis cast because the generatedSelectBountyWinnersDto/CancelBountyEscrowDtostill mark it required until FE codegen picks up boundless-nestjs#392 (which makes it optional). A codegen refresh after that merges removes the cast.Verification
tsc --noEmit— 0 errors.eslint .— clean.