bither / bither-android Goto Github PK
View Code? Open in Web Editor NEWBither - a simple and secure Bitcoin wallet!
Home Page: http://bither.net
License: Apache License 2.0
Bither - a simple and secure Bitcoin wallet!
Home Page: http://bither.net
License: Apache License 2.0
I created a fresh HD wallet to create a message signing how to, found the corresponding menu point, but the "select address to sign message" box stays empty. Let me know if you need more info, screenshot, seed (its an empty test wallet), etc.
v. 1.6.1 on Android 6.0.1
之前使用 bitcoinj
生成 HD 账户后,可以自行指定 HD
路径进行生成。
例如根据 bip-0044.mediawiki的path-levels 生成新地址,其路径是 m / purpose' / coin_type' / account' / change / address_index
其层级为 6(包括 m)。
那么比太钱包 HD 账户生成新地址的 HD 路径是如何规划的?层级多深?
我在网上看到你们2014年的一个问答,你们说会尽快增加明文私钥的导出,但最新版本的冷钱包仍然无法查看、导出明文私钥?!
https://bitcointalk.org/index.php?topic=606992.460;imode
Hi 你好
我在使用安卓版比太钱包1.6.8版本时遇到问题
当我想导出HD账户密语时提示需要输入密码,我输入了密码后一直提示密码错误,其他需要输入密码的操作如HD账户二维码,修改密码,重载交易数据等均提示密码错误,但是使用钱包发送比特币时密码正确,但是发送的交易长时间得不到确认
Cold wallet. When restoring a backup copy from a SD-card, if there are ordinary private keys (not HD) in the file, then the copy can not be restored - it always displays the message "wrong password" (although the password is 100% correct). If there is only an HD private key in the backup, then everything is restored normally.
Since I have installed Bither on my hot wallet phone, it has used 10% of my battery while I have used it only once. This is a lot.
It is not clear to me, from reading your README or homepage, if you support segwit or not.
It is listed as planned.
冷钱包扫描了交易二维码以后,没有反应。
似乎是 class QRCodeTxTransport 中的 formatQRCodeTransport 没有对非BTC地址的TX做处理。
isAddressHex 如果非BTC地址返回false
private static boolean isAddressHex(String str) {
System.out.println("Is Address check, " + str);
boolean isAddress = false;
if (str.length() % 2 == 0) {
try {
String address = Base58.hexToBase58WithAddress(str);
isAddress = Utils.validBicoinAddress(address);
System.out.println(isAddress);
} catch (Exception e) {
e.printStackTrace();
}
}
I'll use some pseudocode to explain.
There's an outer function which produces b random bytes by XORing two arrays of b bytes from two wrapper functions (one wrapper which eventually gets bytes from /dev/urandom, and one from your custom entropy mixer):
function get_random_bytes(b):
return wrapper1_get_bytes_from_dev_urandom(b) ^ wrapper2_get_bytes_from_custom_mixer(b)
This would look fine to me if at least one of those wrapper functions generated uniform output e.g. if they looked like this:
function wrapper1_get_bytes_from_dev_urandom(b):
return get_bytes_from_dev_urandom(b)
function wrapper2_get_bytes_from_custom_mixer(b):
return get_bytes_from_custom_mixer(b)
But they don't look like the above, instead they both look something like this:
function wrapper1_get_bytes_from_dev_urandom(b):
do
bytes = get_bytes_from_dev_urandom(b)
loop while bytes are all 0's
return bytes
function wrapper2_get_bytes_from_custom_mixer(b):
do
bytes = get_bytes_from_custom_mixer(b)
loop while bytes are all 0's
return bytes
Neither ever returns all 0's, and therefore the get_random_bytes() will slightly favor returning all 0's[1]. If you only use this get_random_bytes() with b=32 to create private keys and k's for signatures, this is a non-issue presuming that you'd discard an all 0's result anyways. However if you use get_random_bytes() for other purposes, or if keys are produced by calling get_random_bytes(1) 32 times, it might be an issue (especially when b is small). I couldn't say how much of an issue; I'm no cryptographer....
[1] Specifically get_random_bytes(b) will produce an all 0's output about (28b - 1) / (28b - 2) times more frequently than any other particular result, which for b=1 is a perhaps noticeable 0.4% greater number of 0's produced.
Good day, I just wanna share that I also made a new in app logos and icon for Bither.
You can check my work here:
https://utopian.io/utopian-io/@baa.steemit/proposal-for-a-new-in-app-logo-and-icon-for-bither-bitcoin-wallet
please support BTF
Please support UBTC
It seems that ArrayMap do not support sorting.
Markets should use another array list object, but referenced to the same market objects
Michael brings this to us.
I'm planning to make a new dialog other than DialogAddressFull
to show this kind of information in an HD Account.
A sample graph goes below.
☀️ | ☁️ |
---|---|
Own | |
my address in path 0, this tx delta > 0 | receiving |
my address in path 1, this tx delta > 0 | changing |
my address this tx delta < 0 | sending |
Foreign | |
a foreign address | the amount it sends or receives |
Hope this is the right place for this. Through a hardware defect I lost an old Bither cold wallet on an Android phone. As far as I remember it was not an HD wallet, e.g. from an older Bither version. I have the encrypted private key and the password to decrypt it. What is the best way to decrypt this key?
Bither shows the wrong account balance.
I tried to "Reload Transactions Data" but it still shows an other balance than i see at blockchain.info
Bither's cold wallet is super safe. There is just one problem. The user has to trust the developers to display the actual transaction and not sign a different transaction to steal the user's coins.
I thought it would be good to have a separate app with only 1 function: scan a QR code of a signed transaction, displayed by Bither cold, and display the transaction. This app should be so simple that anyone can read the source code and understand what it does. People could build this app on their own computer and use it to verify transactions that are signed with Bither cold.
What do you think about this idea? I might be interested in giving this a shot but the Bither code is already quite big so I'm not sure where to start. I have some experience with Android development but not much.
hello i will be brief.. i created a paper wallet in bitaddress.org. Bip38 is a great invention..even if someone finds your private key they cant sweep it to take the funds without the paraphrase. Now how do we change it back to a private key so we can spend the funds?..and please nobody mention bit2factor.org...they are selling the domain name...im proper depressed i have a lot of bitcoin on a bip38 private key. I have the private key. and the paraphrase .So where do i put this information please?...and do remember all bip38 private keys start with 6p....i wrote this early through the week here goes.....hello my name is mohammed ayyub. I unfortunately have some bitcoin on a private key encrypted with bip38. My Private key is starting with 6P. IF YOU CAN HELP ME I WILL DONATE some bitcoin towards the cause. I also have a website (Bitgangstar.com) promoting bonafide bitcoin info etc. For your help i will give you 1NEEHJLFSdH3hggF77iaMXPAfuoVMuYA4g....(.£41.23) Please check public key in Block chain explorer or any bitcoin website you can check public key status. Status of the key is unspent. You can spend the funds providing you have the private key and Paraphrase. Thank you hope to hear from you soon. I have tried the Bit2factor.org website they are no longer live. They are selling the domain name. ($499.00 usd )...The minute you direct me to the right place i will give you some bitcoin for your time and help
p.s(I'm too embarrassed to tell you how much bitcoin i have on a previous bip38 encrypted private key address ) boohoo.. :(
It would be great if you could add instructions to the readme on how to build the apk from source.
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.google.bitcoin.core.Transaction
at net.bither.activity.hot.GenerateUnsignedTxActivity.onCreate(GenerateUnsignedTxActivity.java:130)
crash by savedInstanceState
内部引用Bitherj,我将bitherj加入工程后发现缺少许多类,咱们的bitherj是不是很久没有上传代码了?
When will your wallet or the bitpie wallet support btd (bitcoin Diamond).
in net.bither.util.FileUtil num:547,Not correctly read out the length of the 'bytes'
This issue was reported by Michael_S from bitcointalk https://bitcointalk.org/index.php?topic=696626
We really appreciate Michael_S's help 👍
Hi, can you please consider add the: Get Forked Coins option for the Desktop app?
Thanks in advance for your time
import private key from hot wallet in cold wallet,then monitored this address in hot wallet
When getting forked coin BTP. Always get an send fail error when trying to send to bitpie.
So so everything else seems to be able to transfer to bitpie except for BTP. It just gives an error and stops there.
How can i set a derivation path for import a wallet seed?
Thank you
Repro steps:
Hi,
I wondered if when I create new unsigned transaction in hot HD account monitoring wallet, the change address is the same as the input address? Or the hot wallet creates new address for change?
As you know you need to "spend" all the bitcoin in an input address you use for transaction, even if you want to use only part of the amount in the input address. The change is send to address as part of the transaction output. Also it's not safe to use the same bitcoin address more then one time, for privacy concerns, so change should send to newly created address of you wallet.
Thanks.
It would be great if Bither supported allowing an advanced user to tell it to only connect to peers at specific IP addresses / domains. Bitcoin Wallet on Android supports this, for example.
i build this app but it return Error:(19, 33) error: package net.bither.bitherj.crypto does not exist
你好,大图效果很好。但是我有一只15kb的小图,压缩后变成29kb了
Installed the app yesterday, was working well at that point.
Restarting it today, it stops right after displaying the splashscreen, sometime several time in a row.
I used adb to look at the log, and the error is the following (usually multiple times in a row).
I/MultiDex( 9066): VM has multidex support, MultiDex support library is disabled.
E/Vold ( 321): Failed to find mounted volume for /storage/sdcard1/Android/data/net.bither/cache/
W/Vold ( 321): Returning OperationFailed - no handler for errno 0
W/ContextImpl( 9066): Failed to ensure directory: /storage/sdcard1/Android/data/net.bither/cache
E/Vold ( 321): Failed to find mounted volume for /storage/sdcard1/Android/data/net.bither/cache/
W/Vold ( 321): Returning OperationFailed - no handler for errno 0
W/ContextImpl( 9066): Failed to ensure directory: /storage/sdcard1/Android/data/net.bither/cache
E/UEHandler( 9066): java.lang.ExceptionInInitializerError
E/UEHandler( 9066): at net.bither.BitherApplication$1.run(BitherApplication.java:187)
E/UEHandler( 9066): at java.lang.Thread.run(Thread.java:818)
E/UEHandler( 9066): Caused by: java.lang.NullPointerException: Attempt to get length of null array
E/UEHandler( 9066): at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:60)
E/UEHandler( 9066): at net.bither.bitherj.e.a.a(Script.java:186)
E/UEHandler( 9066): at net.bither.bitherj.e.a.<init>(Script.java:107)
E/UEHandler( 9066): at net.bither.bitherj.core.Out.f(Out.java:160)
E/UEHandler( 9066): at net.bither.bitherj.core.a.z(Address.java:171)
E/UEHandler( 9066): at net.bither.bitherj.core.a.d(Address.java:140)
E/UEHandler( 9066): at net.bither.bitherj.core.a.<init>(Address.java:85)
E/UEHandler( 9066): at net.bither.bitherj.a.a.a.c(AbstractAddressProvider.java:968)
E/UEHandler( 9066): at net.bither.bitherj.a.a.a.b(AbstractAddressProvider.java:42)
E/UEHandler( 9066): at net.bither.bitherj.a.a.a$17.a(AbstractAddressProvider.java:709)
E/UEHandler( 9066): at net.bither.bitherj.a.a.a$17.a(AbstractAddressProvider.java:703)
E/UEHandler( 9066): at net.bither.d.a.b.b(AndroidDb.java:71)
E/UEHandler( 9066): at net.bither.bitherj.a.a.f.b(AbstractProvider.java:38)
E/UEHandler( 9066): at net.bither.bitherj.a.a.a.e(AbstractAddressProvider.java:703)
E/UEHandler( 9066): at net.bither.bitherj.core.b.z(AddressManager.java:119)
E/UEHandler( 9066): at net.bither.bitherj.core.b.<init>(AddressManager.java:57)
E/UEHandler( 9066): at net.bither.bitherj.core.b.<clinit>(AddressManager.java:43)
I did check and the folder in /storage/sdcard1/… is there. I moved it aside in case, and restarded, it was recreated and now contains:
cache:
ad
bither
error.log
cache/bither/error.log
contains another copy of the error
java.lang.ExceptionInInitializerError
at net.bither.BitherApplication$1.run(BitherApplication.java:187)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to get length of null array
at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:60)
at net.bither.bitherj.e.a.a(Script.java:186)
at net.bither.bitherj.e.a.<init>(Script.java:107)
at net.bither.bitherj.core.Out.f(Out.java:160)
at net.bither.bitherj.core.a.z(Address.java:171)
at net.bither.bitherj.core.a.d(Address.java:140)
at net.bither.bitherj.core.a.<init>(Address.java:85)
at net.bither.bitherj.a.a.a.c(AbstractAddressProvider.java:968)
at net.bither.bitherj.a.a.a.b(AbstractAddressProvider.java:42)
at net.bither.bitherj.a.a.a$17.a(AbstractAddressProvider.java:709)
at net.bither.bitherj.a.a.a$17.a(AbstractAddressProvider.java:703)
at net.bither.d.a.b.b(AndroidDb.java:71)
at net.bither.bitherj.a.a.f.b(AbstractProvider.java:38)
at net.bither.bitherj.a.a.a.e(AbstractAddressProvider.java:703)
at net.bither.bitherj.core.b.z(AddressManager.java:119)
at net.bither.bitherj.core.b.<init>(AddressManager.java:57)
at net.bither.bitherj.core.b.<clinit>(AddressManager.java:43)
... 2 more
Anything i can do to fix it?
I have a bip49 seed with a passphrase, didn't work importing it to bither/bitpie I also have the raw private keys for the (segwit) addresses holding my sbtc in question, but when I import them it gives me legacy addresses with no sbtc balance. Does anyone have any ideas on how I can extract it?
https://blog.trezor.io/using-trezor-with-electrum-v3-a0b9bcffe26e
Here is a list of example derivation paths for BIP49, to use new accounts.
m/49'/0'/0' (first account)
m/49'/0'/1' (second account)
m/49'/0'/2' (third account)
...
If you would rather use legacy accounts, use BIP44 paths.
m/44'/0'/0' (first account)
m/44'/0'/1' (second account)
m/44'/0'/2' (third account)
...
I didn't understand how to monitor cold HD account. I don't understand which QR I need to scan from the cold wallet to the hot.
What is the process?
Thanks.
I think this would be a great use case for Bither.
Keep your cold storage encrypted on a paper wallet and when you want to spend it, import it into a cold Bither wallet. Easy to make backups and the keys never touch the internet.
比太包钱包究竟在搞什么?!难道不知道用户用你的钱包很大程度上是看中冷、热存储功能吗?连一个领取BTG的功能都做不完善,还让用户怎么放心用!
而且最可气的是发送BTG地址只能发到比特派钱包地址,强迫用户使用比特派钱包,增加用户的转账成本,我看你们也是快了!反正我以后是不会用了,去**的!
I run Bither Hot (v. 1.2.1) on iOS and Bither Cold (0.0.8) on an always offline Android phone. I just tried to send some BTC from my cold wallet, but Bither on the Android phone will not scan the QR code from the iOS side.
Is there an incompatibility between the two versions? I don't like to update Bither Android because for safety reasons I want to make sure the device has no contact with the outside world.
Hey thankss for your work ..!!!
I maked a proposal for corporate image you can see here ..
https://steemit.com/utopian-io/@orelmely/proposal-logo-to-bither-a-simple-open-source-wallet-bitcoin-fully-editable
Blessings!!
今天从coinbase转了一笔比特币到bither钱包后,钱包就打不开了。
错误信息如下:
03-05 13:38:45.686 14275-14303/? E/UEHandler: java.lang.ExceptionInInitializerError at net.bither.bitherj.core.b.a(AddressManager.java:69) at net.bither.BitherApplication$1.run(BitherApplication.java:187) at java.lang.Thread.run(Thread.java:761) Caused by: java.lang.NullPointerException: Attempt to get length of null array at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106) at net.bither.bitherj.e.a.a(Script.java:186) at net.bither.bitherj.e.a.<init>(Script.java:107) at net.bither.bitherj.core.Out.f(Out.java:160) at net.bither.bitherj.core.a.A(Address.java:172) at net.bither.bitherj.core.a.d(Address.java:141) at net.bither.bitherj.core.a.<init>(Address.java:86) at net.bither.bitherj.a.a.a.c(AbstractAddressProvider.java:968) at net.bither.bitherj.a.a.a.b(AbstractAddressProvider.java:42) at net.bither.bitherj.a.a.a$17.a(AbstractAddressProvider.java:709) at net.bither.bitherj.a.a.a$17.a(AbstractAddressProvider.java:703) at net.bither.d.a.b.b(AndroidDb.java:71) at net.bither.bitherj.a.a.f.b(AbstractProvider.java:38) at net.bither.bitherj.a.a.a.e(AbstractAddressProvider.java:703) at net.bither.bitherj.core.b.z(AddressManager.java:119) at net.bither.bitherj.core.b.<init>(AddressManager.java:57) at net.bither.bitherj.core.b.<clinit>(AddressManager.java:43) at net.bither.bitherj.core.b.a(AddressManager.java:69) at net.bither.BitherApplication$1.run(BitherApplication.java:187) at java.lang.Thread.run(Thread.java:761)
另外,看了下这笔转账的transaction,发现输入和输出中有些比特币地址是bc1开头的,烦请帮助解决。
I made a private key for a new faucet, not expecting to get paid, but then they did pay and now I don't remember the password. Not a big deal because it's a tiny amount, but now I want to try using HDM, and I have to know the password for that too.
I could uninstall and re-install, but I hate to delete private keys. Before I wipe the wallet I thought I would check here to see if there were any options for me.
I probably just mashed on the keyboard for the password. Otherwise I think I would have wrote it down. EDIT: but maybe not if I had to enter the password twice, yikes. EDIT: gah, nevermind. I just remembered it.
Hi there !
Is it possible to use TestNet network for developing inside Bither ?
net.bither.activity.cold.ColdActivity still using net.bither.bitherj.crypto.mnemonic.MnemonicWordList for now.
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.