Git Product home page Git Product logo

bitcoin-wallet's Introduction

Urbit

Urbit is a personal server stack built from scratch. It has an identity layer (Azimuth), virtual machine (Vere), and operating system (Arvo).

A running Urbit "ship" is designed to operate with other ships peer-to-peer. Urbit is a general-purpose, peer-to-peer computer and network.

This repository contains the Arvo Kernel

For the Runtime, see Vere. For more on the identity layer, see Azimuth. To manage your Urbit identity, use Bridge.

Install

To install and run Urbit, please follow the instructions at urbit.org/getting-started. You'll be on the live network in a few minutes.

Contributing

Contributions of any form are more than welcome! Please take a look at our contributing guidelines for details on our git practices, coding styles, and how we manage issues.

You might also be interested in joining the urbit-dev mailing list.

Release

For details about our release process, see the maintainers guidelines

bitcoin-wallet's People

Contributors

jalehman avatar philipcmonk avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

escapingnetwork

bitcoin-wallet's Issues

Add hardware wallet support

Christian knows someone that can tell us what best practices are for doing browser-based hw wallet authentication.

We could do variants of this, e.g. QR code signing, but directly hooking up Ledger & Trezor is the critical path.

I should be able to request BTC from a counterparty

Utilizing transclusion would be ideal here, but it's harder, and may depend on ongoing work being done for Grid/software distribution.

For now, a simple relative link with query parameters, e.g. /~btc?pay=~wolref-podlex&curr=usd&value=20&note=cash%20rules%20everything%20around%20me

If I were to press the "Request" button, it would take me to a screen that looks like the one where we're paying someone, but with a "Copy Link" button as the primary action. Copying that link generates a URL like the one shown above that will prefill into the opener's wallet.

It's not clear how to sign a TX outside of bridge or using a master ticket

At the moment, users who have decided to use a different xpub than the one associated with their urbit ID are not shown how they might go about sending a transaction. The "Send" component just shows "Sign with Bridge" or "Sign with Master Ticket". If the user selects "Sign with Bridge", a PSBT will be printed to their dojo (which they can then use to broadcast the transaction externally), however there's no indication in the UI that this has occurred (or that broadcasting it using some external app will be necessary).

Visual regression in USD pricing printing

Currently, it appears as though our display of USD currency counts in the bitcoin wallet has regressed a bit:

Screen Shot 2021-07-19 at 2 52 47 PM

Displaying currency amounts should appear as such: $83.47

Or, as displayed in the latest designs:

Screen Shot 2021-07-19 at 2 55 31 PM

btc-wallet spawns new Bridge tabs at ~1m intervals

I sent some BTC to another ship, and once I got to the signing portion of the transaction and clicked 'Sign with Bridge', my browser began spamming new tabs that redirected to the Bridge signing URL. These tabs would open 3 at a time, appx. once a minute. When I opened a second tab with btc-wallet, that tab also spawned new Bridge tabs. This behavior persisted until the transaction cleared and I closed the window, perhaps 10 minutes.

Using current Brave (Chromium)

Make signing with Bridge the primary flow

Right now signing with a master ticket is primary, which is a much smoother flow for demos, but is also fairly dangerous. Let's do two things:

  1. Make Sign with Bridge the default option.
  2. Add a disclaimer when in Sign with Master Key that this is action is unsafe.

Bitcoin Wallet unclosable for new users in Port

Duplicate of urbit/landscape#1157

Describe and screenshoot the design issue
There is no way to close Bitcoin Wallet from the initial setup screen.

  • In Port this is untenable. I have to restart my machine just go get back home.
  • Not a problem in Chrome. I can just go back a page.

If you're a new user and don't know any provider nodes you're stuck. I am part of this demographic.

In addition, the Home button in Port doesn't help. It returns to the boot page with my list of ships. Reopening the ship takes me to the bitcoin wallet.

Screen Shot 2021-09-09 at 12 22 35 PM

To Reproduce

Open ship in Port

  1. dojo: |start %btc-wallet
  2. Launch Bitcoin Wallet app

Expected design behavior
Other apps have Leap. This issue mentions it: urbit/landscape#1095

Or just an X button.

I haven't seen the rest of the Bitcoin Wallet app. This issue is probably relevant to the entire app and not just the setup screen.

