GithubHelp home page GithubHelp logo

bluewallet / bluewallet Goto Github PK

View Code? Open in Web Editor NEW
2.5K 82.0 769.0 125 MB

Bitcoin wallet for iOS & Android. Built with React Native

Home Page: https://bluewallet.io

License: MIT License

JavaScript 53.51% Shell 0.41% Java 0.29% Objective-C 0.19% Ruby 0.65% Swift 6.18% C 0.01% Starlark 0.06% C++ 0.38% TypeScript 37.86% Objective-C++ 0.48%
bitcoin blockchain cryptocurrency reactnative react-native bitcoinjs

bluewallet's Introduction

BlueWallet - A Bitcoin & Lightning Wallet

GitHub tag CircleCI code style: prettier

Thin Bitcoin Wallet. Built with React Native and Electrum.

Appstore Playstore

Website: bluewallet.io

Community: telegram group

  • Private keys never leave your device
  • Lightning Network supported
  • SegWit-first. Replace-By-Fee support
  • Encryption. Plausible deniability
  • And many more features...

BUILD & RUN IT

Please refer to the engines field in package.json file for the minimum required versions of Node and npm. It is preferred that you use an even-numbered version of Node as these are LTS versions.

To view the version of Node and npm in your environment, run the following in your console:

node --version && npm --version
  • In your console:
git clone https://github.com/BlueWallet/BlueWallet.git
cd BlueWallet
npm install

Please make sure that your console is running the most stable versions of npm and node (even-numbered versions).

  • To run on Android:

You will now need to either connect an Android device to your computer or run an emulated Android device using AVD Manager which comes shipped with Android Studio. To run an emulator using AVD Manager:

  1. Download and run Android Studio
  2. Click on "Open an existing Android Studio Project"
  3. Open build.gradle file under BlueWallet/android/ folder
  4. Android Studio will take some time to set things up. Once everything is set up, go to Tools -> AVD Manager.
  5. Click on "Create Virtual Device..." and go through the steps to create a virtual device
  6. Launch your newly created virtual device by clicking the Play button under Actions column

Once you connected an Android device or launched an emulator, run this:

npx react-native run-android

The above command will build the app and install it. Once you launch the app it will take some time for all of the dependencies to load. Once everything loads up, you should have the built app running.

  • To run on iOS:
npx pod-install
npm start

In another terminal window within the BlueWallet folder:

npx react-native run-ios

**To debug BlueWallet on the iOS Simulator, you must choose a Rosetta-compatible iOS Simulator. This can be done by navigating to the Product menu in Xcode, selecting Destination Architectures, and then opting for "Show Both." This action will reveal the simulators that support Rosetta. **

  • To run on macOS using Mac Catalyst:
npx pod-install
npm start

Open ios/BlueWallet.xcworkspace. Once the project loads, select the scheme/target BlueWallet-NoLDK. Click Run.

TESTS

npm run test

LICENSE

MIT

WANT TO CONTRIBUTE?

Grab an issue from the backlog, try to start or submit a PR, any doubts we will try to guide you. Contributors have a private telegram group, request access by email [email protected]

Translations

We accept translations via Transifex

To participate you need to:

  1. Sign up to Transifex
  2. Find BlueWallet project
  3. Send join request
  4. After we accept your request you will be able to start translating! That's it!

Please note the values in curly braces should not be translated. These are the names of the variables that will be inserted into the translated string. For example, the original string "{number} of {total}" in Russian will be "{number} из {total}".

Transifex automatically creates Pull Request when language reaches 100% translation. We also trigger this by hand before each release, so don't worry if you can't translate everything, every word counts.

Q&A

Builds automated and tested with BrowserStack

Bugs reported via BugSnag

RESPONSIBLE DISCLOSURE

Found critical bugs/vulnerabilities? Please email them [email protected] Thanks!

bluewallet's People

Contributors

abhishandy avatar bordalix avatar danswar avatar davh avatar davidullo avatar demerzel3 avatar dependabot[bot] avatar ez0010 avatar felixdragon avatar fiatjaf avatar gladosbluewallet avatar jaonoctus avatar jontzi avatar junderw avatar limpbrains avatar marcosrdz avatar mcsaeid avatar mgurzenski avatar ncoelho avatar overtorment avatar pajasevi avatar renovate-bot avatar renovate[bot] avatar sansegkh avatar setavenger avatar sha-265 avatar snyk-bot avatar tanx avatar transifex-integration[bot] avatar xanoni 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  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

