Skip to main content

Contract interactions


_24
┌────────────┐ ┌────────────────┐
_24
│ Improv Hub │ │ Improv Auction │
_24
│ contract │ │ (Terra or Eth) │
_24
└────────────┘ └────────────────┘
_24
_24
CreateProposal ────────────► SubmitBid
_24
_24
_24
Submit Auction Report ◄────── Create Auction Report
_24
_24
_24
Finalize Proposal ──────────► Finalize Auction
_24
_24
_24
Submit Story ───────────────► Submit Veto
_24
_24
_24
Submit Veto Report ◄───────── Create Veto Report
_24
_24
_24
Finalize Story ─────────────► Finalize Story
_24
_24
_24
Submit Bridge Funds VAA ◄──────────┘

  1. Writers create a proposal by calling CreateProposal. The proposal is submitted to wormhole and the auction starts.

  2. Owners of any NFT collections specified in the proposal can submit their bids to improv-auction. The first bidder to call SubmitBid also submits the proposal VAA emitted by improv-hub.

  3. After the auction is finished, improv-auction calls CreateAuctionReport and submits its emitted VAA to the improv-hub contract by calling SubmitAuctionReport. Winning bids are locked in the improv-auction contract temporarily. These funds are bridged to the improv-hub contract after the auction is finished. Auction winners also get an arbitration NFT.

  4. The improv-hub contract calls FinalizeProposal to finalize the proposal. If the proposal passes, the writer can start working on their story.

  5. The writer calls SubmitStory and submits their story.

  6. After the final version of the story is submitted, arbitration NFT owners can call SubmitVeto to submit vetos during the veto period.

  7. When the veto period is finished, improv-auction calls CreateVetoReport, and submits the emitted VAA to improv-hub by calling SubmitVetoReport.

  8. The improv-hub and improv-auction contracts call FinalizeStory to finalize the story. The funds locked in the improv-hub contract are then sent to the author upon successful completion using SubmitBridgeFundsVAA.