samourai-wallet-android issueshttps://code.samourai.io/wallet/samourai-wallet-android/-/issues2020-04-17T18:37:02Zhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/405Problem connecting via Tor on Samsumg XCover 4C2020-04-17T18:37:02ZT Dev. DProblem connecting via Tor on Samsumg XCover 4C*Created by: pantadeusz*
Configuration that works:
* (short) Motorola, android 7.0 - all works well (not tested with Dojo)
* Samourai fro APK: 0.99.91 SHA:6be628ad....
Configuration with problems
* Samsung XCover 4s
* SM-G39...*Created by: pantadeusz*
Configuration that works:
* (short) Motorola, android 7.0 - all works well (not tested with Dojo)
* Samourai fro APK: 0.99.91 SHA:6be628ad....
Configuration with problems
* Samsung XCover 4s
* SM-G398FN
* Android 9, G398FNXXS4ATB5, ver PPR1.180610.011.G398FNXXS4ATB55, Knox 3.3
* only wifi/bluetooth connection (tested with multiple access points)
* Samourai fro APK: 0.99.91 SHA:6be628ad....
* dojo + explorer (can send as PM) (Dojo v1.5.0)
## The problem
On my Motorola, everything works fine, but I didn't test with Dojo (I don't want to reset my config until I have working online wallet on second phone). Tor and plain net works great.
On Samsung there is a problem:
* On plainnet it imports wallet without problems and shows balance correctly
* On Tor it randomly shows correct balance or 0
* Via Dojo it always shows 0 balance
The Dojo seems to be working fine, the TorBrowser on Samsung works good and allows to use web interface on Dojo. The Tor on Samourai however does not want to cooperate with my Dojo.
The logs from API (when I refersh balance on my wallet) starts to appear as follows:
```raw
[20200409 11:12:12.010 026 MiB] POST /xpub
[20200409 11:12:14.017 026 MiB] POST /unspent
[20200409 11:12:15.581 026 MiB] POST /multiaddr
[20200409 11:12:17.359 026 MiB] POST /unspent
[20200409 11:12:19.524 026 MiB] GET /fees?at=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJTYW1vdXJhaSBXYWxsZXQgYmFja2VuZCIsInR5cGUiOiJhY2Nlc3MtdG9rZW4iLCJwcmYiOiJhcGkiLCJpYXQiOjE1ODY0Mjk3MDgsImV4cCI6MTU4NjQzMDYwOH0.BxMp0Zpq9TGANkkGFtjrfepKFpicDnvRGJcSq5umEBs
[20200409 11:12:21.290 026 MiB] POST /multiaddr
[20200409 11:12:22.861 026 MiB] POST /unspent
[20200409 11:12:24.404 026 MiB] POST /multiaddr
[20200409 11:12:26.185 026 MiB] POST /unspent
[20200409 11:12:27.858 026 MiB] POST /multiaddr
[20200409 11:12:30.188 025 MiB] POST /unspent
```
The Get request gives only the following information
```json
{"status":"ok"}
```https://code.samourai.io/wallet/samourai-wallet-android/-/issues/411[Feature Request] Offline Sign2020-05-14T14:01:00ZT Dev. D[Feature Request] Offline Sign*Created by: andretrevisani*
I use Samourai Wallet in offline mode. I can receive BTC using Sentinel, but I cannot spend this newly received UTXO, since the offline Samourai Wallet does not have any info of that. The only way I found ou...*Created by: andretrevisani*
I use Samourai Wallet in offline mode. I can receive BTC using Sentinel, but I cannot spend this newly received UTXO, since the offline Samourai Wallet does not have any info of that. The only way I found out is to bring it online to resync, then offline again (kind of beats the purpose of it).
It would be great if I could create an unsigned transaction on the Sentinel wallet (since it has all the info needed), and send it to be signed on the offline Samourai (using QR-code).
It would actually make an offline Samourai Wallet a kind of "hardware wallet", isolated by airgap.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/408For more security spongycastle -> bouncycastle2020-04-14T11:52:25ZT Dev. DFor more security spongycastle -> bouncycastle*Created by: Neustradamus*
For more security, can you change old spongycastle (based on old bouncycastle) to bouncycastle?
- https://www.bouncycastle.org/
- https://www.bouncycastle.org/releasenotes.html
- http://www.bouncycastle.org...*Created by: Neustradamus*
For more security, can you change old spongycastle (based on old bouncycastle) to bouncycastle?
- https://www.bouncycastle.org/
- https://www.bouncycastle.org/releasenotes.html
- http://www.bouncycastle.org/latest_releases.html
- https://www.cvedetails.com/vulnerability-list/vendor_id-7637/Bouncycastle.htmlhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/409Secure wallet delete takes forever if wallet if not synced2020-04-14T21:14:02ZT Dev. DSecure wallet delete takes forever if wallet if not synced*Created by: dimaatmelodromru*
If trying to initiate Secure wallet delete while blue line is still flashing the spinner will spin forever*Created by: dimaatmelodromru*
If trying to initiate Secure wallet delete while blue line is still flashing the spinner will spin foreverhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/404SLIP-39 compatibility2020-04-05T13:47:33ZT Dev. DSLIP-39 compatibility*Created by: brokker*
I can work on implementing [SLIP-39](https://github.com/satoshilabs/slips/blob/master/slip-0039.md) in 2 steps if you think it's a good idea that has a chance of being merged @SamouraiDev .
The work can be split...*Created by: brokker*
I can work on implementing [SLIP-39](https://github.com/satoshilabs/slips/blob/master/slip-0039.md) in 2 steps if you think it's a good idea that has a chance of being merged @SamouraiDev .
The work can be split in 2 steps:
Step 1: Recovery of existing SLIP-39 shares in SW in recovery mode
Step 2: Backup to SLIP-39 shares during SW setup
Please let me know.
Thanks.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/407Message signing includes different address as part of its output2021-06-03T17:28:52ZT Dev. DMessage signing includes different address as part of its output*Created by: kargakis*
I have sent some BTC to a Samourai wallet (bech32 address) and when I try to sign that address, the generated signature seems to be for a totally different address (legacy p2pkh). Not sure if it is worth to post ...*Created by: kargakis*
I have sent some BTC to a Samourai wallet (bech32 address) and when I try to sign that address, the generated signature seems to be for a totally different address (legacy p2pkh). Not sure if it is worth to post the original address and the generated signature but if you think so I can post them.
FWIW the seed for the wallet has been manually imported (I had no funds at start, then I sent some BTC to an address generated by Samourai).https://code.samourai.io/wallet/samourai-wallet-android/-/issues/400Incorrect Address Reflected in the Address Reuse Alert2020-03-10T02:50:31ZT Dev. DIncorrect Address Reflected in the Address Reuse Alert*Created by: dav1dpgit*
In the phone SW application, bitcoin addresses entered or updated on the second screen of the send process are not used for warnings and alerts; worried that it might not be updating the actual destination addres...*Created by: dav1dpgit*
In the phone SW application, bitcoin addresses entered or updated on the second screen of the send process are not used for warnings and alerts; worried that it might not be updating the actual destination address, either, but did not confirm the latter topic.
The following steps produces an incorrect set of information error:
1) Screen 1: Send bitcoin from the post-mix whirlpool. Select the box-brackets at the top of the screen to scan a QR code for an address where the address scanned is a reuse of an previously sent bitcoin address from the SW wallet.
2) Set the amount sent and continue to Screen 2 for fee amount and verification.
3) Screen 2: Set fee amount and initiate send; a popup box will alert that the address is a reused address and allow user to change to another address. Select this option to change address.
4) **On Screen 2**, select the box-brackets at the top of the screen to scan a new address QR code that has not been previously used. The newly scanned unused address fills the destination address information in Screen 2.
5) Initiate send again. The popup alert box returns again stating the address is a reused address and reflects the **initial, first-input** address.
The way I have eliminated this error is to return to Screen 1 and re-start the information input from the beginning.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/359Can not pair to Dojo node2021-10-13T09:47:17ZT Dev. DCan not pair to Dojo node*Created by: Legogris*
Samourai Android version 0.99.85 from Playstore
Dojo v1.1
When trying to pair to Dojo node by scanning QR code, it shows up as disabled and selecting "Enable" yields `Uninstall Samourai Wallet to unpair from y...*Created by: Legogris*
Samourai Android version 0.99.85 from Playstore
Dojo v1.1
When trying to pair to Dojo node by scanning QR code, it shows up as disabled and selecting "Enable" yields `Uninstall Samourai Wallet to unpair from your dojo node. 'DISABLE' will be fully activated in a later update`.
AFAIK I have never paired in the past.
![9778a765-d052-4789-a832-25d684e8f97d](https://user-images.githubusercontent.com/108799/63061036-3612a500-bef4-11e9-9b48-bbfac277515d.jpg)
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/395Privacy Addons not showing on specific UTXO Spend screen2020-02-28T15:38:38ZT Dev. DPrivacy Addons not showing on specific UTXO Spend screen*Created by: bitcoinheiro*
The "Privacy Addons" features are not being shown (cut out of screen apparently)
when sending TX with specific UTXO selected using the new Spend from UTXO feature.
(Manage UTXOs>Specific UTXO>Advanced>Spen...*Created by: bitcoinheiro*
The "Privacy Addons" features are not being shown (cut out of screen apparently)
when sending TX with specific UTXO selected using the new Spend from UTXO feature.
(Manage UTXOs>Specific UTXO>Advanced>Spend)
Happens to regular txs and Post-mix Whirlpool txs
See screenshots for details.
![01](https://user-images.githubusercontent.com/50273260/75562121-be9c0180-5a50-11ea-9541-d6051e5a52c9.jpeg)
![02](https://user-images.githubusercontent.com/50273260/75562114-bcd23e00-5a50-11ea-8411-1db117a6d028.jpeg)
![03](https://user-images.githubusercontent.com/50273260/75562117-bd6ad480-5a50-11ea-8c58-1138423895bf.jpeg)
![04](https://user-images.githubusercontent.com/50273260/75562119-be036b00-5a50-11ea-8a80-452403c8b663.jpeg)
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/390Pop toast for Ricochet fee2020-02-16T20:29:35Zheady_wookPop toast for Ricochet feeWhile fees for premium addons are publicly available around the internet (e.g., support.samourai.io/section/11-premium-transaction-fees), fees are no where to be found in the Samourai android app. Compared to experienced users (who may a...While fees for premium addons are publicly available around the internet (e.g., support.samourai.io/section/11-premium-transaction-fees), fees are no where to be found in the Samourai android app. Compared to experienced users (who may already be aware of the fee), novice users are left responsible to: Do the math (i.e., transaction total - send amount = ricochet fee) or leave the app for a Google fee search when reviewing a transaction. The explicit lack of fee information makes it easy for a user to approve a transaction while being unaware there was an added fee. This may result in a negative user experience.
This issue can be resolved by popping a toast message when the privacy addon Ricochet is selected. A benefit includes added transparency regarding fees for novice users. A risk is that experienced users might find it redundant. The fix can be applied by adding the following lines of code to the respective files:
- File: strings.xml
- Code: `<string name="ricochet_fee">Ricochet Fee: 0.002 BTC</string>`
- Image:
- ![image](https://user-images.githubusercontent.com/38931215/74611508-76c0c600-50b1-11ea-8a82-940a74a0ffb5.png)
and then,
- File: SendActivity.java
- Code: `Toast.makeText(getApplicationContext(),R.string.ricochet_fee,Toast.LENGTH_SHORT).show();`
- Image:
- ![image](https://user-images.githubusercontent.com/38931215/74611500-5b55bb00-50b1-11ea-8a96-205adb9249a4.png)
By using this line of code in the strings.xml, maintenance for fee changes are more easily accessible than going 600+ lines of code into the SendActivity.java. By adding a pop toast fee message, transparency is increased and a negative user experience can be avoided. Also, the message is set to pop for a short length, mitigating the redundancy an experienced user may feel. Here is an example:
![image](https://user-images.githubusercontent.com/38931215/74612187-eb96fe80-50b7-11ea-852d-09361ea95604.png)https://code.samourai.io/wallet/samourai-wallet-android/-/issues/329[Feature Request] Hardware Wallet Support2019-11-11T07:07:04ZT Dev. D[Feature Request] Hardware Wallet Support*Created by: Kartereo*
It would be great to be able to use our Ledger Nano S/X or Trezor 1/T with the best Bitcoin mobile wallet!*Created by: Kartereo*
It would be great to be able to use our Ledger Nano S/X or Trezor 1/T with the best Bitcoin mobile wallet!https://code.samourai.io/wallet/samourai-wallet-android/-/issues/354Disallow pairing JSON scan in existing wallet2019-08-08T19:25:09ZT Dev. DDisallow pairing JSON scan in existing wallet*Created by: antonio-fr*
Since adding a specific Dojo server on a initialized wallet is not possible, the QRscanner in an existing wallet (top icon) should not validate a valid paring JSON string.
When scanning a pairing JSON (from the...*Created by: antonio-fr*
Since adding a specific Dojo server on a initialized wallet is not possible, the QRscanner in an existing wallet (top icon) should not validate a valid paring JSON string.
When scanning a pairing JSON (from the Dojo admin), the app opens the Networking panel and adds a Dojo line. There's only an unrelated error message when click on Enable.
The scanner in the wallet should display an error immediately, eventually in the payment transaction panel, as it is wit an invalid QR code.
I recommend to filter the data read by the scanner, only quit automatically the scanner to perform some actions, on specific "known" patterns. https://code.samourai.io/wallet/samourai-wallet-android/-/issues/353Connect to Dojo screen2019-08-08T19:05:43ZT Dev. DConnect to Dojo screen*Created by: antonio-fr*
On a 1080 line screen (1080 x 2280) Android 9 phone, the *Connect to your Dojo* screen don't have any visible button. To validate it to the next screen (the QR scan) can only be done when touching on the low of ...*Created by: antonio-fr*
On a 1080 line screen (1080 x 2280) Android 9 phone, the *Connect to your Dojo* screen don't have any visible button. To validate it to the next screen (the QR scan) can only be done when touching on the low of "Maintenance control". This zone is very reduced and also not intuitive at all.
![Screenshot_20190808_191617_com samourai wallet](https://user-images.githubusercontent.com/7551901/62730014-70290600-ba1f-11e9-827d-4433da3a57fc.jpg)
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/337Feature request: Atomic Swap2019-06-17T15:31:25ZT Dev. DFeature request: Atomic Swap*Created by: anonymous108*
Hello dear devs. Please forgive me if this already listing somewhere.
I am very interested in a wallet feature called Atomic Swaps, where a person can trade one crypto currency for a different one if the bl...*Created by: anonymous108*
Hello dear devs. Please forgive me if this already listing somewhere.
I am very interested in a wallet feature called Atomic Swaps, where a person can trade one crypto currency for a different one if the blockchain supports that protocol. From my understanding bitcoin does support the Atomic Swap, yes?
Is Atomic Swap feature planned for the Samourai Wallet? If no, please forgive me for asking why.
I read somewhere that Atomic Swap is on github already but I forget where. It was supposed to be written in the Go language. Maybe it's not to hard to integrate but of course would require much testing!
Many thanks for your time with reading this.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/344Post Mix display issues2019-07-04T14:49:58ZT Dev. DPost Mix display issues*Created by: v0l*
Hi,
I found a few issues with the post-mix coin display.
- Marking post mix coins as unspendable subtracts from your balance (pre-mix) resulting in negative balance.
- Pressing back button on post-mix outputs re...*Created by: v0l*
Hi,
I found a few issues with the post-mix coin display.
- Marking post mix coins as unspendable subtracts from your balance (pre-mix) resulting in negative balance.
- Pressing back button on post-mix outputs returns to pre-mix transaction screen (Or so it seems, returning to show outputs displays an empty list, this indicates that this is showing pre-mix outputs as i have none)
- Pressing back button on post-mix outputs does not update the available balance (after marking as unspendable).
- Marking a coin as unspendable does not show as unspendable when returning to the post-mix outputs screen.
![neg_bal](https://user-images.githubusercontent.com/1172179/60669828-ddd29700-9ea1-11e9-9a15-609456259ef9.jpg)
![tx_bal](https://user-images.githubusercontent.com/1172179/60669829-ddd29700-9ea1-11e9-8333-b1021ab3a55f.jpg)
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/309I would to have "Reproducible-Builds" for Samourai2019-03-15T13:22:47ZT Dev. DI would to have "Reproducible-Builds" for Samourai*Created by: xavierfiechter*
Like described in https://github.com/signalapp/Signal-Android/wiki/Reproducible-Builds because we do not trust - we verify. *Created by: xavierfiechter*
Like described in https://github.com/signalapp/Signal-Android/wiki/Reproducible-Builds because we do not trust - we verify. https://code.samourai.io/wallet/samourai-wallet-android/-/issues/356Improvements in Ricochet2019-08-24T11:17:21ZT Dev. DImprovements in Ricochet*Created by: belane*
First, thanks for the great work you're doing Samourai team. I really like the Ricochet functionality, although it is not a functionality that guarantees anonymity, but it does provide a layer of protection against ...*Created by: belane*
First, thanks for the great work you're doing Samourai team. I really like the Ricochet functionality, although it is not a functionality that guarantees anonymity, but it does provide a layer of protection against prying eyes.
I think there are some points that could be improved:
- Don't use static addresses for the samourai fee. Now, by always using the same address, all Ricochet transactions are being tagged/tainting.
Maybe you could use PayNym here.
https://github.com/Samourai-Wallet/samourai-wallet-android/blob/develop/app/src/main/java/com/samourai/wallet/ricochet/RicochetMeta.java#L60
- Ricochet's fee is currently 0.002 BTC, I think a random value between 0.015 and 0.002 BTC (or any other range) would help against statistical attacks.
https://github.com/Samourai-Wallet/samourai-wallet-android/blob/develop/app/src/main/java/com/samourai/wallet/ricochet/RicochetMeta.java#L67-L68
- A Ricochet transaction is constructed with three outputs, the amount sent, the samurai fee and the change,. Followed by four 1-to-1 transactions in a row.
If the change were sent in the first or second hop and the samurai fee in the second or third, some more privacy would be gained.
- Have you studied the possibility of reusing intermediate addresses more than once over time?https://code.samourai.io/wallet/samourai-wallet-android/-/issues/334Features request: multisig support-addresses control panel-multiwallet in the...2019-06-06T21:25:10ZT Dev. DFeatures request: multisig support-addresses control panel-multiwallet in the app*Created by: kemoantemo*
Wanted to ask for some good features for this awesome project i hope u look at it
First:multisig support is something very important these day it will be very very nice addition to the wallet and with the 3 w...*Created by: kemoantemo*
Wanted to ask for some good features for this awesome project i hope u look at it
First:multisig support is something very important these day it will be very very nice addition to the wallet and with the 3 way addresses like now legacy-segwit-bech32
Second: i think more advanced options always good so i really want an addresses control panel show the whole addresses in the wallet like electrum addresses tab that let us control each address it will be very useful feature
Third:it will be very very helpful if the app can handle more than one wallet so when u open it show u the list of your wallet to choose from it will be very very helpful
And ty for the all the persons who made and maintain such an awesome project <3https://code.samourai.io/wallet/samourai-wallet-android/-/issues/351F-Droid availability2020-02-11T15:53:34ZT Dev. DF-Droid availability*Created by: xMate420x*
Hello. Is there an ETA on when the app will be available from the F-Droid store? I'm tired of compiling from source.*Created by: xMate420x*
Hello. Is there an ETA on when the app will be available from the F-Droid store? I'm tired of compiling from source.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/391Crashing when setting trusted node2020-04-07T02:12:38ZT Dev. DCrashing when setting trusted node*Created by: Moller40*
Does not matter if it's a valid node or not. Can trigger the crash by setting this:
IP address: 111.111.111.111
Port: 8332
rpc user name: name
rpc user password: pass
```
02-19 11:32:12.772 18309 18922 E...*Created by: Moller40*
Does not matter if it's a valid node or not. Can trigger the crash by setting this:
IP address: 111.111.111.111
Port: 8332
rpc user name: name
rpc user password: pass
```
02-19 11:32:12.772 18309 18922 E AndroidRuntime: FATAL EXCEPTION: Thread-9
02-19 11:32:12.772 18309 18922 E AndroidRuntime: Process: com.samourai.wallet, PID: 18309
02-19 11:32:12.772 18309 18922 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/impl/client/DefaultHttpClient;
02-19 11:32:12.772 18309 18922 E AndroidRuntime: at com.samourai.wallet.JSONRPC.JSONRPC.doRPC(JSONRPC.java:255)
02-19 11:32:12.772 18309 18922 E AndroidRuntime: at com.samourai.wallet.JSONRPC.JSONRPC.getNetworkInfoAsString(JSONRPC.java:220)
02-19 11:32:12.772 18309 18922 E AndroidRuntime: at com.samourai.wallet.SettingsActivity2$42$1.run(SettingsActivity2.java:1178)
02-19 11:32:12.772 18309 18922 E AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
02-19 11:32:12.772 18309 18922 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: org.apache.http.impl.client.DefaultHttpClient
02-19 11:32:12.772 18309 18922 E AndroidRuntime: ... 4 more
02-19 11:32:12.775 1749 9193 I am_crash: [18309,0,com.samourai.wallet,950550084,java.lang.ClassNotFoundException,org.apache.http.impl.client.DefaultHttpClient,JSONRPC.java,255]
```
Using Android 10. Maybe that triggers this problem?
Samourai version: 0.99.88https://code.samourai.io/wallet/samourai-wallet-android/-/issues/412[Feature Request] Turn off wallet2020-05-27T04:44:36ZTransisto[Feature Request] Turn off walletHow to disable whirlpool and Samourai wallet background process with the notification icon?How to disable whirlpool and Samourai wallet background process with the notification icon?https://code.samourai.io/wallet/samourai-wallet-android/-/issues/343[Feature Request] Implement manual address incrementation2020-04-17T22:29:48ZT Dev. D[Feature Request] Implement manual address incrementation*Created by: Technifocal*
Akin to `whirlpool-client-cli`'s `deposit`'s `increment=true` argument documented [here](https://github.com/Samourai-Wallet/whirlpool-client-cli/blob/641aed289af0d16092bd994fac288894162b3f4f/README-API.md#depos...*Created by: Technifocal*
Akin to `whirlpool-client-cli`'s `deposit`'s `increment=true` argument documented [here](https://github.com/Samourai-Wallet/whirlpool-client-cli/blob/641aed289af0d16092bd994fac288894162b3f4f/README-API.md#deposit-get-restwalletdepositincrementfalse), allow a user to generate an address and mark it as used (or simply allow a user to mark an already generated address as used).
This would allow users who have shared their address to mark it as such and prevent it from being shown again by the app when they click "receive".
This could:
* Prevent address reuse if receiving multiple transactions at once
* Prevent an attacker who has received an address from a Samourai user from not sending any funds to it and monitoring the next transaction it receiveshttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/307Unit choice not saved on reopening wallet.2019-03-10T22:13:40ZT Dev. DUnit choice not saved on reopening wallet.*Created by: ravcodebase*
Issue - When choosing "sat" as the displayed unit, the choice is not retained when the wallet is closed. Opening the wallet defaults back to "BTC" units.
Solution - retain the user desired unit choice, when th...*Created by: ravcodebase*
Issue - When choosing "sat" as the displayed unit, the choice is not retained when the wallet is closed. Opening the wallet defaults back to "BTC" units.
Solution - retain the user desired unit choice, when the wallet is opened it default to the previous unit choice of the user.
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/388Request: Verify Dojo connection from within wallet2020-02-07T22:35:53ZCrazyk031crazyk@samourai.ioRequest: Verify Dojo connection from within walletIt would be nice if you could ping/verify you are connected to your personal Dojo from within the wallet. Allowing you to verify on the go if your Dojo is up and running and you are successfully connecting.It would be nice if you could ping/verify you are connected to your personal Dojo from within the wallet. Allowing you to verify on the go if your Dojo is up and running and you are successfully connecting.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/386Stub address size smaller than UTXO size when calculating entropy causing Arr...2020-01-31T12:17:16ZT Dev. DStub address size smaller than UTXO size when calculating entropy causing ArrayIndexOutOfBoundsException*Created by: MitchellCash*
I kept having issues when calculating entropy of a transaction and from what I could debug the issue seems to relate to having more UTXO than `stubAddress` values when building a transaction.
From my debugg...*Created by: MitchellCash*
I kept having issues when calculating entropy of a transaction and from what I could debug the issue seems to relate to having more UTXO than `stubAddress` values when building a transaction.
From my debugging I determined I have a UTXO set size of 42, however, on [SendActivity.java#L2222](https://github.com/Samourai-Wallet/samourai-wallet-android/blob/develop/app/src/main/java/com/samourai/wallet/send/SendActivity.java#L2222) when it iterates through the UTXO set and inserts both the UTXO value and the `stubAddress` value into the HashMap it gets an `ArrayIndexOutOfBoundsException` because the UTXO set of 42 exceeds the `stubAddress` size of [21](https://github.com/Samourai-Wallet/samourai-wallet-android/blob/develop/app/src/main/java/com/samourai/wallet/send/SendActivity.java#L174).https://code.samourai.io/wallet/samourai-wallet-android/-/issues/385Feature Request: Language selection option2020-01-24T21:24:03ZT Dev. DFeature Request: Language selection option*Created by: Relaxo143*
Let the user choose their language instead of using only the system one. Consider adding this to the next release as many non-english users would appreciate it.*Created by: Relaxo143*
Let the user choose their language instead of using only the system one. Consider adding this to the next release as many non-english users would appreciate it.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/384Cannot scan QR with BITCOIN:BC1...2020-01-24T17:53:43ZT Dev. DCannot scan QR with BITCOIN:BC1...*Created by: Transisto*
For instance this qr code from blockstream https://blockstream.info/address/bc1q9p0h7xsvh7c0nscz4lxgr6jf0umnf4uzu530h8
*Created by: Transisto*
For instance this qr code from blockstream https://blockstream.info/address/bc1q9p0h7xsvh7c0nscz4lxgr6jf0umnf4uzu530h8
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/382Stonewall activation logic is broken2020-01-23T10:57:29ZT Dev. DStonewall activation logic is broken*Created by: temp305*
When attempting to make a stonewall send; if you adjust the fee slider and hit upon a combination where stonewall is not possible, it will permanently disable stonewall sends until you restart the app.*Created by: temp305*
When attempting to make a stonewall send; if you adjust the fee slider and hit upon a combination where stonewall is not possible, it will permanently disable stonewall sends until you restart the app.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/320Stuck initializing Tor on IPv6 (mobile) network.2019-05-07T01:19:19ZT Dev. DStuck initializing Tor on IPv6 (mobile) network.*Created by: robedmo*
Reproduce:
- Enable Tor Routing in the network settings.
- Close the app so that it will need to re-initialize Tor next time you open it (swiping it to the side from Android multi-task view is sufficient).
- Con...*Created by: robedmo*
Reproduce:
- Enable Tor Routing in the network settings.
- Close the app so that it will need to re-initialize Tor next time you open it (swiping it to the side from Android multi-task view is sufficient).
- Connect to an IPv6-only network (I was on mobile data with IPv6 and NAT64)
- Start the app.
- The "initializing Tor..." screen will appear and remain indefinitely. The notification indicates a connection status of "Waiting". There doesn't seem to be any way to interact with the app, and after leaving it running in the background for about 30 minutes there was no apparent change of status.
There are really two issues here:
1. Tor implementation not working with IPv6.
2. Bad UX if Tor is enabled but fails to connect.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/373App crash on QR code scanner open if previously denied camera permission2020-05-03T03:23:11ZT Dev. DApp crash on QR code scanner open if previously denied camera permission*Created by: alekskuzmin*
### App version
0.99.88
### Steps to reproduce
- When asked for camera permission, deny
- When on home screen, try to open QR code scanner*Created by: alekskuzmin*
### App version
0.99.88
### Steps to reproduce
- When asked for camera permission, deny
- When on home screen, try to open QR code scannerhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/370[Feature Change] Add box to manually input Specific Miner Fee below Sliding Bar2019-10-17T13:28:38ZT Dev. D[Feature Change] Add box to manually input Specific Miner Fee below Sliding Bar*Created by: ghost*
When wanting to spend a full UTXO to a service that provides a specific amount to send, you need to specify an exact amount of Miner Fees (in satoshis) to use up the full UTXO.
Problem is the slider does not alway...*Created by: ghost*
When wanting to spend a full UTXO to a service that provides a specific amount to send, you need to specify an exact amount of Miner Fees (in satoshis) to use up the full UTXO.
Problem is the slider does not always give you the option to hit a specific amount and you have to go back and forth to the service and change amount sent until you can set the slider accordingly.
It would be nice to have the option of Both Slider and a Box below to type in a set amount of Satoshis which will then automatically calculate the sat/byte fee.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/368[Feature Request] Block Sync View for Dojo enabled Wallets2019-10-26T05:52:16ZT Dev. D[Feature Request] Block Sync View for Dojo enabled Wallets*Created by: ghost*
For Wallets using Dojo Back end it would be nice to see a toggle to verify what Block Header is current from API tabvon Dojo within the Wallet.
Maybe by clicking the Samurai Logo at top left you can pull down and ...*Created by: ghost*
For Wallets using Dojo Back end it would be nice to see a toggle to verify what Block Header is current from API tabvon Dojo within the Wallet.
Maybe by clicking the Samurai Logo at top left you can pull down and see what Block Your Dojo is synced too (API). This would alleviate having to go into the maintenance tool to verify.
Reason I thought this is I was receiving a TX and wallet did not show, apparently have an API issue in Dojo with blocks being behind 40+.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/366[Feature Request] Unlock with fingerprint2019-10-28T15:13:51ZT Dev. D[Feature Request] Unlock with fingerprint*Created by: trackktor*
Hello,
It is me again.
With a lots of bank app it is possible to unlock with fingerprint instead of scheme or pin.
It is REALLY convenient and really improve the user experience.
Maybe it could be added t...*Created by: trackktor*
Hello,
It is me again.
With a lots of bank app it is possible to unlock with fingerprint instead of scheme or pin.
It is REALLY convenient and really improve the user experience.
Maybe it could be added to samourai ?
To go further you could add a fingerprint check for send or any dangerous operations if there is a fingerprint sensor (same idea as Feature request: ask for PIN before sending a transaction).
It could be particularly usefull when you are switching between apps and Samourai stay open.
Here, two examples of existing bank app
![20190915_213411](https://user-images.githubusercontent.com/55330354/64926689-c51b2180-d800-11e9-992a-c2333dad30a7.jpg)
![Screenshot_20190915-211822_CMSO](https://user-images.githubusercontent.com/55330354/64926690-c51b2180-d800-11e9-9606-aff75020f338.jpg)
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/365[Feature Request] Blur for privacy2019-09-15T19:03:38ZT Dev. D[Feature Request] Blur for privacy*Created by: trackktor*
Hello,
Maybe you know N26 bank but in their app, you can hide how many € you have on your account so its usable in public space if you have a lot of money.
Do you think it could be added to samourai ?
EDIT:...*Created by: trackktor*
Hello,
Maybe you know N26 bank but in their app, you can hide how many € you have on your account so its usable in public space if you have a lot of money.
Do you think it could be added to samourai ?
EDIT: Someone already made this kind of feature request before, but blur could be a straight forward solution
![20190915_203339](https://user-images.githubusercontent.com/55330354/64926018-ed068700-d7f8-11e9-82ce-898e29470b0a.jpg)
![20190915_203304](https://user-images.githubusercontent.com/55330354/64926019-ed9f1d80-d7f8-11e9-84db-e7a36ff5835f.jpg)
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/363PayNym follow with no fund bug2019-09-15T17:29:48ZT Dev. DPayNym follow with no fund bug*Created by: trackktor*
Hello,
If you follow with no fund the Following section is still updated.
Line ~295 of **PayNymDetailsActivity.java**, in **followPaynym**.
The function **doNotifTx** is called after **updatePaynym**.
Ma...*Created by: trackktor*
Hello,
If you follow with no fund the Following section is still updated.
Line ~295 of **PayNymDetailsActivity.java**, in **followPaynym**.
The function **doNotifTx** is called after **updatePaynym**.
Maybe it could be replaced by something like that (**if** added):
```java
editPaynymBottomSheet.setSaveButtonListener(view -> {
if (doNotifTx())
updatePaynym(editPaynymBottomSheet.getLabel(), editPaynymBottomSheet.getPcode());
```
It seems like a bug but maybe its by design.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/355The fee slider makes it very hard to fine tune fees.2020-02-23T04:41:37ZT Dev. DThe fee slider makes it very hard to fine tune fees.*Created by: Relaxo143*
Fee estimations are often very wrong (even with dojo). If the urgent fee is 100 sats/byte and I want to set it to 2, it's almost impossible. the slightest move of the slider goes from 1 to 10 sats/byte. It would ...*Created by: Relaxo143*
Fee estimations are often very wrong (even with dojo). If the urgent fee is 100 sats/byte and I want to set it to 2, it's almost impossible. the slightest move of the slider goes from 1 to 10 sats/byte. It would be nice to be able to type the value manually.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/345[Feature Request] Toggle RBF per transaction2019-07-08T10:03:04ZT Dev. D[Feature Request] Toggle RBF per transaction*Created by: Relaxo143*
It would be great to be able to choose which individual tx to signal for RBF, just like STONEWALL, instead of having one global setting.*Created by: Relaxo143*
It would be great to be able to choose which individual tx to signal for RBF, just like STONEWALL, instead of having one global setting.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/324Crash on RBF Boost transaction fee2019-06-14T13:07:13ZT Dev. DCrash on RBF Boost transaction fee*Created by: jonathancross*
I am getting consistent crashes from Samourai when trying to boost the fee on an RBF transaction. I tried about dozens of times and it was consistent.
Steps taken:
1. Transaction containing all funds w...*Created by: jonathancross*
I am getting consistent crashes from Samourai when trying to boost the fee on an RBF transaction. I tried about dozens of times and it was consistent.
Steps taken:
1. Transaction containing all funds was sent using RBF.
2. After 20 hours it hadn't been mined.
3. I sent new funds into the wallet to a Bech32 address, then tried use those funds to boost the old tx.
Result: app crashed every time I tried to increase the tx fee.
It would get as far as showing me how much the fee would be increased, but as soon as I confirmed, the app crashes.
I have tried offline, with / without trusted node, etc. No luck.
Please see attached wallet support file encrypted for @SamouraiDev (key `0x72B5BACDFEDF39D7`)
[Samourai_Wallet_support_backup.gpg.txt](https://github.com/Samourai-Wallet/samourai-wallet-android/files/3184598/Samourai_Wallet_support_backup.gpg.txt)
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/300Incoming RBF Replacement Transaction shows in (inflated) balance2019-02-27T06:19:07ZT Dev. DIncoming RBF Replacement Transaction shows in (inflated) balance*Created by: bitschmidty*
![rbf-samourai-credit-balance-with-rbf 1](https://user-images.githubusercontent.com/1615772/51923684-1630ef00-23b1-11e9-8c19-969f225cdfc5.png)
When a BIP125 enabled transaction (and its subsequent replacemen...*Created by: bitschmidty*
![rbf-samourai-credit-balance-with-rbf 1](https://user-images.githubusercontent.com/1615772/51923684-1630ef00-23b1-11e9-8c19-969f225cdfc5.png)
When a BIP125 enabled transaction (and its subsequent replacement transaction) is incoming, Samourai shows both the original and replacement transaction with no RBF label. Additionally user's balance is credited for both transactions.
NOTE: Within an hour, and before the replacement transaction confirmed, the original transaction was discarded and the correct balance appeared (right image).
A user seeing two normal looking transactions and an increased balance might be confused when the transaction later disappears and their balance is smaller.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/294Restoring empty wallets when wrong passphrase is given2019-01-19T20:51:05ZT Dev. DRestoring empty wallets when wrong passphrase is given*Created by: bodorb11*
Last time when I was restoring my wallet, I had my seed, but I forgot my passphrase. Since there is a small number of passwords that I usually use, eventually I was able to guess the right one. However this took m...*Created by: bodorb11*
Last time when I was restoring my wallet, I had my seed, but I forgot my passphrase. Since there is a small number of passwords that I usually use, eventually I was able to guess the right one. However this took me unnecessarily long.
The problem is that even if you enter a wrong a passphrase _some_ wallet is "recovered". Now in most cases this wallet is empty (meaning that there is no incoming or outgoing transaction from any of the addresses), since most likely no one was using a wallet with your seeds. On the other hand, if you want to recover your own wallet, it is probably not empty.
So my suggestion would be to add some feature that when you are about to recover a wallet, then the app checks whether it is empty or not, and sends a warning if it is (or by default it does not recover such wallets).
Remark: this problem is also present at many other wallets (e.g. Electrum), so I will contact them as well.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/413Chosen value unit (sat) does not remain default unit when switching between w...2020-07-20T01:02:51ZtadogenChosen value unit (sat) does not remain default unit when switching between wallets.Whenever i set my unit to "sat", and switch from my premix wallet to my post mix wallet or back, the value unit goes back to the default bitcoin unit, btc. Is there anyway that the chosen "sat" unit can stay permanent, it makes calculati...Whenever i set my unit to "sat", and switch from my premix wallet to my post mix wallet or back, the value unit goes back to the default bitcoin unit, btc. Is there anyway that the chosen "sat" unit can stay permanent, it makes calculations easier?
![Screen_Recording_20200718-213642_Samourai_1](/uploads/4ff73e650b372e4d390d192af47f3360/Screen_Recording_20200718-213642_Samourai_1.mp4)https://code.samourai.io/wallet/samourai-wallet-android/-/issues/414Wallet backup (samourai.txt) is overwritten when creating new wallet2020-12-10T03:01:10ZAndrejVlnkaWallet backup (samourai.txt) is overwritten when creating new walletbackup / version old filebackup / version old filehttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/415App crash when pressing "show QR code" after "cannot compose #cahoots" message2020-11-16T09:33:00ZDamm KewlApp crash when pressing "show QR code" after "cannot compose #cahoots" messageSomebody tried to cahoots with me, my available funds amount couldn't match his as I didn't have enough. I didn't know this beforehand, so I tried to use his cahoots payload.
Both the scenario's of "paste cahoots payload" and scanning t...Somebody tried to cahoots with me, my available funds amount couldn't match his as I didn't have enough. I didn't know this beforehand, so I tried to use his cahoots payload.
Both the scenario's of "paste cahoots payload" and scanning the QR code both played out the same on the following:
- Went to postmix wallet screen
- Have 1 UTXO available (other ones set to do-not-spend)
- Pasted the payload / Scanned the QR code
- Screen switches to the cahoots screen
- got the "cannot compose #cahoots" temporary message at the bottom
- I press "show QR code"
- the app crashes
- thereafter the app instantly reloads and asks for pin number
The reason for me trying to "show QR code" despite the "cannot compose #cahoots" message was that I didn't see the error message the first time. I think it was because of how I held my phone that it wasn't in my field of view for the short time it was on the screen.
The type of cahoots was specifically a StonewallX2 initiated by the other person.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/416Secure erase wallet feature does not work properly2020-10-07T13:42:14ZOr WeinbergerSecure erase wallet feature does not work properly**Version**: 9.99.95t
**OS**: Android 10
**Hardware**: OnePlus 7T
When trying to securely erase an existing wallet, I get the 'Securely wiping wallet. Please wait.' message and the application just hangs. Trying to kill the app and re...**Version**: 9.99.95t
**OS**: Android 10
**Hardware**: OnePlus 7T
When trying to securely erase an existing wallet, I get the 'Securely wiping wallet. Please wait.' message and the application just hangs. Trying to kill the app and re initiating the process also hangs.
The only way I managed to bypass this issue is by completely deleting the app from my phone and reinstalling it.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/417Visibly show status of Dojo connection2020-10-07T13:50:21ZOr WeinbergerVisibly show status of Dojo connectionWhen a wallet is paired with a Dojo and the Dojo goes offline, the user does not get any notification or visibility to the status.
Even manually refreshing the wallet does not show any issues and the 'Connections' screen shows the Dojo ...When a wallet is paired with a Dojo and the Dojo goes offline, the user does not get any notification or visibility to the status.
Even manually refreshing the wallet does not show any issues and the 'Connections' screen shows the Dojo Full Node as enabled with a green dot next to it.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/418UX: set Post-Mix as default wallet2020-10-31T00:00:23Zr4v3r23UX: set Post-Mix as default walletoption to set Whirlpool Wallet (post-mix) as default spending wallet that opens on start up.
Also add these to Whirlpool Wallet FAB:
- Whirlpool button: to manage mixes
- Receive button: auto-mixes based on chosen pool size & low/med/h...option to set Whirlpool Wallet (post-mix) as default spending wallet that opens on start up.
Also add these to Whirlpool Wallet FAB:
- Whirlpool button: to manage mixes
- Receive button: auto-mixes based on chosen pool size & low/med/high fee rate
- PayNym button: cause why nothttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/420receive-address bottom margin cutoff2020-11-24T11:33:31Zr4v3r23receive-address bottom margin cutoffbottom margin in L30 `activity_receive.xml` (12dp) is too high and cuts off on small screen devices with large system fonts
![receive](/uploads/e3ccac19a6647f62d41c0b436302481c/receive.jpg)
fix: L30 `activity_receive.xml` android:layou...bottom margin in L30 `activity_receive.xml` (12dp) is too high and cuts off on small screen devices with large system fonts
![receive](/uploads/e3ccac19a6647f62d41c0b436302481c/receive.jpg)
fix: L30 `activity_receive.xml` android:layout_marginBottom="6dp"
removes cutoff on small screens without affecting larger screen deviceshttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/293Feature request: Advanced Coin Control2019-12-21T12:39:36ZT Dev. DFeature request: Advanced Coin Control*Created by: Relaxo143*
Right now in SW there is a very useful feature that allows users to block individual UTXOs and mark them as do-not-spend. This is great for blocking one or two UTXOs. However, if a user wants to spend just a sing...*Created by: Relaxo143*
Right now in SW there is a very useful feature that allows users to block individual UTXOs and mark them as do-not-spend. This is great for blocking one or two UTXOs. However, if a user wants to spend just a single UTXO they have to mark every other UTXO as do-not-spend, make a transaction and then go back and unblock the previously blocked UTXOs. This is time-consuming and a hassle.
It would be great if a user could click on an UTXO and see a "spend" button. When clicked, the wallet could take the user to the transaction screen where the "max available" field would be equal to the specified UTXO. That addition would make spending individual coins easy and intuitive. https://code.samourai.io/wallet/samourai-wallet-android/-/issues/291Feature request: recurring payments2019-01-22T09:33:07ZT Dev. DFeature request: recurring payments*Created by: kelna*
In the age of censorship all across the major payment solutions, Bitcoin becomes increasingly important and popular. But there is something we cannot do with BTC yet: sending recurring payments to creators. It would ...*Created by: kelna*
In the age of censorship all across the major payment solutions, Bitcoin becomes increasingly important and popular. But there is something we cannot do with BTC yet: sending recurring payments to creators. It would be very benefitial for the crypto community to have a Patreon like solution so that followers could support their favourite creators on a regular basis and comfortably.
Samourai could be the first wallet providing such functionality and thus becoming the go-to recommendation of creators looking for Bitcoin donations.
I think recurring payments should work with conventional addresses thus effectuating address reuse, although this should be discouraged and PayNyms encouraged.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/231Feature request: Mark RBF transactions2018-09-25T10:22:08ZT Dev. DFeature request: Mark RBF transactions*Created by: jochemin*
Although Samourai wallet only allows raising the fee in a RBF transaction it's possible to change things like destination address. We did some tests and in the wallet you see the incoming transaction:
![image](ht...*Created by: jochemin*
Although Samourai wallet only allows raising the fee in a RBF transaction it's possible to change things like destination address. We did some tests and in the wallet you see the incoming transaction:
![image](https://user-images.githubusercontent.com/6348955/45953675-230c9300-c00b-11e8-827b-92418dcc2fcd.png)
If the sender uses RBF to modify destination address the transaction just disappears from the incoming transactions.
It will be interesting to mark RBF incoming transactions with a tag to now it's a replaceable transaction.
Something like this:
![image](https://user-images.githubusercontent.com/6348955/45954022-1d637d00-c00c-11e8-8cae-ef65d49b0378.png)
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/234Feature request: backward compatible Bech32+BIP21 support2018-09-27T19:41:24ZT Dev. DFeature request: backward compatible Bech32+BIP21 support*Created by: taelfrinn*
I think it would be beneficial if samourai could support BIP21 style payment destinations that include alternative bech32 destination upgrades. (specifically only as a client, not necessarily to generate the co...*Created by: taelfrinn*
I think it would be beneficial if samourai could support BIP21 style payment destinations that include alternative bech32 destination upgrades. (specifically only as a client, not necessarily to generate the codes for receiving payments)
For reference:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-July/016266.html
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-September/016428.html
https://github.com/spesmilo/electrum/issues/4736
I spoke with SomberNight in the electrum project, and so far he seem favorable to a spec like this example:
bitcoin:3BnsWZiTdYVrqiPh2RP3q9Y3ZqvhbCN2it?amount=0.123&addr=bc1q5u92yq20hss4rc99mfu23h4dxkxn4uuyqd5dzy
(a backwards compatible default destination for older/existing wallets, and a native segwit preferred destination)
The goal would be to help merchants offer backward compatible QR codes while upgrading their systems to segwit. This would allow a graceful transition, and help facilitate transition to native segwit. (the benefit to samourai and its users would be indirect)
Please let me know your thoughts on this proposal.
https://code.samourai.io/wallet/samourai-wallet-android/-/issues/196Feature request: Ability to label transactions2018-08-02T15:31:26ZT Dev. DFeature request: Ability to label transactions*Created by: jonathancross*
Would like to be able to long-press on a transaction to be able to add a free-form text label explaining what it was and value in fiat.*Created by: jonathancross*
Would like to be able to long-press on a transaction to be able to add a free-form text label explaining what it was and value in fiat.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/181Please Support Multiple Wallets2020-02-19T10:04:52ZT Dev. DPlease Support Multiple Wallets*Created by: kelna*
Please add support for multiple wallets as Mycelium and others do. I would like to use Samourai for multiple, unrelated projects and I need separate wallets for that.*Created by: kelna*
Please add support for multiple wallets as Mycelium and others do. I would like to use Samourai for multiple, unrelated projects and I need separate wallets for that.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/187Remove extra dialog menu in PayNyms send payment flow2018-12-19T18:25:31ZT Dev. DRemove extra dialog menu in PayNyms send payment flow*Created by: tionlion*
In PayNyms when you click on a contact it pops up a dialog "Send through this payment channel" "yes, cancel". This dialog menu seems redundant and I believe should be removed since the user's intent to send is ob...*Created by: tionlion*
In PayNyms when you click on a contact it pops up a dialog "Send through this payment channel" "yes, cancel". This dialog menu seems redundant and I believe should be removed since the user's intent to send is obvious. Also if the user did not intend to send the next transaction menu is obviously for sending and they can abort then. Additionally the comment about "payment channel" in the dialog is confusing to lay users. My 9 year old is my test subject :) https://code.samourai.io/wallet/samourai-wallet-android/-/issues/202No error message when sweeping private key with 0 unspent UTXO2018-08-07T05:54:39ZT Dev. DNo error message when sweeping private key with 0 unspent UTXO*Created by: rbensberg*
When using the Sweep Private Key if the QR code is not a privateKey then behaviour is expected: `Cannot recognise private key`. However if the QR code is a privateKey but simply doesn't have any unspent UTXOs, no...*Created by: rbensberg*
When using the Sweep Private Key if the QR code is not a privateKey then behaviour is expected: `Cannot recognise private key`. However if the QR code is a privateKey but simply doesn't have any unspent UTXOs, no error message is shown and it is unclear whether the sweep is processing or what exactly is happening.
Recommend adding in an Error message if unspent UTXOs < Fee to sweep (will also work for zero balance of course): `Insufficient Funds to sweep`https://code.samourai.io/wallet/samourai-wallet-android/-/issues/107Feature request: show transaction cost (total)2018-01-29T11:09:48ZT Dev. DFeature request: show transaction cost (total)*Created by: oscarrdg*
I love the new UI to chose the Miner Fee, specially that it makes easier to chose a Custom one.
But I miss the information of how much will the fee be. It is shown in sat/b, but there is no information of what ...*Created by: oscarrdg*
I love the new UI to chose the Miner Fee, specially that it makes easier to chose a Custom one.
But I miss the information of how much will the fee be. It is shown in sat/b, but there is no information of what will be the transaction size.
I think the wallet could calculate how big will be the transaction and show that information too.
I would love being able to know the total transaction fee on sat or fiat before sending it.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/155Using a Full node requires exposing RPC port to the wallet.2018-05-08T23:39:17ZT Dev. DUsing a Full node requires exposing RPC port to the wallet.*Created by: tyzbit*
## The Issue
As I understand it, if I am to use a full node with Samourai, I must also give Samourai **full control** over my node via the RPC commands. This means the wallet can:
* ban peers
* shut down the n...*Created by: tyzbit*
## The Issue
As I understand it, if I am to use a full node with Samourai, I must also give Samourai **full control** over my node via the RPC commands. This means the wallet can:
* ban peers
* shut down the node
* adjust runtime parameters
This is too much access to give what should functionally just be a relay and block explorer. Also, if I am to use my own full node while travelling, I need to be able to access it which meains naiive users might expose their full nodes (and their RPC ports) to the Internet, or users must set up complicated VPNs for this functionality.
## How to fix the Issue
Allow users to specify their own full node and communicate to that node on the standard Bitcoin port(s). This will protect user's security and privacy.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/130Option to disable/remove "show mnemonic seed" after wallet setup2018-08-02T15:44:31ZT Dev. DOption to disable/remove "show mnemonic seed" after wallet setup*Created by: infernix*
I'd like to be able to remove the option to display mnemonic seed. I don't quite understand why the option exists to show it after the initial setup. It means that it's stored somewhere in plaintext, correct? Or i...*Created by: infernix*
I'd like to be able to remove the option to display mnemonic seed. I don't quite understand why the option exists to show it after the initial setup. It means that it's stored somewhere in plaintext, correct? Or is this not possible when using a passphrase?
If it really can't be removed due to key derivation, at least the option should exist to never show it. It can come with big disclaimers but I feel it shouldn't be displayable after the initial setup. There can be cases where someone can snap a picture of it unbeknownst to me, or against my will.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/142ipv6 trusted node crashes the app2018-04-03T14:40:14ZT Dev. Dipv6 trusted node crashes the app*Created by: ChrisEbner*
Hey there,
wanted to report a bug with the wallet where I can reliably kill the wallet when entering an IPv6 trusted node. Upon entering ok it will crash the app.
Running Android 7.0
Kind regards,
Ch...*Created by: ChrisEbner*
Hey there,
wanted to report a bug with the wallet where I can reliably kill the wallet when entering an IPv6 trusted node. Upon entering ok it will crash the app.
Running Android 7.0
Kind regards,
Christianhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/111Cannot sweep xprv key2018-02-02T03:28:51ZT Dev. DCannot sweep xprv key*Created by: jorijnsmit*
Would be nice to be able to sweep `xprv` keys too, this can save a lot of time with big wallets...*Created by: jorijnsmit*
Would be nice to be able to sweep `xprv` keys too, this can save a lot of time with big wallets...https://code.samourai.io/wallet/samourai-wallet-android/-/issues/140Feature Request: Add a toggle flash button for scanning QR code.2018-05-08T00:41:39ZT Dev. DFeature Request: Add a toggle flash button for scanning QR code.*Created by: Bluethf*
Add a button to toggle flashlight on/off while using the camera to scan QR code.
It's not necessary but it'll be a nice touch! *Created by: Bluethf*
Add a button to toggle flashlight on/off while using the camera to scan QR code.
It's not necessary but it'll be a nice touch! https://code.samourai.io/wallet/samourai-wallet-android/-/issues/119Feature request: ask for PIN before sending a transaction2018-04-10T12:16:33ZT Dev. DFeature request: ask for PIN before sending a transaction*Created by: ottosch*
Hey,
One feature I like in Mycelium is it asks for the PIN when you open the wallet, but also when you're about to transfer BTC.
Without that, if someone grabs your phone after you've opened your wallet, he can...*Created by: ottosch*
Hey,
One feature I like in Mycelium is it asks for the PIN when you open the wallet, but also when you're about to transfer BTC.
Without that, if someone grabs your phone after you've opened your wallet, he can transfer everything to himself.
Not that unlikely if you're selling BTC for someone in cash, for example. Or if you're buying something in person.
It would be great if Samourai had that.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/41Feature request: "blind" mode.2018-06-13T06:35:34ZDamm KewlFeature request: "blind" mode.Sometimes I'm in public and wish to send a transaction on the spot using my phone. But I have this issue with bank apps/websites as well as bitcoin wallets: I don't want my balance on the screen for others to see.
I would love for the...Sometimes I'm in public and wish to send a transaction on the spot using my phone. But I have this issue with bank apps/websites as well as bitcoin wallets: I don't want my balance on the screen for others to see.
I would love for the ability to open the Samourai Wallet, send a transaction and close it, without my balance ever having been on the screen. I guess a safeguard saying "you can't spend this much" is fine in case the user makes a mistake. But most of the time I pretty much know beforehand whether or not I can spend from a specific account.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/40OpenDIME: says 'confirmed' on unconfirmed transaction2017-10-13T15:07:44ZT Dev. DOpenDIME: says 'confirmed' on unconfirmed transaction*Created by: diederikdehaas*
I recently send some btc to an OpenDIME stick and now it says "Confirmed Balance" *, but the tx is still unconfirmed. This is also the first and thus only btc send to it, so I think it should say "Unconfirme...*Created by: diederikdehaas*
I recently send some btc to an OpenDIME stick and now it says "Confirmed Balance" *, but the tx is still unconfirmed. This is also the first and thus only btc send to it, so I think it should say "Unconfirmed Balance".
I've send it with 2sat/byte so it may stay unconfirmed for a bit longer, but possibly not long. I do have a couple of other OD sticks, so I could test an updated version of Samourai a couple of times, if needed.
I don't know if it would already do this, but a split for confirmed and unconfirmed balance would be a nice feature if it doesn't already.
* when I plug my OpenDIME stick in my phone with an OTG adapter and open it in Samourai wallethttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/421Implement support for upper case BITCOIN: prefix in QR codes2020-12-08T11:13:18ZMartin HabovstiakImplement support for upper case BITCOIN: prefix in QR codes[RFC3986](https://tools.ietf.org/html/rfc3986#section-3.1) as well as [BIP21](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki#abnf-grammar) allow case-insensitive scheme and using it is now [being considered in BTCPayServe...[RFC3986](https://tools.ietf.org/html/rfc3986#section-3.1) as well as [BIP21](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki#abnf-grammar) allow case-insensitive scheme and using it is now [being considered in BTCPayServer](https://github.com/btcpayserver/btcpayserver/issues/2110) as it allows the QR codes to be smaller.
I found out that Samourai does not support this currently, which is against the spec and has UX implications. It'd be great to fix this.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/422app crashes when selecting paynym option2020-12-10T02:57:55ZZiya Sadrapp crashes when selecting paynym optionI had this issue in version 95 it happened on an lg v20 android 7. the paynym was not claimed before. it was solved by a clean install and restore using seed + passphrase. I guess it should be addressed if the issue still persists!I had this issue in version 95 it happened on an lg v20 android 7. the paynym was not claimed before. it was solved by a clean install and restore using seed + passphrase. I guess it should be addressed if the issue still persists!https://code.samourai.io/wallet/samourai-wallet-android/-/issues/423[Feature Request] Language Changing2020-12-13T13:52:58ZRelaxo143[Feature Request] Language ChangingIt would be great to have the option of using a different language besidies the system one for the app UI.It would be great to have the option of using a different language besidies the system one for the app UI.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/424Error locallization pt-BR2021-02-03T06:43:05ZCleber Matheus A. SilvaError locallization pt-BRThe application when running on a device in Brazilian Portuguese is erroneously translated as Portuguese of Portugal, but when changing the language to Breton (Brittany, France) the application is translated into Brazilian Portuguese.![d...The application when running on a device in Brazilian Portuguese is erroneously translated as Portuguese of Portugal, but when changing the language to Breton (Brittany, France) the application is translated into Brazilian Portuguese.![device-2021-01-03-185215_2](/uploads/9a02eaa88fb89972bb81c64934fd8f13/device-2021-01-03-185215_2.mp4)SarathSarathhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/425Sometimes the "REVIEW TRANSACTION" button doesn't work2021-02-06T02:25:37ZJoseSometimes the "REVIEW TRANSACTION" button doesn't workSometimes when I try to tap the "REVIEW TRANSACTION" after entering the address and amount, nothing happens. I get an animation like the button is being pressed but it doesn't go to the next screen. Sometimes if I close the app and resta...Sometimes when I try to tap the "REVIEW TRANSACTION" after entering the address and amount, nothing happens. I get an animation like the button is being pressed but it doesn't go to the next screen. Sometimes if I close the app and restart, it will work. Other times I have to reboot my phone!
I am using a dojo. As far as I can tell everything is synced. I get no error messages, I just cannot move to the next screen sometimes. I am doing the transaction with whirlpool funds.
It is always strange explaining to the person I'm sending to, that the button won't work on my wallet software. 🤷https://code.samourai.io/wallet/samourai-wallet-android/-/issues/426Unable to raise fees. Transaction pending for hours now2021-02-06T18:45:43ZnourouUnable to raise fees. Transaction pending for hours nowI have sent some BTC from Samourai Wallet, android version.
Seeing the transaction pending for a long time, I tried to raise the fees but I had an error message.
I am also unable to dismiss the transaction.
Transaction : https://www.bl...I have sent some BTC from Samourai Wallet, android version.
Seeing the transaction pending for a long time, I tried to raise the fees but I had an error message.
I am also unable to dismiss the transaction.
Transaction : https://www.blockchain.com/btc/tx/26d67be8d801ec8b7be5a5f9922ad1bcc72133544bdedec19d7d078301d0a610
![Screenshot_2021-02-01-19-31-03](/uploads/6bec9978b01231950e3f2eea1d712c27/Screenshot_2021-02-01-19-31-03.png)
Android : 5.0.2
Samourai Wallet : 0.99.96bhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/427Paid PayNym Connection, Not Connected Yet2021-10-13T18:12:32ZHeady WookPaid PayNym Connection, Not Connected YetI connected to a PayNym by scanning their QR. I paid the connection fee and the transaction has confirmed (+6 confirmations) but I am still not connected to the PayNym. I have the TxID showing the 'OP RETURN/BIP 47 PAYNYM code' label on ...I connected to a PayNym by scanning their QR. I paid the connection fee and the transaction has confirmed (+6 confirmations) but I am still not connected to the PayNym. I have the TxID showing the 'OP RETURN/BIP 47 PAYNYM code' label on OXT.me. This was February 13th, 2021.
The other PayNym connected to me just fine after paying the fee. That PayNym is on standard SW, no node. I am on RoninDojo. My SW is version 0.99.96c my Ronin is 1.8.1.
I have already tried checking everything for updates, restarting/force stopping app. I have, according to @crazyk031, checked the notif address on DMT and do not see it there. I have tried resyncing the PayNym (and all PayNyms).
I would like help with getting this connection through.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/428Minor change to "Choose collaborator" menu text2021-02-20T02:01:41ZHeady WookMinor change to "Choose collaborator" menu textFrom `account 0>plus button>send>Cahoots>Stowaway>Online>Choose collaborator` the text reads "not followed" when it should be "not connected".
Here is what it currently shows: ![9a4b1e8d-71b8-4874-95d7-0a4384458c11](/uploads/f0bfe603f4ca...From `account 0>plus button>send>Cahoots>Stowaway>Online>Choose collaborator` the text reads "not followed" when it should be "not connected".
Here is what it currently shows: ![9a4b1e8d-71b8-4874-95d7-0a4384458c11](/uploads/f0bfe603f4ca5ff586137f6e8e585e0e/9a4b1e8d-71b8-4874-95d7-0a4384458c11.png)
However, for PayNyms there is a follow and a connect option: ![5a7f4400-57fe-467a-9358-74433eb41ce3](/uploads/6f28c6fcf5367a6ef2076d6d502986a9/5a7f4400-57fe-467a-9358-74433eb41ce3.png)
![f98eea09-e926-47a8-8199-f09b27185e85](/uploads/78250d8e8ec39a733c7892aa436b1ae6/f98eea09-e926-47a8-8199-f09b27185e85.png)
The text in "Choose collaborator" menu should read "not connected" to stay consistent with the language used in other areas of the app, such as when first following or connecting to a PayNym. The menu reads this way in both online stonewallx2 and stowaway options.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/429[Feature Request] Custom fee boost2021-02-25T19:54:11Zben[Feature Request] Custom fee boostI would like to be able to customize the transaction fee increase for RBF transactions. With how high the fees are right now, the one option for a fee boost that samourai wallet gives is *way* to high. I want to increase the fees just en...I would like to be able to customize the transaction fee increase for RBF transactions. With how high the fees are right now, the one option for a fee boost that samourai wallet gives is *way* to high. I want to increase the fees just enough that the transaction confirms over the weekend.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/432Remove old deprecated lib httpclientandroidlib-1.2.1.jar2021-05-07T13:40:31ZEmanuel BronshteinRemove old deprecated lib httpclientandroidlib-1.2.1.jarThe file at `./app/libs/httpclientandroidlib-1.2.1.jar`:
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/develop/app/libs/httpclientandroidlib-1.2.1.jar
is the old & deprecated library httpclient from: (latest release at ...The file at `./app/libs/httpclientandroidlib-1.2.1.jar`:
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/develop/app/libs/httpclientandroidlib-1.2.1.jar
is the old & deprecated library httpclient from: (latest release at "22nd February 2014")
https://code.google.com/archive/p/httpclientandroidlib/
the google-drive download at Updates point to:
https://drive.google.com/file/d/0BzK7b0m5WJsfSktseFNvX09wVms/
which is the same file (same sha256sum `e3ad8524633d0616904c3f24b0117ede4a92afbc8b88cc85eb1de436bad60fe3`)
Remove this file & use other more newer library instead.T Dev. DT Dev. Dhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/433Git tag+sign new releases2021-05-07T13:40:40ZEmanuel BronshteinGit tag+sign new releasesThe tags in this repo are old:
https://code.samourai.io/wallet/samourai-wallet-android/-/tags
only tags available are: (from `git tag -l`)
> 0.81
0.99.27-gb
0.99.91
0.99.92
0.99.93
while the latest release of the app is: v0.99.96g
Als...The tags in this repo are old:
https://code.samourai.io/wallet/samourai-wallet-android/-/tags
only tags available are: (from `git tag -l`)
> 0.81
0.99.27-gb
0.99.91
0.99.92
0.99.93
while the latest release of the app is: v0.99.96g
Also sign the tags, more info:
https://docs.gitlab.com/ee/user/project/repository/x509_signed_commits/#signing-tagsT Dev. DT Dev. Dhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/434Use distributionSha256Sum for verification of downloaded Gradle & Upgrade Gra...2021-05-05T22:02:21ZEmanuel BronshteinUse distributionSha256Sum for verification of downloaded Gradle & Upgrade Gradle+Gradle-Scripts+Gradle-Plugin+Kotlin to latest versions1. Upgrade Gradle-Scripts & Gradle to 7.0
Currently used gradle 2.2.1 at `./app/gradle/wrapper/gradle-wrapper.properties`
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/develop/app/gradle/wrapper/gradle-wrapper.properti...1. Upgrade Gradle-Scripts & Gradle to 7.0
Currently used gradle 2.2.1 at `./app/gradle/wrapper/gradle-wrapper.properties`
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/develop/app/gradle/wrapper/gradle-wrapper.properties#L6
```ini
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
```
and gradle 5.4.1 at `./gradle/wrapper/gradle-wrapper.properties`:
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/develop/gradle/wrapper/gradle-wrapper.properties#L6
```ini
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
```
The gradle scripts are old too (in `./gradlew` and `./gradlew.bat` and `./app/gradlew` and `./app/gradlew.bat`)
upgrade can be done with command which will also upgrade the gradle scripts: (the newer one use `/bin/sh` instead of `/bin/bash`)
```shell
./gradlew wrapper --gradle-version 7.0
```
which is the command to upgrade the gradle wrapper:
https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapper
2. add `distributionSha256Sum` to `gradle-wrapper.properties` files
more info: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:verification
such as: (checksum taken from: https://gradle.org/release-checksums/ for 7.0-all version: https://services.gradle.org/distributions/gradle-7.0-all.zip)
```ini
distributionSha256Sum=81003f83b0056d20eedf48cddd4f52a9813163d4ba185bcf8abd34b8eeea4cbd
```
3. Upgrade gradle-plugin
From `./build.gradle` gradle plugin version is `3.5.3`
```
classpath 'com.android.tools.build:gradle:3.5.3'
```
Latest version is: 4.1.3
4. Upgrade kotlin
From `./build.gradle` kotlin version:
```
ext.kotlin_version = '1.4.10'
```
Latest version is: 1.5.0https://code.samourai.io/wallet/samourai-wallet-android/-/issues/435Use V2+ Signing & Publish apksigner output & remove not needed files in META-INF2021-05-16T16:47:57ZEmanuel BronshteinUse V2+ Signing & Publish apksigner output & remove not needed files in META-INFIn order to verify direct APK download from the website or Samourai f-droid repo or (mirror/download)-websites the output from apksigner is needed.
see for example the verification section in aegis app:
https://github.com/beemdevelopmen...In order to verify direct APK download from the website or Samourai f-droid repo or (mirror/download)-websites the output from apksigner is needed.
see for example the verification section in aegis app:
https://github.com/beemdevelopment/Aegis#verification
Running apksigner on 0.99.96g version, command `apksigner verify --print-certs --verbose 0.99.96g.apk`
sha256sum: ca596e12b91d1176dd51be88c7adc65107b2e3d3f556f08528ea642d0fbe1d13
output:
```
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): false
Verified using v3 scheme (APK Signature Scheme v3): false
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
Signer #1 certificate DN: OU=Cryptocurrency R&D, O=Samourai Wallet
Signer #1 certificate SHA-256 digest: 6ab9471c21d2cddd628172975cff8ba23584da41c6962df074eb56e4ef08d990
Signer #1 certificate SHA-1 digest: 9cfb461a489831e9543d18736f7579aad90a1029
Signer #1 certificate MD5 digest: b5dad85184b82cddaa5a6c91e945b710
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: c6410cfbfaabf9edb8d419f03bf54ee624cc78ba86ede3440650707a903925e1
Signer #1 public key SHA-1 digest: 11ee3a49b0eea5605658430d74b993ddb2138727
Signer #1 public key MD5 digest: d05f0416a514892b87df37fb8e3807c8
WARNING: META-INF/INDEX.LIST not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/activity-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.activity_activity-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.activity_activity.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.annotation_annotation-experimental.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.appcompat_appcompat-resources.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.appcompat_appcompat.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.arch.core_core-runtime.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.asynclayoutinflater_asynclayoutinflater.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.cardview_cardview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.coordinatorlayout_coordinatorlayout.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.core_core-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.core_core.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.cursoradapter_cursoradapter.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.customview_customview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.documentfile_documentfile.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.drawerlayout_drawerlayout.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.dynamicanimation_dynamicanimation.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.exifinterface_exifinterface.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.fragment_fragment-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.fragment_fragment.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.interpolator_interpolator.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.legacy_legacy-support-core-ui.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.legacy_legacy-support-core-utils.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.legacy_legacy-support-v4.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-extensions.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-livedata-core.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-livedata-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-livedata.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-process.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-runtime.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-service.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-viewmodel.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.loader_loader.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.media_media.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.preference_preference-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.preference_preference.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.print_print.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.recyclerview_recyclerview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.savedstate_savedstate.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.slidingpanelayout_slidingpanelayout.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.transition_transition.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.vectordrawable_vectordrawable-animated.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.vectordrawable_vectordrawable.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.versionedparcelable_versionedparcelable.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.viewpager2_viewpager2.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.viewpager_viewpager.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/app_productionRelease.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/collection-ktx.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/com.android.tools/proguard/coroutines.pro not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/com.android.tools/r8-upto-1.6.0/coroutines.pro not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/com.google.android.material_material.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/core-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/extlibj.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/fragment-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/kotlin-android-extensions-runtime.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/kotlin-stdlib-common.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/kotlin-stdlib-jdk7.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/kotlin-stdlib-jdk8.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/kotlin-stdlib.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/kotlinx-coroutines-android.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/kotlinx-coroutines-core.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/lifecycle-livedata-core-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/lifecycle-livedata-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/lifecycle-runtime-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/lifecycle-viewmodel-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/preference-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/services/com.fasterxml.jackson.core.JsonFactory not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/services/com.fasterxml.jackson.core.ObjectCodec not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/services/javax.servlet.ServletContainerInitializer not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/services/javax.validation.spi.ValidationProvider not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/topl-core-base_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/topl-core_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/topl-service-base_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/topl-service_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/validation-configuration-1.0.xsd not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/validation-configuration-1.1.xsd not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/validation-mapping-1.0.xsd not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/validation-mapping-1.1.xsd not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
```
you should add more `exclude` entries to `packagingOptions` in (To remove the not needed files in META-INF directory):
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/8ed0bd58590ad230f1e85fbeeca7997122ef5f57/app/build.gradle#L8
Also the apk is signed only with old v1 signing scheme (Jar Signature) which is deprecated from 2016 which is:
1. less secure then newer signing schemes v2-v4, more info from: https://source.android.com/security/apksigning#v1
> v1 signatures do not protect some parts of the APK, such as ZIP metadata. The APK verifier needs to process lots of untrusted (not yet verified) data structures and then discard data not covered by the signatures. This offers a sizeable attack surface. Moreover, the APK verifier must uncompress all compressed entries, consuming more time and memory. To address these issues, Android 7.0 introduced APK Signature Scheme v2.
2. when the app will use targetsdk=30 (android 11), signing-v1 usage is disabled, more info at:
https://developer.android.com/about/versions/11/behavior-changes-11#minimum-signature-scheme
3. replaced by v2+ signing schemes (Full APK Signature)
fix:
1. remove not needed files in META-INF during build process
2. Sign the upcoming APKs for newer versions with both sig methods v1 & newer.
3. Publish apksigner output in verification section.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/436Remove org.apache.http.legacy2023-02-07T09:05:01ZEmanuel BronshteinRemove org.apache.http.legacyhttps://code.samourai.io/wallet/samourai-wallet-android/-/blob/8ed0bd58590ad230f1e85fbeeca7997122ef5f57/app/build.gradle#L8
The line: `useLibrary 'org.apache.http.legacy'` exists in `./app/build.gradle`, remove it, this lib is deprecate...https://code.samourai.io/wallet/samourai-wallet-android/-/blob/8ed0bd58590ad230f1e85fbeeca7997122ef5f57/app/build.gradle#L8
The line: `useLibrary 'org.apache.http.legacy'` exists in `./app/build.gradle`, remove it, this lib is deprecated from Android 6 https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-apache-http-client
Other http clients can be used like okttp https://github.com/square/okhttp or android HttpURLConnection.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/437Change android:requestLegacyExternalStorage="true" to false for enforced scop...2021-05-16T17:02:14ZEmanuel BronshteinChange android:requestLegacyExternalStorage="true" to false for enforced scoped storage usagehttps://code.samourai.io/wallet/samourai-wallet-android/-/blob/aa5898092871c74edd72b54a37b29fb210f8aa90/app/src/main/AndroidManifest.xml#L51
`android:requestLegacyExternalStorage="true"` is used in `AndroidManifest.xml` file.
change th...https://code.samourai.io/wallet/samourai-wallet-android/-/blob/aa5898092871c74edd72b54a37b29fb210f8aa90/app/src/main/AndroidManifest.xml#L51
`android:requestLegacyExternalStorage="true"` is used in `AndroidManifest.xml` file.
change the setting to false in order to use scoped storage that limit not needed access of the app to user data.
also the below change is needed (the addition of `android:maxSdkVersion="28"` to `WRITE_EXTERNAL_STORAGE` permission)
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/aa5898092871c74edd72b54a37b29fb210f8aa90/app/src/main/AndroidManifest.xml#L10
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
Read for more info: https://developer.android.com/training/data-storage/shared/media#request-permissionshttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/438Remove android.enableJetifier line from gradle.properties2021-05-16T16:56:21ZEmanuel BronshteinRemove android.enableJetifier line from gradle.propertieshttps://code.samourai.io/wallet/samourai-wallet-android/-/blob/a8dee57a1791d77d72211a713ccd58c20c717f1a/gradle.properties#L39
```gradle
android.enableJetifier=true
```
see this guide for the steps to ensure it's safe to remove this line...https://code.samourai.io/wallet/samourai-wallet-android/-/blob/a8dee57a1791d77d72211a713ccd58c20c717f1a/gradle.properties#L39
```gradle
android.enableJetifier=true
```
see this guide for the steps to ensure it's safe to remove this line (check that all deps are already fully migrated to AndroidX)
https://medium.com/dipien/say-bye-bye-to-android-jetifier-a7e0d388f5d6https://code.samourai.io/wallet/samourai-wallet-android/-/issues/439Remove JCenter lines from build.gradle2021-05-16T16:57:15ZEmanuel BronshteinRemove JCenter lines from build.gradlehttps://code.samourai.io/wallet/samourai-wallet-android/-/blob/49b206dd65381bdf1bc2f881edbc7959f5637a86/build.gradle#L7
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/49b206dd65381bdf1bc2f881edbc7959f5637a86/build.gradle...https://code.samourai.io/wallet/samourai-wallet-android/-/blob/49b206dd65381bdf1bc2f881edbc7959f5637a86/build.gradle#L7
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/49b206dd65381bdf1bc2f881edbc7959f5637a86/build.gradle#L22
`jcenter()`
Jcenter service is closed (currently in read-only mode, no updates for packages will be made)
more details on needed migration:
https://developer.android.com/studio/build/jcenter-migration
and here content on how to migrate:
https://jeroenmols.com/blog/2021/02/04/migratingjcenter/https://code.samourai.io/wallet/samourai-wallet-android/-/issues/440Enable gradle dependency verification2021-05-16T23:43:39ZEmanuel BronshteinEnable gradle dependency verificationThis is done by having `verification-metadata.xml` file in gradle directory, more information:
https://docs.gradle.org/current/userguide/dependency_verification.htmlThis is done by having `verification-metadata.xml` file in gradle directory, more information:
https://docs.gradle.org/current/userguide/dependency_verification.htmlhttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/441Where are the tests?2021-12-17T09:29:26ZSculpture DevWhere are the tests?I am looking to make some contributions to this source code but I am struggling to find where the tests are located.
Is the test suite intentionally not being made public, is it non-existent or is it located in another repository?I am looking to make some contributions to this source code but I am struggling to find where the tests are located.
Is the test suite intentionally not being made public, is it non-existent or is it located in another repository?https://code.samourai.io/wallet/samourai-wallet-android/-/issues/442Allow Samourai to NOT be the default app for opening a USB2021-06-25T05:34:38ZMax TannahillAllow Samourai to NOT be the default app for opening a USBFor users that use USB on their phone regularly and not an OpenDime device, could there be a setting for not making new media open with Samourai constantly?![IMG_20210625_133027](/uploads/a07cb8d43fafd74a5bb7859668b6e92a/IMG_20210625_133...For users that use USB on their phone regularly and not an OpenDime device, could there be a setting for not making new media open with Samourai constantly?![IMG_20210625_133027](/uploads/a07cb8d43fafd74a5bb7859668b6e92a/IMG_20210625_133027.jpg)https://code.samourai.io/wallet/samourai-wallet-android/-/issues/443Security issue: Bypass PIN login attempts2021-10-13T07:46:41Zㅤ ㅤSecurity issue: Bypass PIN login attemptsHello, the current login with PIN mechanism and attempts counter (failures) can be bypassed leading to brute-force attacks.
If a user fails the login 2 times and restart the Samourai application, the counter will reset. Also, the PIN is...Hello, the current login with PIN mechanism and attempts counter (failures) can be bypassed leading to brute-force attacks.
If a user fails the login 2 times and restart the Samourai application, the counter will reset. Also, the PIN is not complex enough to protect the wallet by encryption.
The current logic stores the number of attempts during runtime:
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/develop/app/src/main/java/com/samourai/wallet/PinEntryActivity.java#L302
```
try {
HD_Wallet hdw = PayloadUtil.getInstance(PinEntryActivity.this).restoreWalletfromJSON(new CharSequenceX(AccessFactory.getInstance(PinEntryActivity.this).getGUID() + pin));
runOnUiThread(() -> {
progressBar.setVisibility(View.INVISIBLE);
});
if (hdw == null) {
runOnUiThread(() -> {
failures++;
Toast.makeText(PinEntryActivity.this, PinEntryActivity.this.getText(R.string.login_error)
+ ":" + failures + "/3", Toast.LENGTH_SHORT).show();
if (failures == 3) {
failures = 0;
doBackupRestore();
} else {
Intent intent = new Intent(PinEntryActivity.this, PinEntryActivity.class);
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
});
}
```https://code.samourai.io/wallet/samourai-wallet-android/-/issues/445Improvement for Networking View and Dojo state indication2021-10-12T14:09:28ZChuck NorrisonImprovement for Networking View and Dojo state indication### Current behaviour
The current Networking view will display Data Connection and Tor Routing. Dojo will also be visible if enabled. The state of function is shown with a green indicator.
Red gets shown if Dojo Full Node is Disabled.
...### Current behaviour
The current Networking view will display Data Connection and Tor Routing. Dojo will also be visible if enabled. The state of function is shown with a green indicator.
Red gets shown if Dojo Full Node is Disabled.
![image](/uploads/bda857d5df4aa556f90420bf5fbe8953/image.png)
### Improvement
If a Dojo Full Node is Enabled but shutdown and not available at the moment, the Balance changes to 0. The Networking view is still green for the Dojo Full Node. In this case the indicator could switch orange to visualize a "Wait for Connection" or more unexpected states to come.Wallet Guywg@samourai.ioWallet Guywg@samourai.iohttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/446Feature Suggestion - Stonewall Sweep #441(github)2021-12-17T09:29:26Zone samouraiFeature Suggestion - Stonewall Sweep #441(github)# Problem:
Wallet Sweep features are clear on chain
# Use-case:
The other day I was moving all my coins to a new seed as the old one got compromised (not the topic of this issue) for a fault of my own. When sweeping the old Samourai w...# Problem:
Wallet Sweep features are clear on chain
# Use-case:
The other day I was moving all my coins to a new seed as the old one got compromised (not the topic of this issue) for a fault of my own. When sweeping the old Samourai wallet (and any other wallet for that matter that I know of) I noticed that sweeping a wallet, as to be expected, creates one single transaction that spends everything towards 1 single address + the mining fee. (potentially one can add Ricochet but doesn't change the fact that the first tx was a full spend).
This type of transaction is very clear on chain and can be used as part of heuristics to determine ownership and coins moving.
# Suggestion
mix the features of Batch Send + Stonewall + Sweep.
Batch send by itself could solve the problem as I can a) generate multiple addresses in the new wallet and insert them into samourai but b) I need to manually calculate how much each address needs to get plus the fee (which is dynamic based on the size of the final tx in bytes) and that becomes pretty annoying unless I want to sacrifice some satoshis or eventually use the Sweep feature.
## Stonewall Sweep
So if there was a way to use the Sweep feature with `n` addresses (say some 3 or 4 addresses), and let Samourai construct this transaction in a matter similar Stonewall for `n-1` addresses and the rest(what would've been change in Stonewall) goes to the `nth` address that would pollute the chain even more and make Wallet Sweep a more private experience.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/447Feature Request - Integrated Labelling2022-03-31T15:17:44ZUgmugFeature Request - Integrated LabellingHello, I have a feature request to (hopefully if accepted) improve the labelling functionality of Samourai Wallet. SW does do labelling, however, I feel that its current functionality leaves lots of room for improvement, and I wouldn't c...Hello, I have a feature request to (hopefully if accepted) improve the labelling functionality of Samourai Wallet. SW does do labelling, however, I feel that its current functionality leaves lots of room for improvement, and I wouldn't consider it to be "integrated" in the wallet. This is because labelling is currently treated like notes, instead of their own data type. Below I will describe the changes necessary to apply "Integrated Labelling" as part of user experience.
It may be considered that this is actually a few different feature requests, and hopefully it's fine to group them under a "Labelling Improvements" sort of Epic. I will leave this up to the developers.
## Labels as a Data Store
When a user views Unspent Outputs, it is possible to view labels as "Notes" in the details of a particular UTXO. This field is currently a multi-line text input field. I believe in order to effectively apply multiple labels in the context of this greater request, labels would need their own "data store" to distinguish between separate labels.
For example, if I view a UTXO with the "tx0" note added and I want to add that the origin of this UTXO came from a KYC source, I can edit the note, and add the details I wish. However, the SW UI does not recognize this as separate labels, distinct from one another. This part of the request is to apply that distinction, as it will be necessary later.
For backwards compatibility, the current "Notes" area can (and probably should) remain unchanged.
## Apply Label on Receive
When a user opens the Receive dialog in SW, the only immediately visible properties are the address, a QR code, and an Advanced toggle. Unfortunately, there is no way to currently apply a label on this page. Due to the importance of labelling, I will request that an input field for "Label" be added underneath the QR code and above the Advanced toggle.
When a label has already been created, it would be nice if this new dialog also displayed them in a list so that the user can simply click/touch them to apply, instead of having to type it again.
When a new label is to be created, take the user's input until they click/touch a "Save" or "Apply Label" button, which will add the new label to the data store.
## Filter by Label
When a user filters their Unspent Outputs, the only options available currently are "Address Type" and "Status". If a Label data store is used, the user would also need to be able to filter UTXOs by labels as well. This should include the ability to filter with multiple labels applied. By default, the Label filter should be empty, which would show all available Unspent Outputs.
Additionally, this request would add the ability to filter by label from within Whirlpool's "Mix UTXOs" functionality. This would help prevent users from accidentally consolidating UTXOs from different sources.
## Persist Labels
When spending a UTXO or sending to Whirlpool, any labels applied to the original UTXO should persist to the change ouput. This will help with keeping track of the origin of funds which also helps users from accidentally consolidating change outputs from different sources.
## Spend by Label
It is currently possible to spend a UTXO directly from the Deposit (pre-pre-mix) account in SW. It is also possible to spend from the Deposit account from all its available funds. However, doing so is unsafe because it has the potential to mix outputs without regard to their label.
On the "Send" page, a "Label" multi-choice dialog should be added above or below the "Total available amount" and X.XXXXXXXX BTC label to allow the user to select specific labels to be used when spending. When a label or labels are selected, the "Total available amount" should be updated to reflect the new value with the label(s) applied.
## Warn on Conflicting Label UTXO Consolidation
If a user does attempt to consolidate change outputs with conflicting labels, provide them with a warning which clearly shows the label conflicts and require them to confirm before proceeding.
For example, if a user had applied "ABC" label to a receive address, sent the majority of those funds to Whirlpool, and the label had persisted, then also applied "XYZ" to a different receive address and wanted to send both of them to Whirlpool together, that action would trigger this warning.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/448Exception input too short2022-04-12T17:57:33ZgreenpasteException input too short```
steps to reproduce:
1)enter sw
2)go send screen
3)return
4)go postmix (press top left icon)
5)go postmix send screen
```
![photo_2022-04-11_05-39-04-cropped](/uploads/bb90fff855b1b06a9f8181ac11650880/photo_2022-04-11_05-39-04-cropped...```
steps to reproduce:
1)enter sw
2)go send screen
3)return
4)go postmix (press top left icon)
5)go postmix send screen
```
![photo_2022-04-11_05-39-04-cropped](/uploads/bb90fff855b1b06a9f8181ac11650880/photo_2022-04-11_05-39-04-cropped.jpg)https://code.samourai.io/wallet/samourai-wallet-android/-/issues/451F-Droid repo is not available2022-08-17T14:53:54ZxuhccF-Droid repo is not availableRepository is not available: https://repo.samourai.io/fdroid/repo
This repo address is published at https://samouraiwallet.com/download/fdroid pageRepository is not available: https://repo.samourai.io/fdroid/repo
This repo address is published at https://samouraiwallet.com/download/fdroid pagehttps://code.samourai.io/wallet/samourai-wallet-android/-/issues/452PayNym page showing black bars2022-08-17T12:40:41Z+rapidlab309samourai@rapidlab309.mePayNym page showing black barsUsing Pixel 5a with CalyxOS, Samourai was downloaded from F-Droid (last version: 0.99.98e)
Whenever entering the PayNym screen, I'm having black bars around the following/followers part; I think it's because my phone settings set to be ...Using Pixel 5a with CalyxOS, Samourai was downloaded from F-Droid (last version: 0.99.98e)
Whenever entering the PayNym screen, I'm having black bars around the following/followers part; I think it's because my phone settings set to be on the minimal size.
![photo_2022-08-17_15-38-33](/uploads/5a974bf3828722745d9037ecb5afc5c2/photo_2022-08-17_15-38-33.jpg)https://code.samourai.io/wallet/samourai-wallet-android/-/issues/453A new type of Whirlpool Spend Privacy Tool2022-10-09T13:09:18ZUn ExA new type of Whirlpool Spend Privacy Tool
I'm a happy and long time user of the samourai wallet and recently I got an idea of a tool to spend from whirlpool to another Samourai wallet user. I called it Passepartout (from the french goes everywhere).
**The idea:**
What passepa...
I'm a happy and long time user of the samourai wallet and recently I got an idea of a tool to spend from whirlpool to another Samourai wallet user. I called it Passepartout (from the french goes everywhere).
**The idea:**
What passepartout transactions would do is to enable to spend from your mixed whirlpool balance without going out of whirlpool enabling you an the receiver to benefit from the endless remixes. The only downside would be that you need to wait for potentially a few days to get a free remix.
This would also restrict the amount to one that correspond to one of the whirlpool pools eg: 0.01 BTC.
**Technically that would work in two stage:**
The recipient generate a QR code with a fresh address from its whirlpool derivation path.
Dojo flags this address to NOT be used for its own future remix.
The sender scan the QR code, confirm to send an amount. As soon as one of its UTXO is selected for remix the sender sign and send it to the recipient address instead of their own.
Both the recipient and sender can continue remixing endlessly, the service would be free for both the sender and recipient.
Advantages:
- Allow users send bitcoin within a standard whirlpool transaction
- Increase the uncertainty around the flow of funds inside whirlpool.
- If a user send 1 btc inside whirlpool they might never withdraw 1 btc since some of it might have been used to pay for services inside the whirlpool.
- Similar if a user withdraw 1 btc they might never have sent anything to whirlpool.
- Increase the quantity of bitcoin in the pool to provide more liquidity.
- Allow to send Bitcoin at effectively 0 cost
Cons:
- This is potentially slow, you might need to wait hours if not days to get a remix.
- Both users must use samourai and potentially a dojo node to be able to craft this special remix transaction. (Although this might be seen as a plus since more people would use samourai and install dojo).
- This is limited to a round amount from one of the pool denomination.
- This might introduce address reuse if not done carefully. Every address that the receiver presents must be truly unique and survive a wallet restore.
- Checks from both the recipient and sender must be done before hand to avoid any reuse especially inside whirlpool.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/454Review transaction change_is_dust2022-11-27T17:01:44ZSantochi NacamochoReview transaction change_is_dustHello,
I want to spend specific UTXO of 100k sats to send 99400. I select the unspent UTXO, introduce the amount to be sent. The slide to configured the fee is not shown yet. When I click review transaction I get the change_is_dust messa...Hello,
I want to spend specific UTXO of 100k sats to send 99400. I select the unspent UTXO, introduce the amount to be sent. The slide to configured the fee is not shown yet. When I click review transaction I get the change_is_dust message, I want to add all the change to the fee, but I can't finish the transaction.
Also the Spanish translation is misleading. The English message says:
The change from this transaction is a dust amount. Try again and either modify the spend amount or spend the entire balance
The Spanish translation says:
The change from this transaction is a dust amount and will be added to the miner fee
When I see that message, I think that it is ok and I want to complete the transaction, but nothing happens.
The Spanish translation should be changed to match the English message:
El cambio de esta transacción es una cantidad ínfima. Inténtelo de nuevo y modifique el importe del gasto o gaste todo el saldo.
However, I will be in the same situation, because I can't change anything, I can't change the spend amount, I want to use that UTXO and I can't change the fee.
If I reduce the amount to 99300 I don't see the change_is_dust message and the send dialog is shown. I can configure the fee, but the mempool is empty, the max allowed fee is 1 sat/b and the change_is_dust message is shown again when I press the send button.
The dialog that shows the change_is_dust message could used a variation of the Spanish translation "The change from this transaction is a dust amount and will be added to the miner fee, ok?" and show ok and cancel buttons. If I press OK, the dust is added to the fee and everybody happy.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/460Boosting fee fails with a message I don't understand2023-06-21T14:06:24ZJoseBoosting fee fails with a message I don't understandI did a transaction and then tried to boost on version 0.99.98g. The boost failed with the attached message which I don't understand.
I would have expected the boost would have worked. If the boost failed then I would expect to have got...I did a transaction and then tried to boost on version 0.99.98g. The boost failed with the attached message which I don't understand.
I would have expected the boost would have worked. If the boost failed then I would expect to have gotten an error I could understand and clear instructions on what I should do.
![signal-2023-06-21-085930_002](/uploads/fc9040a1b218b1f4537a563405138c9f/signal-2023-06-21-085930_002.jpeg)https://code.samourai.io/wallet/samourai-wallet-android/-/issues/463App reopens itself2023-11-16T18:44:39ZSantochi NacamochoApp reopens itselfHi,
After I exit the app, it reopens itself again. I have to restart the phone to avoid it.
I have Android 8.1.0 and Samourai 0.99.98i.Hi,
After I exit the app, it reopens itself again. I have to restart the phone to avoid it.
I have Android 8.1.0 and Samourai 0.99.98i.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/464[Feature Request] Having the ability to choose the direction of toxic change2024-01-09T20:56:40ZArkad .[Feature Request] Having the ability to choose the direction of toxic changeThe toxic UTXO is the unmixed change derived from the Whirlpool Tx0. This UTXO must be treated individually for privacy reasons. After the Tx0, this change goes to the Bad Bank account. Following that Tx0, the user can sweep it out of th...The toxic UTXO is the unmixed change derived from the Whirlpool Tx0. This UTXO must be treated individually for privacy reasons. After the Tx0, this change goes to the Bad Bank account. Following that Tx0, the user can sweep it out of the wallet with an additional transaction.
Would it be possible to choose the destination address for that toxic change in the same Tx0 without having to make an additional transaction? This would be a gain as we could save on fees, especially in these times of transaction accumulation in the mempool.https://code.samourai.io/wallet/samourai-wallet-android/-/issues/465Avoid generating dust change after the Tx02024-01-09T20:51:55ZArkad .Avoid generating dust change after the Tx0In certain scenarios when initiating a Tx0, the toxic change (unmixed change) can have a very low value. The issue is that transferring that UTXO later can be inefficient/costly. Sparrow wallet can detect if the toxic change generated in...In certain scenarios when initiating a Tx0, the toxic change (unmixed change) can have a very low value. The issue is that transferring that UTXO later can be inefficient/costly. Sparrow wallet can detect if the toxic change generated in the Tx0 is dust (≤5,000 sats, the amount can be adjusted based on the state of mempool fees) and suggest to the user to spend that amount on the mining fee for the Tx0. Sparrow already does this with simple/efficient transactions.
The benefits would be a reduced probability of dust in the Bad bank, avoidance of consolidations of low-value toxic changes, and the Tx0 would eliminate an inefficient output.