Context
Part of the Bounty Configure (Host a Bounty) milestone. Wires the publish action: build the escrow request and drive it to completion using the shared escrow runner. Mirrors use-hackathon-publish.ts.
Blueprint to mirror
hooks/use-hackathon-publish.ts
features/hackathons/api/use-escrow.ts (useEscrowOpRunner)
Tasks
Acceptance criteria
- MANAGED publish on testnet drives
draft -> open.
- EXTERNAL path signs and submits the returned XDR.
- One winner for a single-claim bounty; the multi-position split for a competition (multiple winners).
Depends on
- Bounty data layer (escrow client) and the wizard shell.
Context
Part of the Bounty Configure (Host a Bounty) milestone. Wires the publish action: build the escrow request and drive it to completion using the shared escrow runner. Mirrors
use-hackathon-publish.ts.Blueprint to mirror
hooks/use-hackathon-publish.tsfeatures/hackathons/api/use-escrow.ts(useEscrowOpRunner)Tasks
hooks/use-bounty-publish.tsbuildingPublishBountyEscrowDto:ownerAddresstokenAddressvialib/config/tokens.tsgetTokenAddress('USDC')budget= sum of tier amounts (string, token units)submissionDeadline(unix) from the draft deadlineapplicationCreditCostwinnerDistributionvia sharedbuildWinnerDistributionfundingMode(MANAGED / EXTERNAL)sourceWalletIdif the backend treasury-parity issue landsuseEscrowOpRunnerfor publish -> (sign if EXTERNAL vialib/wallet/wallet-kit.tssignXdrWithKit) -> submit -> poll. MANAGED returnsPENDING_CONFIRMthen polls.COMPLETED, refetch; the bounty has moveddraft_awaiting_funding -> open.Acceptance criteria
draft -> open.Depends on