Desktop (please complete the following information):

  • OS: macOS Mojave
  • Browser: n/a
  • Base hash of your urbit ship. Run +trouble in Dojo to see this.

Missing balance before transaction confirms

On initially setting up my wallet, I sent a transaction of >$100 to my ship's address. This morning, I sent a small amount of bitcoin from my wallet to another ship with the fees set to low, and the transaction has not cleared ~15 hours later. I was surprised to find that over a hundred dollars of sats are no longer listed in my balance -- on closer inspection, I saw that the first deposit was no longer listed in my transaction history.

~timluc-miptev suggests that this is likely because the small transaction spent from address of the initial deposit, and since it has still not cleared, it does not see the change as available balance. I expect that whenever this transaction is confirmed, the wallet will once again be able to see the remainder of the deposit. However, I can see this coming as an upsetting surprise to some.

Edit: After the spend confirmed, the balance returned -- however, it still does not list the deposit that it spent from in my transaction history.

Standalone BTC Wallet will not start up

Currently, on the recently-updated network, the bitcoin wallet app simply fails to resolve or display an interface.

This is the error I'm seeing in the web console:

Screen Shot 2021-09-30 at 3 07 53 PM

Bitcoin desk info:

%bitcoin
  /sys/kelvin:      [%zuse 420]
  base hash:        0v15.309sf.6l1bk.l6bh6.c142e.of3jg.tbna0.qehna.4go0u.ceq25.8kkfo
  %cz hash:         0v15.309sf.6l1bk.l6bh6.c142e.of3jg.tbna0.qehna.4go0u.ceq25.8kkfo
  app status:       running
  force on:         ~
  force off:        ~
  publishing ship:  [~ ~mister-dister-dozzod-dozzod]
  updates:          tracking
  source ship:      ~sabbus
  source desk:      %bitcoin
  source aeon:      2
  pending updates:  ~
::
%base

Watch the mempool for external transactions

Right now, when bitcoin is being sent to one of your addresses without using the Bitcoin Wallet, you have no way of knowing that the transaction is incoming. Watching the mempool would resolve this.

Grammar error setup screen

Current: "In order to perform Bitcoin transaction in Landscape, you'll need to set a provider node. A provider node is an urbit which maintains a synced Bitcoin ledger. Learn More"

Super nitpicky but the changes are

  1. an indefinite article before Bitcoin
  2. calling it "an urbit" instead of "a Ship" is like calling it "a Windows" instead of "a PC"

Should be: "In order to perform a Bitcoin transaction in Landscape, you'll need to set a provider node. A provider node is a Ship which maintains a synced Bitcoin ledger. Learn More"

https://github.com/urbit/urbit/blob/6ab7f53fff2775daf409886a89b122c4e7d116f6/pkg/btc-wallet/src/components/ProviderModal.tsx#L102

Can't start btc-wallet after doze and fade

Hi,

I had %btc-wallet running but decided to |doze %btc-wallet (to put it to sleep) and then later decided to |fade %btc-wallet because I wanted to "uninstall" it and start from scratch (I had inputted a bunch of xpubs that I no longer wanted to have in the wallet, thought it best to start fresh).

After doing this, I couldn't start the wallet again. I got this output when trying to run |start %btc-wallet:

gall: loading %btc-wallet
>   '%btc-wallet initialized'
poke failed from %btc-wallet on wire /btc-wallet-server
/app/file-server/hoon:<[127 72].[127 74]>
"url already bound to [content=[%clay path=/app/btc-wallet] public=%.n single-page=%.y]"
/app/file-server/hoon:<[127 9].[127 75]>
/app/file-server/hoon:<[126 7].[132 9]>
/app/file-server/hoon:<[125 7].[132 9]>
/app/file-server/hoon:<[123 5].[156 7]>
/app/file-server/hoon:<[122 5].[162 7]>
/app/file-server/hoon:<[121 5].[162 7]>
/app/file-server/hoon:<[111 28].[111 68]>
/app/file-server/hoon:<[110 3].[117 5]>
/app/file-server/hoon:<[109 3].[117 5]>
/app/file-server/hoon:<[108 3].[305 5]>
/app/file-server/hoon:<[107 3].[305 5]>
/sys/vane/gall/hoon:<[1.371 9].[1.371 37]>
poke failed from %btc-wallet on wire /btc-wallet-tile
/app/launch/hoon:<[153 7].[158 9]>
/app/launch/hoon:<[151 5].[184 7]>
/app/launch/hoon:<[150 5].[184 7]>
/app/launch/hoon:<[144 25].[144 60]>
/app/launch/hoon:<[143 5].[145 7]>
/app/launch/hoon:<[142 3].[146 15]>
/app/launch/hoon:<[141 3].[146 15]>
/app/launch/hoon:<[140 3].[190 5]>
/app/launch/hoon:<[139 3].[190 5]>
/sys/vane/gall/hoon:<[1.371 9].[1.371 37]>
crud: %belt event failed
[%poke %belt]
wire=/clear-huck
  bar-stack
