All Projects → joule-labs → Joule Extension

joule-labs / Joule Extension

Licence: mit
Lightning payments extension for Chrome

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Joule Extension

Lndmanage
Channel management tool for lightning network daemon (LND) operators.
Stars: ✭ 114 (-62.38%)
Mutual labels:  bitcoin, lightning, lightning-network
Umbrel Os
Run Umbrel Bitcoin and Lightning node on a Raspberry Pi in one click
Stars: ✭ 132 (-56.44%)
Mutual labels:  bitcoin, lightning, lightning-network
Phoenix
Phoenix is a non custodial Bitcoin wallet using Lightning to send/receive payments.
Stars: ✭ 129 (-57.43%)
Mutual labels:  bitcoin, lightning, lightning-network
Blixt Wallet
Bitcoin Lightning Wallet with focus on usability and user experience
Stars: ✭ 40 (-86.8%)
Mutual labels:  bitcoin, lightning, lightning-network
Polar
One-click Bitcoin Lightning networks for local app development & testing
Stars: ✭ 265 (-12.54%)
Mutual labels:  bitcoin, lightning, lightning-network
Lightning Faucet
A faucet for the Lightning Network!
Stars: ✭ 56 (-81.52%)
Mutual labels:  bitcoin, lightning, lightning-network
lightning-browser-extension
The Bitcoin Lightning Browser extension that connects to different wallet interfaces and brings deep lightning integration to the web
Stars: ✭ 194 (-35.97%)
Mutual labels:  lightning, browser-extension, lightning-network
Umbrel
A personal Bitcoin and Lightning node designed for everyone
Stars: ✭ 508 (+67.66%)
Mutual labels:  bitcoin, lightning, lightning-network
Ln Service
Node.js interface to LND
Stars: ✭ 191 (-36.96%)
Mutual labels:  bitcoin, lightning, lightning-network
Lncli Web
Light-weight web client for the lnd daemon written in NodeJS / Angular.
Stars: ✭ 181 (-40.26%)
Mutual labels:  bitcoin, lightning, lightning-network
Lightninglib
lightninglib is a fork of lnd which aims to be usable as a go library inside any application, including mobile apps.
Stars: ✭ 11 (-96.37%)
Mutual labels:  bitcoin, lightning, lightning-network
Spark Wallet
⚡️ A minimalistic wallet GUI for c-lightning, accessible over the web or through mobile and desktop apps.
Stars: ✭ 215 (-29.04%)
Mutual labels:  bitcoin, lightning, lightning-network
Eclair
A scala implementation of the Lightning Network.
Stars: ✭ 892 (+194.39%)
Mutual labels:  bitcoin, lightning, lightning-network
Lightning Rfc
Lightning Network Specifications
Stars: ✭ 1,224 (+303.96%)
Mutual labels:  bitcoin, lightning, lightning-network
Lnd
Lightning Network Daemon ⚡️
Stars: ✭ 5,623 (+1755.78%)
Mutual labels:  bitcoin, lightning, lightning-network
Awesome Bitcoin Payment Processors
🌟 A curated list of Bitcoin payment processors enabling merchants, businesses and nonprofits to accept Bitcoin payments.
Stars: ✭ 129 (-57.43%)
Mutual labels:  bitcoin, lightning, lightning-network
Electrum
Electrum Bitcoin Wallet
Stars: ✭ 5,353 (+1666.67%)
Mutual labels:  bitcoin, lightning, lightning-network
Zeus
A mobile Bitcoin/Lightning app for lnd, c-lightning, and Eclair node operators ⚡️
Stars: ✭ 175 (-42.24%)
Mutual labels:  bitcoin, lightning, lightning-network
Lndhub
Wrapper for Lightning Network Daemon. It provides separate accounts and trust minimization for end users
Stars: ✭ 203 (-33%)
Mutual labels:  bitcoin, lightning, lightning-network
Eclair Mobile
An Android wallet for the Lightning Network
Stars: ✭ 231 (-23.76%)
Mutual labels:  bitcoin, lightning, lightning-network

Joule, get it now at lightningjoule.com

Overview

A chrome extension that lightning-charges your browser with webln, giving you the ability to pay and use your node as an identity on the web.

WARNING: Joule is in early alpha, and should not be used for large mainnet funds

Install for Chrome Install for Brave Install for Firefox Opera coming soon

Project Layout

joule-extension/
├── src                   # All source code
│   ├── app                 # The main React app, used by the other clients
│   │   ├── index.tsx         # Entry point for the app
│   │   ├── AppRoutes.tsx     # Routes used in the popup and options clients
│   │   ├── PromptRoutes.tsx  # Routes used in the prompt client
│   │   ├── components        # All reusable components
│   │   ├── lib               # Standalone libraries, potentially split into node modules
│   │   ├── modules           # Vertical slices of business logic, mostly redux code
│   │   ├── pages             # Container components for app routes
│   │   ├── prompts           # Container components for prompts
│   │   ├── static            # Static assets that are compiled and processed
│   │   ├── store             # Redux setup and configuration
│   │   ├── style             # Global or common-use styles
│   │   ├── typings           # Module typings for TypeScript
│   │   └── utils             # Miscellanious utility functions and constants
│   ├── background_script  # Extension background script
│   ├── content_script     # Extension content script, injects inpage_script and communicates with background_script
│   ├── inpage_script      # In-page injected script, manages WebLN
│   ├── options            # Options client, full screen version of the app
│   ├── popup              # Popup client, opened by clicking icon in toolbar
│   ├── prompt             # Prompt client, opened by WebLN and BOLT-11 links
│   └── webln              # WebLN implementation, injected via inpage_script
├── static             # Static assets that don't go through any processing
├── dist-dev           # Developer builds go here, not checked into git
└── dist-prod          # Production builds go here, not checked into git

Development

  1. Run yarn install && yarn run dev
  2. Open Chrome -> More Tools -> Extensions
  3. Toggle "Developer mode" (if such a toggle exists)
  4. Click "Load unpacked"
  5. Select the joule-extension/dist-dev folder you created
  6. Get to work!

If you're also working on webln, you'll want to clone and build that repository, and run yarn link. Then come back to the joule folder and run yarn link webln.

NOTE: After making changes, you'll need to close and re-open the extension to load the latest build.

Redux DevTools:

  1. Open the extension popup or full page
  2. Right click on the background
  3. Choose Redux Devtools -> Open Remote DevTools
  4. A new window will open displaying the Redux actions list

React DevTools:

  1. Run npm install -g react-devtools
  2. Be sure to use yarn run dev to build the app
  3. Run react-devtools in a new Terminal
  4. A new window will open displaying the React vdom inspector

React Hot Reload:

  1. Run yarn run hot instead of yarn run dev

Building

To make a production build, follow these steps

  1. Run yarn build
  2. Raw files and a zip of them will be output to dist-prod

Releasing

  1. Bump the version number in package.json and static/manifest.json
  2. Create a git tag called v${version} and push it
  3. Run a build
  4. Make a new Github release, upload the build assets, write a changelog
  5. Upload the built zip to the Chrome developer dashboard, Firefox addons site, and Opera addons site

Testing

...regrettably, TBD

Contributing

Please see the Contributor Guidelines on the Wiki.

Shoutouts

  • Thanks to the MetaMask team for establishing a ton of the UX best practices for browser crypto payments.
  • Thanks to @afilini for providing a small prototype reference implementation of the extension flow.
  • Thanks to Chaincode Labs for putting together the 2018 Lightning residency, where this was born.

Pay me money pls

Tip wbobeirne on TipHub
My pubkey starts with 02458b08

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].