bluewallet's Issues

Explore RBF option

I was offered an RBF option (button) on a transaction that I was receiving. I'm not sure what that means. For most users, you probably need
more explanation of what RBF is or how to use it.

Crash importing lnd wallet

auth uses login:pass ggpbqxgu ShHKg=IfNd7v&cQx
20:33:21
Object {
  "access_token": "2JYJVRULOLI0HGLOMISOCW",
  "expiry": "0001-01-01T00:00:00Z",
  "refresh_token": "EWMWVSVLW3USRBYE9KLRBG",
  "token_type": "Bearer",
}
20:33:22
Object {
  "btc_txs": Array [
    Object {
      "account": "163812",
      "address": "358HY31cWzaSzmyJk6p12WDbmspSoYYAxS",
      "amount": 0.00001,
      "blockhash": "00000000000000000000df7088fac057a3f4839eb1ea1902dbfef2a2d9d7660f",
      "blockindex": 2063,
      "blocktime": 1536061408,
      "category": "receive",
      "confirmations": 613,
      "time": 1536059454,
      "timereceived": 1536059454,
      "txid": "1e824d8d38a537c8fac416998ef915406421bb93341d0486e9e17852ac72e65b",
      "walletconflicts": Array [],
    },
  ],
  "paid_invoices": null,
  "sended_coins": null,
}
20:33:23
Object {
  "BTC": Object {
    "AvailableBalance": 1000,
    "TotalBalance": 1000,
    "UncomfirmedBalance": 0,
  },
}
20:33:24
got event WALLETS_COUNT_CHANGED ...
20:33:24
dispatching event WALLETS_COUNT_CHANGED
20:33:24
refreshFunction()
20:33:28
▼BigNumber Error: new BigNumber() number type has more than 15 significant digits: 1000.0000000000001

This error is located at:
    in StaticRenderer (at ListView.js:476)
    in RCTScrollContentView (at ScrollView.js:748)
    in RCTScrollView (at ScrollView.js:856)
    in ScrollView (at ListView.js:341)
    in ListView (at list.js:383)
    in RCTView (at View.js:113)
    in View (at List.js:10)
    in List (at BlueComponents.js:446)
    in BlueList (at list.js:382)
    in RCTView (at View.js:113)
    in View (at list.js:381)
    in RCTView (at View.js:113)
    in View (at list.js:323)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (at index.js:128)
    in SafeView (at withOrientation.js:50)
    in withOrientation (at BlueComponents.js:153)
    in SafeBlueArea (at list.js:274)
    in WalletsList (at SceneView.js:17)
    in SceneView (at CardStack.js:466)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (at Card.js:12)
    in Card (at PointerEventsContainer.js:39)
    in Container (at CardStack.js:498)
    in RCTView (at View.js:113)
    in View (at CardStack.js:414)
    in RCTView (at View.js:113)
    in View (at CardStack.js:413)
    in CardStack (at CardStackTransitioner.js:67)
    in RCTView (at View.js:113)
    in View (at Transitioner.js:142)
    in Transitioner (at CardStackTransitioner.js:19)
    in CardStackTransitioner (at StackNavigator.js:41)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (at SceneView.js:17)
    in SceneView (at ResourceSavingSceneView.js:55)
    in RCTView (at View.js:113)
    in View (at ResourceSavingSceneView.js:48)
    in RCTView (at View.js:113)
    in View (at ResourceSavingSceneView.js:39)
    in ResourceSavingSceneView (at TabView.js:35)
    in RCTView (at View.js:113)
    in View (at TabViewPagerScroll.js:150)
    in RCTScrollContentView (at ScrollView.js:748)
    in RCTScrollView (at ScrollView.js:856)
    in ScrollView (at TabViewPagerScroll.js:128)
    in TabViewPagerScroll (at TabViewAnimated.js:71)
    in RCTView (at View.js:113)
    in View (at TabViewAnimated.js:194)
    in TabViewAnimated (at TabView.js:192)
    in TabView (at withCachedChildNavigation.js:69)
    in withCachedChildNavigation(TabView) (at TabNavigator.js:34)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (at SceneView.js:17)
    in SceneView (at DrawerScreen.js:21)
    in DrawerScreen (at withCachedChildNavigation.js:69)
    in withCachedChildNavigation(DrawerScreen) (at DrawerNavigator.js:71)
    in Unknown (at createNavigator.js:13)
    in Navigator (at DrawerView.js:178)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (created by DrawerLayout)
    in RCTView (at View.js:113)
    in View (created by DrawerLayout)
    in DrawerLayout (at DrawerView.js:158)
    in DrawerView (at DrawerNavigator.js:88)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (created by AwakeInDevApp)
    in RCTView (at View.js:113)
    in View (created by AwakeInDevApp)
    in AwakeInDevApp (at registerRootComponent.js:34)
    in RootErrorBoundary (at registerRootComponent.js:33)
    in ExpoRootComponent (at renderApplication.js:35)
    in RCTView (at View.js:113)
    in View (at AppContainer.js:102)
    in RCTView (at View.js:113)
    in View (at AppContainer.js:122)
    in AppContainer (at renderApplication.js:34)
