Skip to content

Instantly share code, notes, and snippets.

@iboss-ptk
Last active May 1, 2022 09:41
Show Gist options
  • Save iboss-ptk/6fb9c5a5e74c7e5b86d6a004a3d05972 to your computer and use it in GitHub Desktop.
Save iboss-ptk/6fb9c5a5e74c7e5b86d6a004a3d05972 to your computer and use it in GitHub Desktop.

What is Protostar SDK

CosmWasm is multi-chain smart contract platform building for Cosmos ecosystem. While being powerful as it is, a lot of things needs to be wired manually when developing CosmWasm contracts and dapps. To provide seamless CosmWasm development experience, Protostar is designed to be a swiss-army knife for building custom dev tool for CosmWasm on each specific blockchain.

What is Membrane

Membrane will use Protostar SDK to build development toolset that specializes in developing CosmWasm on Osmosis. Optimize for deeper integration with Osmosis to facilitate building the best dapps that really augment Osmosis, not just any dapps possible; for example:

  • testing/simulation for IBC and Bridges interaction
  • deep integration with LP interaction
  • interactive tutorial that help navigate chain specific possibilities rather than a generic ones

Along the process, more information will be collected in order to make sure the toolset really drive osmosis growth and make the most impact possible and adjust accordingly.

Design Principle

Protostar is intended to be modular, as Cosmos SDK itself is modular, so that it can adapt well on how Cosmos SDK and CosmWasm itself evolve. Also being inspired hugely by part of the UNIX philosophy:

Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features".

So that each module will specialize in what is does and highly composable. With that, when one want to customize or extend the functionality, they can just recompose the basic units rather than trying to extend the module. Meanwhile, it will be designed to reduce possible boilerplate and create a consistent interface for exposing functionality for user or other program's interaction.

Each module will be interface (eg. CLI, Web UI, Code Editor) agnostic, and solely focus on its own automation capability. With that, we can build any interface on top of the modules as we see fit. Basic building blocks for those interface will be provided as a separate module.

With that, nothing can stop the user to build their own custom module when needed.

Potential Problem/Solution Spaces to Explore

  • Fast idea to prototype iteration
  • Ease of enabling cross-chain integration which brings more liquidity to the platform
  • See how to create synergy with Telescope.js to be a strategic enhancement to the chain tooling
  • Look at what CEX currently offer and how dev tool can facilitate building better version of that
  • Basic composable contracts and their client library, to simplify building automations/applications on the chain (need more careful thoughts)

Deliverables

Basics

  • Protostar SDK

    • cosmwasm build / test / deploy / migration automation module
      • workspace support
      • fast integration test support
      • fuzzing support
    • client generation (might wanna talk to Dan Lynch about this since he seems to have similar idea)
    • frontend integration
    • interactive REPL
    • scripting
    • CLI
    • configuration
  • Membrane (extended from Protostar SDK)

    • IBC Testing
    • Osmosis custom module interaction and mocking (eg. seeding LPs, minting new coins)
    • automate building Keplr with testing wallet

Wishlist

  • Hot reloading
  • Time traveling
  • Web UI
  • VS Code integration
  • interactive tutorial

Somewhat unrelated wishlist

  • multicall provider
  • composer (node wraning-like UI)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment