hackbg / fadroma

Magical flying bulldozer for the Cosmosverse. Contains clients for Tendermint-based chains in various degrees of completeness, and a mini build system for deploying systems of multiple interdependent smart contracts from source.
https://fadroma.tech
GNU Affero General Public License v3.0
51 stars 15 forks source link

Feedback for discussion #132

Open mradkov opened 2 years ago

mradkov commented 2 years ago

Operations:

Architecture:

Strategic discussion:

mradkov commented 2 years ago

What

Value prop:

Core features

  1. initialize a project (#79)
    • bare CosmWasm contract
      • version select
    • [opt-in] derive macro (could be selected on project init)
    • [opt-in] composability (very experimental at the moment)
  2. develop
    • use helpers from fadroma (flags? treeshaking? is this compiled/included in)
      • vk logic, auth, permits etc.
  3. test
    • use ensemble for integration testing (Rust: contract instance testing, cross-contract communication tests)
    • Mocknet (runs web assembly blobs in node-js built in runtime) (JS: run tests with the compiled contracts and test clients);
      • Localnet (real VM)/ Devnet / Mainnet
  4. compile
    • dockerized build containers (reproducibility)
      • checksums & wasms (artifacts)
  5. deploy (upload, init, configure)
    • receipts;
    • scripts for init and configure (operations scripts). 6(future). dashboard / REPL

How

Discussion

@egasimus:

@aakamenov:

@denismaxim0v:

Ideas:

egasimus commented 2 years ago

import * from fadroma

import * as Fadroma from 'fadroma' -> in TS it's still namespaced so no issue there.

use *

agreed (?) on:

use fadroma::*          // includes cosmwasm_std
use fadroma::prelude::* // includes cosmwasm_std::*

risk of name clashes

imo the library's nomenclature shouldn't clash with the platform's either way and it doesn't, clash was downstream

egasimus commented 2 years ago

Work item: dat big mysterious packages refactor.