- node_modules/bignumber.js/bignumber.js:1191:35 in raise
- node_modules/bignumber.js/bignumber.js:263:27 in BigNumber
* screen/wallets/list.js:449:54 in renderRow
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:1667:86 in finishClassComponent
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2528:33 in performUnitOfWork
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2554:141 in workLoop
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:73:23 in _invokeGuardedCallback
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:47:40 in invokeGuardedCallback
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2593:41 in performWork
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2728:101 in scheduleUpdateImpl
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:1514:90 in enqueueSetState
- node_modules/react/cjs/react.development.js:218:31 in setState
* screen/wallets/list.js:115:20 in <unknown>
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:154:6 in _callTimer
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:411:17 in callTimers
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:302:47 in __callFunction
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:116:26 in <unknown>
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:265:6 in __guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:115:17 in callFunctionReturnFlushedQueue

Wallet disappear from main window

From fresh installation create a new wallet, then go to Settings, click on the menu icon on top left, it will appear the build version (mine is BlueWallet v.1.2.0 (build 25)), if I touch the build version it returns to the main window but the wallet disappears.

The wallet is still there because send and receive work correctly and if I close and reopen the app the wallet is again in the main window, but I do not think this is a correct behaviour.

I use an iPhone 6s with iOS 11.3.1.

Tx confirmations bug report

Reported by a tester:

I received a transaction. It says "confirmations: 7" on the "transaction details" page. That's not possible, I just sent it
(and I checked). The balance did not update in the colored box. I can't get it to update by switching wallets and switching back
or refreshing transactions. I have no Send button. If this was a big transaction, I would be panicking.

crash scrolling to lnd card

crash scrolling to lnd card. Crash happen before reaching lnd wallet card

20:42:39
snapped to, and now its time to refresh wallet # 2
20:42:39
snapped to card # 2
20:42:41
Object {
  "BTC": Object {
    "AvailableBalance": 1000,
    "TotalBalance": 1000,
    "UncomfirmedBalance": 0,
  },
}
20:42:41
Imported Lightning (custodian) thinks its time to refresh TXs
20:42:41
Object {
  "btc_txs": Array [
    Object {
      "account": "163812",
      "address": "358HY31cWzaSzmyJk6p12WDbmspSoYYAxS",
      "amount": 0.00001,
      "blockhash": "00000000000000000000df7088fac057a3f4839eb1ea1902dbfef2a2d9d7660f",
      "blockindex": 2063,
      "blocktime": 1536061408,
      "category": "receive",
      "confirmations": 617,
      "time": 1536059454,
      "timereceived": 1536059454,
      "txid": "1e824d8d38a537c8fac416998ef915406421bb93341d0486e9e17852ac72e65b",
      "walletconflicts": Array [],
    },
  ],
  "paid_invoices": null,
  "sended_coins": null,
}
20:42:41
Array []
20:42:41
refreshFunction()
20:42:44
▼BigNumber Error: new BigNumber() number type has more than 15 significant digits: 1000.0000000000001