~[
  ~[/dill //term/1]
  ~[/gall/clear-huck /dill //term/1]
  ~[/gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet /dill //term/1]
  ~[
    /gall/sys/cor/btc-wallet/~finned-palmer/home/~2021.6.4..10.25.03..cd70
    /gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet
    /dill
    //term/1
  ]
  ~[/gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet /dill //term/1]
  ~[
    /gall/use/dojo/0w1.qdI6P/out/~finned-palmer/hood/drum_~finned-palmer/poke
    /dill
    //term/1
  ]
  ~[/dill //term/1]
  ~[
    / gall
      use
      dojo
      0w1.qdI6P
      ~finned-palmer
      drum_~finned-palmer
      hand
      gen
      hood
      start
    /dill
    //term/1
  ]
  ~[
    / gall
      use
      hood
      0w1.qdI6P
      out
      ~finned-palmer
      dojo
      drum
      phat
      ~finned-palmer
      dojo
    /dill
    //term/1
  ]
  ~[/dill //term/1]
  ~[//term/1]
]
take: failed
/sys/vane/gall/hoon:<[1.782 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.783 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.785 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.788 3].[1.795 5]>
[%gall-take-failed /clear-huck]
/sys/vane/gall/hoon:<[1.789 3].[1.795 5]>

Someone in the UC Help channel suggested that I run :file-server &file-server-action [%unserve-dir /app/btc-wallet], but this produced the same response.

Someone suggested these commands:
:file-server &file-server-action [%unserve-dir /'~btc']
:file-server &file-server-action [%unserve-dir /'~btc/js/bundle']
:file-server &file-server-action [%unserve-dir /'~btc'/js/bundle]

I ran these, then got this when trying to |start again:

gall: loading %btc-wallet
'%btc-wallet initialized'
poke failed from %btc-wallet on wire /btc-wallet-tile
/app/launch/hoon:<[153 7].[158 9]>
/app/launch/hoon:<[151 5].[184 7]>
/app/launch/hoon:<[150 5].[184 7]>
/app/launch/hoon:<[144 25].[144 60]>
/app/launch/hoon:<[143 5].[145 7]>
/app/launch/hoon:<[142 3].[146 15]>
/app/launch/hoon:<[141 3].[146 15]>
/app/launch/hoon:<[140 3].[190 5]>
/app/launch/hoon:<[139 3].[190 5]>
/sys/vane/gall/hoon:<[1.371 9].[1.371 37]>
crud: %request event failed
[%poke %request]
wire=/clear-huck
  bar-stack
~[
  ~[/dill //term/1]
  ~[/gall/clear-huck /dill //term/1]
  ~[/gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet /dill //term/1]
  ~[
    /gall/sys/cor/btc-wallet/~finned-palmer/home/~2021.6.6..14.20.41..16c0
    /gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet
    /dill
    //term/1
  ]
  ~[/gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet /dill //term/1]
  ~[
    /gall/use/dojo/0w1.qdI6P/out/~finned-palmer/hood/drum_~finned-palmer/poke
    /dill
    //term/1
  ]
  ~[/dill //term/1]
  ~[
    / gall
      use
      dojo
      0w1.qdI6P
      ~finned-palmer
      drum_~finned-palmer
      hand
      gen
      hood
      start
    /dill
    //term/1
  ]
  ~[
    / gall
      use
      hood
      0w1.qdI6P
      out
      ~finned-palmer
      dojo
      drum
      phat
      ~finned-palmer
      dojo
    /dill
    //term/1
  ]
  ~[/dill //term/1]
  ~[/gall/use/herm/0w1.qdI6P/~finned-palmer/belt/ /dill //term/1]
  ~[/eyre/channel/poke/1622989218162-8cd36a/27 //http-server/0vn.jsqdd/7.212/27]
  ~[//http-server/0vn.jsqdd/7.212/27]
]
take: failed
/sys/vane/gall/hoon:<[1.782 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.783 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.785 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.788 3].[1.795 5]>
[%gall-take-failed /clear-huck]
/sys/vane/gall/hoon:<[1.789 3].[1.795 5]>

Someone then suggested I run this (to remove the btc-wallet tile): :launch &launch-action [%remove %btc-wallet]

Now when I try to |start I get this response:

gall: loading %btc-wallet
'%btc-wallet initialized'
crud: %request event failed
[%poke %request]
wire=/clear-huck
  bar-stack
~[
  ~[/dill //term/1]
  ~[/gall/clear-huck /dill //term/1]
  ~[/gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet /dill //term/1]
  ~[
    /gall/sys/cor/btc-wallet/~finned-palmer/home/~2021.6.6..19.49.49..6eb6
    /gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet
    /dill
    //term/1
  ]
  ~[/gall/use/hood/0w1.qdI6P/~finned-palmer/drum/home/btc-wallet /dill //term/1]
  ~[
    /gall/use/dojo/0w1.qdI6P/out/~finned-palmer/hood/drum_~finned-palmer/poke
    /dill
    //term/1
  ]
  ~[/dill //term/1]
  ~[
    / gall
      use
      dojo
      0w1.qdI6P
      ~finned-palmer
      drum_~finned-palmer
      hand
      gen
      hood
      start
    /dill
    //term/1
  ]
  ~[
    / gall
      use
      hood
      0w1.qdI6P
      out
      ~finned-palmer
      dojo
      drum
      phat
      ~finned-palmer
      dojo
    /dill
    //term/1
  ]
  ~[/dill //term/1]
  ~[/gall/use/herm/0w1.qdI6P/~finned-palmer/belt/ /dill //term/1]
  ~[/eyre/channel/poke/1623008962065-da1b93/31 //http-server/0vn.jsqdd/7.332/31]
  ~[//http-server/0vn.jsqdd/7.332/31]
]
take: failed
/sys/vane/gall/hoon:<[1.782 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.783 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.785 3].[1.795 5]>
/sys/vane/gall/hoon:<[1.788 3].[1.795 5]>
[%gall-take-failed /clear-huck]
/sys/vane/gall/hoon:<[1.789 3].[1.795 5]>

I'm still a big time hoon noob, so I'm not really sure what I'm looking at here. Somebody suggested in UC help that I post a GH issue so that we can better track suggestions and the eventual solution.

Any help is greatly appreciated, thank you!

Auto-validate @p entry, even if no tilde is included

Galen Feedback:

  • If I paste in a planet name with no ~ into the ‘To’ field I get an error. Can we prepend a ~ or try to validate as a @p without one?

We should handle this in a similar manner to landscape's handling of PatP search/filtering.

Implement BTC transaction notifications (within Landscape)

One of the more obvious features we can begin moving towards to bridge Landscape and BTC Wallet is to provide notifications in Landscape whenever a new transaction is witnessed.

From a design POV, the implementation is rather straightforward:

"Receiving BTC" Notifications:

Screen Shot 2021-05-28 at 12 13 57 PM

Screen Shot 2021-05-28 at 12 14 00 PM

and someday, receiving a direct request from another user/address:

Screen Shot 2021-05-28 at 12 14 05 PM

Given our move to decouple key userspace infrastructure from "Landscape as we know it now", to "Grid Landscape", where all apps can make use of notification APIs, it's worth considering how we might go about designing a general API for wallet transaction notifications.

Cannot navigate back to Landscape from BTC wallet on Port

Cannot navigate back to Landscape from BTC wallet when using Port. Port does not offer a URL bar where you could clip the "/~btc" off the end of the URL. Neither is there an (X) button to exit Bitcoin wallet. Launch Bitcoin Wallet on Port to reproduce.

Feature Request: Request payment from other ships

Problem
Right now you can only send money through btc-wallet. It would be nice if one ship could request payment from another.

Proposed Solution
A "request" tab in btc-wallet by which one ship can request an amount from another ship (given its public address).

Maybe a notification appears in Landscape when you get such a request.

It would be really cool if these requests could be embedded in a DM. Similar to the way Apple Pay is integrated into iMessage.

Additional context
A friend and I are making a chat bot. The bot has a set of paid features. It would be really convenient if the bot could send a payment request in chat to upgrade to the paid features.

I imagine other chat bots built in the future would benefit from this feature too.

Resolve client-side balance determination issues

Clients use siphash to determine what addresses need to be rechecked in each block for balance determination.

All of your siphashed addresses are checked against a small data structure from the provider to determine if any new transactions match your addresses.

An alternative approach to this issue is to cache the hashed addresses. This is probably the easiest path to fixing the underlying performance issue.

Resources

Convert to modern react paradigms

Hooks/context for state management, functions rather than classes. useEffecf for lifecycle, useState for individual state variables.

It should be easier to start the wallet up

This refers to the installation instructions. It shouldn't take going into a dojo and typing out |start %btc-wallet.

This will ultimately be resolved by software distribution.

Meeting Notes

~2021.6.23

@ixv

  • launched blockfilter, which fixes some issues
  • but now there's a hashing issue that requires jetting
  • there are also provider performance issues related to HTTP requests, but this isn't investigated
  • been working on #11 to do things the way Bridge does, which should be done tomorrow

@bioy-casares

  • working on article about new functionality, months ahead (and perhaps a retrospective?)
  • will give that to us by Wednesday of next week (June 30th)

@timlucmiptev

  • are we going to move the code into a new repo?
  • @jalehman yes, this repo whenever we get software distribution working
  • will transfer repos to Urbit organization

Notes

  • Isaac and Christian will remain in the loop and keep coming to these
  • @timlucmiptev will begin running these meetings
  • ~finned-palmer will be joining the team next week

I should see that my balance is being determined when connecting to a provider

Ideally this would provide feedback to the user as to how much progress had made, i.e. a progress bar. We can only really do this though if we're using a blockfilter-based approach, but that results in a pretty big performance hit.

The other approach is to tell the user how many addresses have been scanned so far, which doesn't tell you how long it'll take precisely, but the user will have some idea of how many addresses they've utilized most likely.

White screen + console error when opening bitcoin-wallet

Console error

react-dom.production.min.js:209 
TypeError: this.props.tx.txid.dat.slice(...).replaceAll is not a function
    at r.value (transaction.js:80)
    at Na (react-dom.production.min.js:182)
    at Pa (react-dom.production.min.js:181)
    at gl (react-dom.production.min.js:263)
    at cs (react-dom.production.min.js:246)
    at ls (react-dom.production.min.js:246)
    at $l (react-dom.production.min.js:239)
    at react-dom.production.min.js:123
    at t.unstable_runWithPriority (scheduler.production.min.js:19)
    at Di (react-dom.production.min.js:122)
el @ index.2fa306f66a2d4f9dd6c3.js:52
r.callback @ index.2fa306f66a2d4f9dd6c3.js:52
fo @ index.2fa306f66a2d4f9dd6c3.js:52
ol @ index.2fa306f66a2d4f9dd6c3.js:52
hs @ index.2fa306f66a2d4f9dd6c3.js:52
t.unstable_runWithPriority @ index.2fa306f66a2d4f9dd6c3.js:60
Di @ index.2fa306f66a2d4f9dd6c3.js:52
ds @ index.2fa306f66a2d4f9dd6c3.js:52
$l @ index.2fa306f66a2d4f9dd6c3.js:52
(anonymous) @ index.2fa306f66a2d4f9dd6c3.js:52
t.unstable_runWithPriority @ index.2fa306f66a2d4f9dd6c3.js:60
Di @ index.2fa306f66a2d4f9dd6c3.js:52
qi @ index.2fa306f66a2d4f9dd6c3.js:52
Vi @ index.2fa306f66a2d4f9dd6c3.js:52
Wl @ index.2fa306f66a2d4f9dd6c3.js:52
enqueueSetState @ index.2fa306f66a2d4f9dd6c3.js:52
A.setState @ index.2fa306f66a2d4f9dd6c3.js:44
value @ index.js:1
value @ index.js:4465
(anonymous) @ index.js:1
eventSource.onmessage @ channel.js:264

transaction.js:80 
Uncaught TypeError: this.props.tx.txid.dat.slice(...).replaceAll is not a function
    at r.value (transaction.js:80)
    at Na (react-dom.production.min.js:182)
    at Pa (react-dom.production.min.js:181)
    at gl (react-dom.production.min.js:263)
    at cs (react-dom.production.min.js:246)
    at ls (react-dom.production.min.js:246)
    at $l (react-dom.production.min.js:239)
    at react-dom.production.min.js:123
    at t.unstable_runWithPriority (scheduler.production.min.js:19)
    at Di (react-dom.production.min.js:122)
value @ index.js:4465
Na @ index.2fa306f66a2d4f9dd6c3.js:52
Pa @ index.2fa306f66a2d4f9dd6c3.js:52
gl @ index.2fa306f66a2d4f9dd6c3.js:52
cs @ index.2fa306f66a2d4f9dd6c3.js:52
ls @ index.2fa306f66a2d4f9dd6c3.js:52
$l @ index.2fa306f66a2d4f9dd6c3.js:52
(anonymous) @ index.2fa306f66a2d4f9dd6c3.js:52
t.unstable_runWithPriority @ index.2fa306f66a2d4f9dd6c3.js:60
Di @ index.2fa306f66a2d4f9dd6c3.js:52
qi @ index.2fa306f66a2d4f9dd6c3.js:52
Vi @ index.2fa306f66a2d4f9dd6c3.js:52
Wl @ index.2fa306f66a2d4f9dd6c3.js:52
enqueueSetState @ index.2fa306f66a2d4f9dd6c3.js:52
A.setState @ index.2fa306f66a2d4f9dd6c3.js:44
value @ index.js:1
value @ index.js:4465
(anonymous) @ index.js:1
eventSource.onmessage @ channel.js:264

Frontend app appears to be bricked cause refeshing doesn't solve it, still get blank screen. No printfs in ship's log either.

When clicking "Replace Wallet", there is no confirmation dialogue box for an irreversible action

I clicked "Replace Wallet", thinking that it would prompt me for further action but instead I was booted back to the screen which asks for a provider. I wasn't actually trying to replace it, and also didn't know what that meant, so I wanted to "undo" the action but there was no way to do that.

Having a simple "Are you sure you want to replace your wallet?" window, along with a link to some section in the urbit.org btc wallet docs about what this means would probably be more than enough

Refine the UX around key input/confirming

Galen Feedback:

  • The arrow next to ‘Confirm master key’ is really confusing. Is that a link? What is that?
  • If I click ‘change wallet’ there doesn’t appear to be any way to exit out of the ‘import your public key’ flow. Clicking the background doesn’t close the modal.
  • Even worse, it reappears on refresh. I guess I cleared my wallet? This should have a prompt in front of it or something if I’m resetting the app state

Ensure the BTC primary balance never renders in a weird/ugly manner

Galen Feedback:

  • When I increment the number of sats I get fairly ugly numbers in the BTC field. I.e., 14 sats is 1.4e-7 btc. 

This is generally pretty simple:

We should ensure to whatever degree possible, we only render BTC balances that are numeric in nature, no mathematical notation. Trailing zeros should only really be counted to the fourth zero, i.e. 0.0004.

btc-wallet "copy address" button doesn't work

Describe the bug
Clicking the "Copy Address" button in the btc-wallet app does not copy anything to the clipboard, on either mobile or desktop. Clicking the address also had no noticeable effect. I captured a screensot of a console error from the desktop, which was produced each time I clicked on either the bitcoin address itself or the "Copy Address" button.

For extra context, my btc wallet was initiated from my ship's master ticket, and I had just selected a provider immediately before trying to copy this address.

Screenshots
image
Desktop (please complete the following information):

  • OS: macos
  • Browser: chrome

Smartphone (please complete the following information):

  • Device: iPhone 11
  • OS: iOS
  • Browser: chrome

Transaction history does not update + empty transaction history on moon

A few months ago, I sent some btc to my planet's wallet from Coinbase. Worked fine.

  1. Recently booted a new moon and set up the wallet. Noticed the moon's transaction history was empty, though the balance was the same as its planet's.
  2. Created a channel subscribed to btc-wallet/all and logged events.
  3. Sent more BTC from Coinbase and noticed there was no "new-tx" event emitted.
  4. tx history remained empty on the moon and curiously did not update on the planet.

Screenshots show the current state, planet and moon respectively.

Running Port on macOS Monterey. Bitcoin wallet version 0.0.1. Provider node is ~faster-wallet-dozzod-matwet

Screen Shot 2022-05-02 at 12 27 11

Screen Shot 2022-05-02 at 12 27 30

.

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.