Giter Club home page Giter Club logo

blixt-wallet's Introduction

Hi there ๐Ÿ‘‹

I'm a Bitcoin and Lightning developer.
Check out hsjoberg/blixt-wallet for an open-source and non-custodial Bitcoin Lightning Wallet. โšก

blixt-wallet's People

Contributors

ar563 avatar bholm avatar blckbx avatar darth-coin avatar dependabot[bot] avatar djkazic avatar dolcalmi avatar eikion5 avatar fiatjaf avatar fridokus avatar git-sgmoore avatar hsjoberg avatar juanangel avatar matshenricson avatar mmzgc776 avatar niteshbalusu11 avatar reckless-satoshi avatar rex4539 avatar sesam avatar steliosrammos avatar t4t5 avatar transifex-integration[bot] avatar vafanassieff avatar wchancao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blixt-wallet's Issues

Restore wallet

Only for on-chain.
Postpone channel restoring for now, backup system (Google Drive etc) needs to be implemented as well.

native-base components forces its children to re-render

Consider this simple component:

import React from "react";
import { Container, Button } from "native-base";

export default ()  => {
  const [_, set] = useState(0);
  const Rerender = () => {
    console.log("RENDER");
    return (<></>);
  };

  rerender = useMemo(() => {
    return (<Rerender />);
  }, []);

  return (
    <Container>
      <Button onPress={() => set(Math.random()) } />
      {rerender}
    </Container>
  );
}

Pressing on the button so that the state changes causes Rerender component to re-render.
Replacing Container with react-natives View will solve the issue -- Rerender will not re-render if the button is pressed.

Perhaps check with up-stream?

On-chain transaction list needs to recognize channel close transactions

There's currently a non-sustainable solution for showing which transactions relates channel opening.
This needs to be reworked to a solution that can track both channel openings and closings.
The gRPC doesn't give us much to go with unfortunately.

Postpone if no clear and straight forward solution is found.

Tests

Umbrella issue for tests

GUI testing:

  • Receive
  • Send
  • Overview
  • Settings
  • On-chain
  • Channels
  • Welcome/Create Wallet
  • LNURL

Integration and store testing:

  • Index
  • Lightning
  • Send
  • Receive
  • Transaction
  • Channel
  • LNURL
  • Google
  • GoogleDriveBackup

Automatically mark and recognize purchases from Yalls, Bitrefill and other Lightning stores through a local registry

Store a local static registry of known parties.
When paying an invoice, the pubkey of the receiver could be matched against the registry.

This is very useful for the transaction log for example Yalls, which only shows the bought article in the description.
We could prefix this the same way as the NameDesc protocol (#20).
This should be stored in its own field in the DB and NameDesc should take priority.

Settings

Umbrella issue for different setting options on the Settings window:

  • Login with Pincode
  • Login with Fingerprint
  • Show mnemonic
  • Fiat currency
  • Bitcoin unit
  • Show current network peers (Bitcoin)
  • Set trusted node for SPV
  • Name
  • Show node data (Lightning)
  • Automatically open channels
  • Backup channels to Google drive
  • Open lnd log
  • About

Scheduled job to sync chain every X hours

Investigate FlatList one last time

FlatList for the transaction list is causing unacceptable lagging for the header height navigation on Overview window.

Information on the internet suggests that this issue is only present when using the dev build of the android app and not in the actual production version.

Prefix BOLT11 description with recipient name

To provide better UX, transaction log should display the user which money was sent to.
As BOLT11 doesn't provide any way to a recipient name and node alias is not reliable or node could be hidden/unknown, it could be prefixed in the description of the BOLT11 invoice.

<name>: <description>

A name followed by a colon and two spaces could be used to clearly separate the name from the actual description. It should be easy to parse.

  • Implement recipient name into description.
  • Store known "identities" in sqlite and warn if two different pubkeys use the same name

TODO what to do when user does not provide a description

Keystore

Keystore for storing sensitive information.

Includes:

  • Seed
  • Pin-code

Autopilot

Could be postponed until after MVP depending on scope/difficulty in implementing.

Cache for channel balance

Right now we need to wait for channelBalance() otherwise a flash of 0 Sat will be seen, which is not good UX.

This means we cannot improve load times further if we have to wait for channelBalance().
A simple cache of the balance would do.

Only force sync screen if user has been away for a while

Neutrino syncs so fast that there's no real reason to always wait for syncedToChain when starting up if the user has not been a away for a while (say 7 days). The user won't have time to pay an invoice anyways so we should just let the user in to the app.

Perhaps a sync icon should be displayed in the Blixt top bar.

BigInt for handling numbers

Arithmetic operations on milli-satoshis can lead to loss in precision.

There's a built in BigInt lib in JS nowadays that could be used.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.