This error is located at:
    in StaticRenderer (at ListView.js:476)
    in RCTScrollContentView (at ScrollView.js:748)
    in RCTScrollView (at ScrollView.js:856)
    in ScrollView (at ListView.js:341)
    in ListView (at list.js:383)
    in RCTView (at View.js:113)
    in View (at List.js:10)
    in List (at BlueComponents.js:446)
    in BlueList (at list.js:382)
    in RCTView (at View.js:113)
    in View (at list.js:381)
    in RCTView (at View.js:113)
    in View (at list.js:323)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (at index.js:128)
    in SafeView (at withOrientation.js:50)
    in withOrientation (at BlueComponents.js:153)
    in SafeBlueArea (at list.js:274)
    in WalletsList (at SceneView.js:17)
    in SceneView (at CardStack.js:466)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (at Card.js:12)
    in Card (at PointerEventsContainer.js:39)
    in Container (at CardStack.js:498)
    in RCTView (at View.js:113)
    in View (at CardStack.js:414)
    in RCTView (at View.js:113)
    in View (at CardStack.js:413)
    in CardStack (at CardStackTransitioner.js:67)
    in RCTView (at View.js:113)
    in View (at Transitioner.js:142)
    in Transitioner (at CardStackTransitioner.js:19)
    in CardStackTransitioner (at StackNavigator.js:41)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (at SceneView.js:17)
    in SceneView (at ResourceSavingSceneView.js:55)
    in RCTView (at View.js:113)
    in View (at ResourceSavingSceneView.js:48)
    in RCTView (at View.js:113)
    in View (at ResourceSavingSceneView.js:39)
    in ResourceSavingSceneView (at TabView.js:35)
    in RCTView (at View.js:113)
    in View (at TabViewPagerScroll.js:150)
    in RCTScrollContentView (at ScrollView.js:748)
    in RCTScrollView (at ScrollView.js:856)
    in ScrollView (at TabViewPagerScroll.js:128)
    in TabViewPagerScroll (at TabViewAnimated.js:71)
    in RCTView (at View.js:113)
    in View (at TabViewAnimated.js:194)
    in TabViewAnimated (at TabView.js:192)
    in TabView (at withCachedChildNavigation.js:69)
    in withCachedChildNavigation(TabView) (at TabNavigator.js:34)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (at SceneView.js:17)
    in SceneView (at DrawerScreen.js:21)
    in DrawerScreen (at withCachedChildNavigation.js:69)
    in withCachedChildNavigation(DrawerScreen) (at DrawerNavigator.js:71)
    in Unknown (at createNavigator.js:13)
    in Navigator (at DrawerView.js:178)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (created by DrawerLayout)
    in RCTView (at View.js:113)
    in View (created by DrawerLayout)
    in DrawerLayout (at DrawerView.js:158)
    in DrawerView (at DrawerNavigator.js:88)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (created by AwakeInDevApp)
    in RCTView (at View.js:113)
    in View (created by AwakeInDevApp)
    in AwakeInDevApp (at registerRootComponent.js:34)
    in RootErrorBoundary (at registerRootComponent.js:33)
    in ExpoRootComponent (at renderApplication.js:35)
    in RCTView (at View.js:113)
    in View (at AppContainer.js:102)
    in RCTView (at View.js:113)
    in View (at AppContainer.js:122)
    in AppContainer (at renderApplication.js:34)
- node_modules/bignumber.js/bignumber.js:1191:35 in raise
- node_modules/bignumber.js/bignumber.js:263:27 in BigNumber
* screen/wallets/list.js:449:54 in renderRow
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:1667:86 in finishClassComponent
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2528:33 in performUnitOfWork
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2554:141 in workLoop
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:73:23 in _invokeGuardedCallback
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:47:40 in invokeGuardedCallback
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2593:41 in performWork
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2756:116 in batchedUpdates
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:209:34 in batchedUpdatesWithControlledComponents
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:3559:50 in _receiveRootNodeIDEvent
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:3564:60 in receiveEvent
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:302:47 in __callFunction
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:116:26 in <unknown>
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:265:6 in __guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:115:17 in callFunctionReturnFlushedQueue
20:42:45
▼Warning: Can only update a mounted or mounting component. This usually means you called setState, replaceState, or forceUpdate on an unmounted component. This is a no-op.

