synonymdev / bitkit Goto Github PK
View Code? Open in Web Editor NEWSelf-custodial Bitcoin and Lightning Wallet for Android and iOS.
Home Page: https://bitkit.to
License: MIT License
Self-custodial Bitcoin and Lightning Wallet for Android and iOS.
Home Page: https://bitkit.to
License: MIT License
Click on the total balance
multiple times.
Describe the bug
Add Bikit logo for brand recognition.
To Reproduce
Steps to reproduce the behavior:
Smartphone (please complete the following information):
Describe the bug
Pull to refresh wallet not working on Android
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Spinner appears and sync action runs
Smartphone (please complete the following information):
Additional context
working on iOS
I experimented with keeping all data in the Slashtags storage and loading it on demand as opposed to caching it in Redux to save on both memory and disk storage. That works ok until you need to list 100 contacts and then you really wish you had a persistent cache.
So I am caching data including Contacts
in Redux, but this can get too big and bloated so I am looking for opportunities for optimization.
1- I will validate incoming profiles and slashpay configurations and remove any junk data or strings bigger than expected length before caching it. That would protect from spamming attacks with unbounded data.
2- I think since the profile image
is expected to be the biggest item by far in any profile up to 90%
, I was thinking we should take a remote image data URL
from the profile, save it in user's Images
then get that local URL
and save it in the cache instaed.
My question is, is 2
worth it? if so how to do that?
Describe the bug
After letting the app run for some time and pulling to refresh to Bitcoin balance goes to zero
To Reproduce
Expected behavior
Balance shouldn't be zero
Smartphone (please complete the following information):
Describe the bug
Error shows up after loading the app: Could not invoke Ldk.updateFees
To Reproduce
Steps to reproduce the behavior:
Smartphone (please complete the following information):
Describe the bug
Derived addresses are invalid if uppercased.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Scanning QR works or sending to address string
Screenshots
Example invalid URI:
bitcoin:2MZGHHOAQSHBPRTTKHNUUQA7EQSOAPYYWUV?amount=0&label=&message=&lightning=LNBCRT0M1P33RUPZDQQNP4QVFPD6PC2Z7JN0TKNWS9MUCDX3VSQKW5HAMZC7Y0GWX39D85UX6HXPP58MPZXR24RCLH0SC89LCAM2F4LZ543XXA3Q4DKEKGL46HUMVZPQWQSP5JA67EGTMQ2EDYP976NUPGPKHC27YXZHZK92TEEV2YGPEP920ZWEQ9QYYSGQCQPCXQZ95YHVNK2R9RDYW50JZEUYWTP2ZK4RPKHQH5W3E6WKA2LQGRCE36UW3LSGEVKA3VTWWMWADJV3LR05NZZR7HGS9WNLWTPFTZ30DERHKZCCP4230V8
Additional context
Should only uppercase case insensitive strings (bech32) or don't change casing at all.
Describe the bug
When the keyboard pops up (iOS), 1/3 of the screen is covered, but the remain page can not be scrolled, so anything on the lower 1/3 of the page is no longer accessible (including the 'Save Peer' button).
Note: this issue has also occurred in other parts of the app - the keyboard gets in the way and can't be removed.
To Reproduce
Go to the settings -> Networks -> Electrum Config page
Try and edit the host or port.
The keyboard pops up as expected
However, there is no way to dismiss the keyboard again (the 'hide keyboard' button is not present and you can't de-focus to hide it that way either).
Expected behavior
The page should scroll when the keyboard is visible, so you can scroll to areas of the page under the keyboard,
or the keyboard should be dismiss-able.
Adding Next / Previous buttons could also help, as iOS normally does when filling in a web form
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
iOS
Additional context
Was trying to set up regtest servers so I could mine some coins
Describe the bug
Missing the activity log after restore wallet.
To Reproduce
Steps to reproduce the behavior:
settings
> advanced
> dev settings
> wipe wallet data
restore wallet
button.Expected behavior
The activity log should show up with your recent transactions.
Smartphone (please complete the following information):
Describe the bug
When toggling networks from "Settings->Advanced->Dev Settings->Bitcoin Network Selection" the app requires a full restart for the change to take effect.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The address for the new network appears.
Smartphone
Describe the bug
After restore a wallet, don't ask for backup your seed again.
To Reproduce
Steps to reproduce the behavior:
settings
> advanced
> dev settings
> wipe wallet data
wallet backup
will show up to you.Expected behavior
If you just restore you wallet tapping your seed, we should not ask for the user to backup the wallet again.
Smartphone (please complete the following information):
Describe the bug
In the To field, click on the QR icon - nothing happens
To Reproduce
Steps to reproduce the behavior:
Send
Normal
Press the QR icon in the To field
Nothing happens
Expected behavior
Camera opens and lets me scan a QR code
Note, this does work correctly if you click on the QR button on the home page (between Send and Receive)
Screenshots
na
Smartphone (please complete the following information):
Describe the bug
Create a new receive address and send some bitcoin to yourself. After the transaction being confirmed, the activity log still shows "Sending...", next to the transaction.
Clicking Boost transactions shows, "Cannot read property 'message' of undefined"
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Should we prevent self sends in general?
Screenshots
Smartphone (please complete the following information):
Describe the bug
On the splash screen there is a space on the left.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The splash screen should not have that left space and be fullscreen.
Screenshots
Smartphone (please complete the following information):
Describe the bug
Typing a dollar amount into the NumberPad with more than 5 digits resets the input
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Amount shows as 11,111.11
Screenshots
https://user-images.githubusercontent.com/8538369/185458941-b5ec2cfc-5355-4883-83d0-18bd319d15c3.mp4
Additional context
Bug in OnChainNumberPad
, line 84
Probably caused by the "," character in the formatted dollar value
Describe the bug
Reviewing the Onboarding screens:
To Reproduce
Steps to reproduce the behavior:
settings
> advanced
> dev settings
> wipe wallet data
.Current behaviour
Expected behavior
Smartphone (please complete the following information):
Describe the bug
When sending a transaction, the stack of coins image ends up covering the Notes field, making the screen look confused.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Maybe the keyboard should cover the image. It shouldn't end up on top of the notes field though :-)
Screenshots
Smartphone (please complete the following information):
Describe the bug
When the app asks for camera for permission and it's rejected by the user. They are presented with a black screen and the only way out is to close the app.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Describe the bug
The "Spending and saving" page crashes on iOS and is non-functional. Need to kill the app to get out of it.
I submitted 2 crash reports following this sequence
To Reproduce
Steps to reproduce the behavior:
Tapped the 'Pay Instantly' suggestion, then 'Quick Setup' on the Instant Payments into page.
Arrive at crashed page.
Expected behavior
to not crash and let me slide the slider around :-)
Screenshots
na
Smartphone (please complete the following information):
Additional context
none
Temp crash/hanging fix here but once issue is properly fixed in @react-navigation/native-stack we should remove detachInactiveScreens={false}
Describe the bug
When viewing the transaction details, where it shows the transaction id, it should be possible to copy each of those fields to the clipboard (esp the transaction id)
Smartphone (please complete the following information):
I get an error:
ERROR Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.
in LoadingWalletScreen (at Slideshow.tsx:232)
Maybe we should do it this way?
useEffect(() => {
let unmounted = false;
// repeat entering animation every DURATION seconds
const interaval = setInterval(() => {
if (!unmounted) {
setKey((v) => !v);
}
}, DURATION);
return () => {
unmounted = true;
clearInterval(interaval);
};
}, []);
Describe the bug
Some flavors of Android will allow non-standard app icon shapes
Expected behavior
BitKit icon should respect the custom shape set by the OS
In the screenshot the shape is set to something like "rounded"
Smartphone (please complete the following information):
Describe the bug
When the BottomSheet is open, swiping back from the edge of the screen or pressing software/physical back button of the phone does not close the BottomSheet but the app itself.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
BottomSheet should close not app.
Smartphone (please complete the following information):
Describe the bug
Currently technical (error) messages are shown to the user via toasts in some places.
Expected behavior
Show a non-technical description of the error/event and if applicable a suggestion for the user to resolve the error (retry, restart app etc.)
Description
Add a button to input three zeros at once if the denomination of Send/Receive/Lightning NumberPad is set to satoshis.
Change Share button
message.
Describe the bug
Terms of service
information are missing.
To Reproduce
Steps to reproduce the behavior:
terms of service
- nothing happensExpected behavior
Should show the terms of service
.
Screenshots
Smartphone (please complete the following information):
I can't do it myself (combination of less experience with RN and M1 chip) but If anyone can try switching from RAWS
to RARN, please let me know if it works.
https://github.com/synonymdev/bitkit/blob/master/src/components/SlashtagsProvider.tsx#L50
Describe the bug
Sometimes the background of the settings screens is transparent on Android making the wallet screen show through. It may only be an emulator issue. If somebody knows for sure please close this issue. Also noticed it on a real device now.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The background has a solid black color
Smartphone (please complete the following information):
The settings menu issue with transparency on mac "m1" persists for sub-menus.
Describe the bug
When trying to enter the amount to pay (Bitcoin payment, in sats), there is a delay from typing before the number updates.
To Reproduce
Steps to reproduce the behavior:
Press Send from the home screen
Normal
Try and type an amount.
Notice how long it takes for numbers to update
Expected behavior
instant
Screenshots
na
Smartphone (please complete the following information):
Error message happens when I try to run on Android Emulator.
If I revert the last commit (9ee4eae) added by this PR (#211) it works.
1 - Pull the code from master
2 - To build for Android run: yarn android
3 - Run: yarn start
Console message error:
info Reloading app...
BUNDLE ./index.js
WARN Require cycle: node_modules/react-native-crypto/index.js -> node_modules/react-native-randombytes/index.js -> node_modules/sjcl/sjcl.js -> node_modules/react-native-crypto/index.js
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN ViewPropTypes will be removed from React Native. Migrate to ViewPropTypes exported from 'deprecated-react-native-prop-types'.
WARN Require cycle: src/utils/wallet/index.ts -> src/store/actions/wallet.ts -> src/utils/wallet/index.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/utils/wallet/transactions.ts -> src/utils/scanner.ts -> src/utils/wallet/transactions.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/store/actions/wallet.ts -> src/utils/wallet/transactions.ts -> src/utils/scanner.ts -> src/store/actions/wallet.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/utils/wallet/index.ts -> src/store/actions/wallet.ts -> src/utils/wallet/transactions.ts -> src/utils/scanner.ts -> src/utils/wallet/index.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/utils/wallet/index.ts -> src/store/actions/wallet.ts -> src/utils/wallet/transactions.ts -> src/utils/scanner.ts -> src/store/actions/user.ts -> src/utils/wallet/index.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/utils/wallet/index.ts -> src/store/actions/wallet.ts -> src/utils/wallet/transactions.ts -> src/utils/wallet/index.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/store/actions/wallet.ts -> src/utils/wallet/transactions.ts -> src/store/actions/wallet.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/utils/wallet/index.ts -> src/store/actions/wallet.ts -> src/utils/wallet/transactions.ts -> src/utils/wallet/electrum.ts -> src/utils/wallet/index.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/store/actions/wallet.ts -> src/utils/wallet/transactions.ts -> src/utils/wallet/electrum.ts -> src/store/actions/wallet.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
WARN Require cycle: src/utils/wallet/index.ts -> src/store/actions/wallet.ts -> src/utils/wallet/transactions.ts -> src/store/actions/activity.ts -> src/utils/wallet/index.ts
Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
ERROR Error: Exception in HostObject::get for prop 'Ldk': java.lang.NoClassDefFoundError: Failed resolution of: Lorg/ldk/batteries/ChannelManagerConstructor$EventHandler;, js engine: hermes
ERROR Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication). A frequent cause of the error is that the application entry file path is incorrect.
This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes
ERROR Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication). A frequent cause of the error is that the application entry file path is incorrect.
This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes```
We're showing the network message when our network is down but we should also show it when the wallet is unable to connect to electrum.
Related to #281
Describe the bug
Go to wallet details page, try go back by pulling the screen corner, app hangs
To Reproduce
Steps to reproduce the behavior:
Expected behavior
app works
Smartphone (please complete the following information):
Describe the bug
While using the app I noticed that the iOS 'Camera is on' indicator was enabled. The app was not actively using the camera at the time. I had used it earlier, but did not notice when it went wrong.
To Reproduce
Steps to reproduce the behavior:
Used the camera at some point. Camera stayed on.
Expected behavior
Camera should be off when not in use.
Screenshots
na
Smartphone (please complete the following information):
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.