Cancelled

JBP-498: Fund JBM V4/Nana integration

Cycle

77

Requesting

72,000 USD

loading

Proposed Transactions

Payout action loading...

Synopsis

This governance proposal outlines funding the integration of the V4 Juicebox (omnichain) contracts on juicebox.money (JBM).

Motivation

Since being funded in Oct 2023, the #protocol team has been hard at work on Bananapus, a.k.a "The Juicebox V4 Contracts".

There are currently two web applications being built on the new contracts: Bannyverse and Revnet. But JBM remains the primary gateway into Juicebox, and thanks to Strath and Wraeth’s recent work, the UX continues to improve.

But sooner or later, JBM will need to migrate to V4. We propose that the time is now.

V4 contracts will be a huge win for juicebox.money. It will eventually allow projects to be launched and operated across multiple chains, allowing users to pay projects on gas-efficient chains and use the tokens they gain across all other chains the project is launched on. See more. L2/Multichain Juicebox has been a (if not, the most) heavily requested feature by the Juicebox community (see Appendix section at the end of this document).

Aeolian and Johnny D, as the developers behind the V2/V3 Juicebox contracts integration on juicebox.money, understand the depth of the task.

Specification

US$12k per cycle for 6 cycles to @v4-frontend-developers Juicebox project. 

Rationale

Integrating V4 into JBM is no small feat. We propose a 2-phase implementation plan.

Phase 1: V4 mainnet support Goal: get V4 working on JBM, on mainnet. The initial phase aims to support V4 projects launched on mainnet, close-to feature parity with the existing JBM. This allows us to set a technical foundation for Phase 2, and usher incoming JB projects to V4 as soon as possible.

Phase 2: Omnichain The second phase aims to expose the full power of V4, with omnichain support.  While we’ve teased out some of the technical details and UX with the Revnet project, there’s still much to investigate and solidify. If we make it to this phase, we're committed to working with UX specialists alongside #protocol team to find the best path forward.

Given the complexities and unknowns at hand, it’s difficult to commit to accurate timelines. This proposal commits to fulfilling Phase 1, and spending any remaining time on Phase 2.

Phase 1 technical implementation plan

In recent weeks, we have devised a plan to deliver Phase 1, outlined as follows:

  1. Remove underused/legacy features from JBM (Done)
  2. Reduce reliance on database in favour of subgraph (Done)
  3. Complete Ethers V5 -> V6 upgrade (In review, credits Wraeth)
  4. Reorganise codebase to be version-first (in progress)
  5. Prepare codebase for wagmi and V4
    1. Scope all existing React providers to existing pages
    2. Remove providers from global scope (e.g. Supabase)
    3. Remove all uses of the database, besides Project Search. Then purge unused data.
  6. Create proof-of-concept V4 project page, at juicebox.money/v4/mainnet/:projectId
    1. Using wagmi library, juice-sdk-v4, making any upgrades to juice-sdk-v4 as necessary.
  7. Flesh out core V4 project page features
    1. Rewrite all v2v3 components to be v4-compatible
  8. Implement V4 project settings
  9. Implement NFTs/721 delegate
  10. Implement project creation in V4

After this is complete, projects can begin launching on V4 mainnet, just as they do now on JBM. Then, we can start work on Phase 2 (if remaining proposal duration allows).

Note that the UI will remain roughly the same as v2/v3, with accommodations made for V4 as necessary.

Risks

- We may discover the feasibility to be more complicated than anticipated - Changes in contracts may result in drawn out frontend development times

Timeline

ASAP, ending in 6 cycles.

Appendix

Screenshot_2024-06-14_at_10.53.03_pm.pngScreenshot_2024-06-14_at_10.54.57_pm.pngScreenshot_2024-06-14_at_10.53.55_pm.pngScreenshot_2024-06-14_at_10.52.16_pm.png

--- nance-actions
- type: Payout
  uuid: 23f5b14765d042709ddd53fb0de9eb19
  payload:
    type: address
    count: "6"
    amountUSD: "12000"
    address: "0x81d746DB01F08187ad2837489B0BaB92e4E836f9"