Please check the code for the WalletsList component.
- node_modules/react-native/Libraries/ReactNative/YellowBox.js:71:16 in error
- node_modules/fbjs/lib/warning.js:33:20 in printWarning
- node_modules/fbjs/lib/warning.js:57:25 in warning
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2392:18 in warnAboutUpdateOnUnmounted
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2725:142 in scheduleUpdateImpl
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:1514:90 in enqueueSetState
- node_modules/react/cjs/react.development.js:218:31 in setState
* screen/wallets/list.js:194:24 in <unknown>
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:154:6 in _callTimer
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:411:17 in callTimers
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:302:47 in __callFunction
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:116:26 in <unknown>
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:265:6 in __guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:115:17 in callFunctionReturnFlushedQueue

btczen API error, "min relay fee not met" - blockzypher failing to return Transactions

When trying to broadcast a tx, placing 120sat/b as a fee, the error code -26, message: min relay fee not met is returned.

EDIT: (i) SOMEHOW, the transaction was succesfully broadcasted (I tried broadcasting several times as I didn't understand the error), and this issue clearly belongs to the btczen API, as the error is that I do not have enough funds ATM.
(ii) I suggest adding a pre-loader and disabling the button when clicking on broadcast transaction, as I think, that was MY mistake in first place.
(iii) The real issue here, is that my "Transactions" view, is not updating, I still see my first input transaction recieved with 0 conf, and my only output transaction does not exist, is this a blockzypher integration error?

Crash opening the wallet and scrolling

cick 0
22:36:02
cick 1
22:36:07
onSnapToItem 1
22:36:08
Object {
  "showSend": false,
}
22:36:08
Object {
  "showManageFundsBig": false,
}
22:36:08
snapped to, and now its time to refresh wallet # 1
22:36:08
snapped to card # 1
22:36:08
balance not changed
22:36:09
onSnapToItem 2
22:36:09
snapped to card # 2
22:36:09
onSnapToItem 1
22:36:09
Object {
  "showSend": false,
}
22:36:09
Object {
  "showManageFundsBig": false,
}
22:36:09
snapped to card # 1
22:36:10
onSnapToItem 0
22:36:11
Object {
  "showSend": false,
}
22:36:11
Object {
  "showManageFundsBig": false,
}
22:36:11
snapped to, and now its time to refresh wallet # 0
22:36:11
snapped to card # 0
22:36:11
balance changed, thus txs too
22:36:12
refreshFunction()
22:36:16
▶null is not an object (evaluating 'out.addresses.indexOf')
22:36:17
▼BigNumber Error: new BigNumber() not a number: undefined

This error is located at:
    in StaticRenderer (at ListView.js:476)
    in RCTScrollContentView (at ScrollView.js:748)
    in RCTScrollView (at ScrollView.js:856)
    in ScrollView (at ListView.js:341)
    in ListView (at list.js:383)
    in RCTView (at View.js:113)
    in View (at List.js:10)
    in List (at BlueComponents.js:446)
    in BlueList (at list.js:382)
    in RCTView (at View.js:113)
    in View (at list.js:381)
    in RCTView (at View.js:113)
    in View (at list.js:323)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (at index.js:128)
    in SafeView (at withOrientation.js:50)
    in withOrientation (at BlueComponents.js:153)
    in SafeBlueArea (at list.js:274)
    in WalletsList (at SceneView.js:17)
    in SceneView (at CardStack.js:466)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (at Card.js:12)
    in Card (at PointerEventsContainer.js:39)
    in Container (at CardStack.js:498)
    in RCTView (at View.js:113)
    in View (at CardStack.js:414)
    in RCTView (at View.js:113)
    in View (at CardStack.js:413)
    in CardStack (at CardStackTransitioner.js:67)
    in RCTView (at View.js:113)
    in View (at Transitioner.js:142)
    in Transitioner (at CardStackTransitioner.js:19)
    in CardStackTransitioner (at StackNavigator.js:41)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (at SceneView.js:17)
    in SceneView (at ResourceSavingSceneView.js:55)
    in RCTView (at View.js:113)
    in View (at ResourceSavingSceneView.js:48)
    in RCTView (at View.js:113)
    in View (at ResourceSavingSceneView.js:39)
    in ResourceSavingSceneView (at TabView.js:35)
    in RCTView (at View.js:113)
    in View (at TabViewPagerScroll.js:150)
    in RCTScrollContentView (at ScrollView.js:748)
    in RCTScrollView (at ScrollView.js:856)
    in ScrollView (at TabViewPagerScroll.js:128)
    in TabViewPagerScroll (at TabViewAnimated.js:71)
    in RCTView (at View.js:113)
    in View (at TabViewAnimated.js:194)
    in TabViewAnimated (at TabView.js:192)
    in TabView (at withCachedChildNavigation.js:69)
    in withCachedChildNavigation(TabView) (at TabNavigator.js:34)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (at SceneView.js:17)
    in SceneView (at DrawerScreen.js:21)
    in DrawerScreen (at withCachedChildNavigation.js:69)
    in withCachedChildNavigation(DrawerScreen) (at DrawerNavigator.js:71)
    in Unknown (at createNavigator.js:13)
    in Navigator (at DrawerView.js:178)
    in RCTView (at View.js:113)
    in View (at createAnimatedComponent.js:134)
    in AnimatedComponent (created by DrawerLayout)
    in RCTView (at View.js:113)
    in View (created by DrawerLayout)
    in DrawerLayout (at DrawerView.js:158)
    in DrawerView (at DrawerNavigator.js:88)
    in Unknown (at createNavigator.js:13)
    in Navigator (at createNavigationContainer.js:226)
    in NavigationContainer (created by AwakeInDevApp)
    in RCTView (at View.js:113)
    in View (created by AwakeInDevApp)
    in AwakeInDevApp (at registerRootComponent.js:34)
    in RootErrorBoundary (at registerRootComponent.js:33)
    in ExpoRootComponent (at renderApplication.js:35)
    in RCTView (at View.js:113)
    in View (at AppContainer.js:102)
    in RCTView (at View.js:113)
    in View (at AppContainer.js:122)
    in AppContainer (at renderApplication.js:34)
- node_modules/bignumber.js/bignumber.js:1191:35 in raise
- node_modules/bignumber.js/bignumber.js:1179:39 in <unknown>
- node_modules/bignumber.js/bignumber.js:194:80 in BigNumber
* screen/wallets/list.js:449:54 in renderRow
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:1667:86 in finishClassComponent
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2528:33 in performUnitOfWork
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2554:141 in workLoop
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:73:23 in _invokeGuardedCallback
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:47:40 in invokeGuardedCallback
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2593:41 in performWork
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:2728:101 in scheduleUpdateImpl
- node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js:1514:90 in enqueueSetState
- node_modules/react/cjs/react.development.js:218:31 in setState
* screen/wallets/list.js:115:20 in <unknown>
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:154:6 in _callTimer
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:411:17 in callTimers
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:302:47 in __callFunction
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:116:26 in <unknown>
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:265:6 in __guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:115:17 in callFunctionReturnFlushedQueue

Unable to broadcast transaction

Hello,

When I try to broadcast a transaction after succesfully creating the transaction hex, I'm unable to broadcast it, the "Broadcast" button is unresponsive.

EDIT: iOS version 11.3.1
EDIT 2: Ran test, and it returns OK

Record simple video for Appstore

And upload it to appstore (in screenshots section). Animated stuff really catches the eye in appstore, I think we'll get more organic installs out of this

Switching language

Switching languages should update text on all pages after the switch. You shouldn't have to scroll
around to get them to change.

Password handling

There should be a way to change the PIN (password) and to remove the PIN.
There should be rate limiting on guessing the PIN, or a wipe after so many bad guesses.

Explore...

Do a research

Do a research on existing iOS (and Android if possible wallets).
Points of interest:

  • Batch send. Whether wallets have this feature, and if yes, how is it implemented UX wise? I assume, for every target address & amount there should be an option to scan it via QR.
  • Multisig. I'm not aware how wallets usually implement multisig so it is user-friendly. I know only Electrum (desktop wallet) supports multisig, but I never tried it. Multisig is super important for security reasons, and doent necessary involves several people. It's usually one person but with several keys (od devices), which he uses to sign the send transaction. So security leaks on one devices doesnt compromise security. Multisig is a corner stone in wallet being made by CasaHODL, see Lopp talk from "Building on Bitcoin"

I feel those are most important features for next releases, and it would be nice to know how other mobile wallets handling it to adopt best practices. If they don't - well, bad for them.

Send/Receive works?

I clone this app, and run on my device.
But it seems that send/receive does not work.
And is this published to app store?

Paddings and margins on tx detail view

We have a problem on basically every view, regarding paddings and elements alignment in general. The new TX detail view is a small example were we can start fixing them.

We should use a 8px grid. In this specific situation padding should be 16px.

photo5819062443173850794

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.