Skip to content

Instantly share code, notes, and snippets.

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

Resources

Articles / Videos

Overview

Terrain is a Terra development environment for better smart contract development experience.

Terrain will help:

  • scaffold your dapp project
  • ease the development and deployment process
  • create custom task for blockchain and contract interaction with less boilerplate code
  • using terra.js directly could be cumbersome, Terrain gives you extensions and utilities to help you

Overview

Terrain is a Terra development environment for better smart contract development experience.

Terrain will help:

  • scaffold your dapp project
  • ease the development and deployment process
  • create custom task for blockchain and contract interaction with less boilerplate code
  • using terra.js directly could be cumbersome, Terrain gives you extensions and utilities to help you
const axios = require('axios')
const toStringParams = o =>
Object
.keys(o)
.map(k => `${k}=${o[k]}`)
.join('&')
@iboss-ptk
iboss-ptk / SketchSystems.spec
Last active November 15, 2021 06:00
App State
App State
App not running*
open app -> Logged in?
App opened
kill app -> App not running
close app -> App Backgrounded
Login Screen
login -> Login

Design Decision For Analytics Tracking

  • Event name is following [this convention](Naming conventions: one step towards clean data) an Object-Action Framework eg.
    • Object: Account, Action: Signed Up
    • Object: Post, Action: Created
  • Following that, means we can separate module (file) by object. eg. account has its own module.
  • in each module, we can implement the detail about the tracking
    • params
    • transformation (if needed)
  • if the tracking function seems do similar transformation before every calls, consider moving those logic into the tracking function itself. (eg. post.engaged)
  • if the tracking depends on state changes, consider creating a component with hook in it to capture state changes from the context, app state, or any global-ish state (eg. ProfileUpdateTracker)
@iboss-ptk
iboss-ptk / reader.ts
Last active September 11, 2020 11:37
// === lib ===
type Contextualized<C, R> = (context: C) => R
const contexualize = contextConsumerGenerator => context => {
const generator = contextConsumerGenerator()
let contextConsumerIter = generator.next()
let consume: any = contextConsumerIter.value
while (!contextConsumerIter.done) {