Skip to content

One-click KEEP and tBTC setup for local app development & testing

License

Notifications You must be signed in to change notification settings

cavanmflynn/one-click-keep

Repository files navigation

One-Click KEEP

One-click KEEP networks for local app development & testing

PurposeDownloadCreditsDevelopmentLicense

Purpose

One-Click KEEP was built to help KEEP Network application developers quickly spin up one or more networks locally on their computers.

Key Features:

  • Create a local KEEP Network in a few clicks:
    • 1 Bitcoin Node
    • 1 Ethereum Node
    • 1 Electrum Server
    • Up to 9 KEEP ECDSA Nodes
    • Up to 9 KEEP Random Beacon Nodes
  • Auto-hosted tBTC dApp & KEEP dashboard instances
  • View streaming logs from each node
  • Manually mine new Bitcoin & Ethereum blocks
  • Send bitcoin to fund deposits
  • Export contract artifacts for use in your project
  • Connect from your app to the network via RPC
  • i18n Ready
  • Multiple OS support for Mac, Windows & Linux

Coming Soon:

  • Trigger conditions from the UI (one-click mint, liquidation scenarios, etc.)
  • Manual docker image version selection & custom image support
  • Easier consumption in tbtc.js & other libraries

Have a feature recommendation? DM me in Discord or open an issue!

Download

You can download the latest installable version of One-Click KEEP for Windows, macOS and Linux.

Credits

This project was heavily inspired by Polar. Check it out if you're a Lightning Network developer or interested in the Lightning Network.

Development

Project setup

yarn

Compiles and hot-reloads for development

yarn electron:serve

Bundles for production

yarn electron:build

Lints files

yarn lint

Formats files

yarn format

Folder Structure

src/
├── api/           # Various API clients, which simplify communication with multiple backends
├── components/    # Vue components, which includes both pages and partials
├── filters/       # Filters used for text formatting and other transformations
├── lib/           # Shared code (Custom classes, functions, modules, etc.)
├── localization/  # Language keys and values, which will be used for multi-language support
├── scss/          # SCSS used to style the entire application
├── services/      # TypeDI services, which can be injected into the Vue prototype for use as plugins
├── store/         # The Vuex store, which is used to hold the application's shared state
├── types/         # Typescript types and declaration files
├── main           # The entry point to the Vue application
└── router         # The Vue Router, which enables multi-page navigation in the application

public/
├── assets/        # The applications's static assets (images/fonts/etc.)
├   └──fonts/      # The applications's font files
└── index.html     # The applications's HTML entry point

Libraries

This project makes use of the following libraries for an improved development experience:

  • Vue Class Component - A library that lets you make your Vue components in class-style syntax.

  • Ant Design Vue - An enterprise-class UI components based on Ant Design and Vue.

  • TypeDI - Dependency injection tool for JavaScript and TypeScript.

  • Vuex Module Decorators - TypeScript/ES7 Decorators to create Vuex modules declaratively.

SCSS Namespacing

  • The page mixin should be used used when creating the top-level class for a page.
  • The partial mixin should be used used when creating the top-level class for a partial view.

License

MIT