samourai-wallet-android issueshttps://code.samourai.io/wallet/samourai-wallet-android/-/issues2024-01-09T20:56:40Zhttps://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.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/459Cannot connect via bip47 with a wallet that doesn't use Samourai's paynym.is ...2023-08-07T00:16:06Zwhiteh0rseCannot connect via bip47 with a wallet that doesn't use Samourai's paynym.is serviceI have a friend on Blue Wallet that I want to connect with on the bitcoin blockchain. I know their payment code. When I go to the paynym screen in Samourai wallet to paste in the payment code so I can connect with them, I receive a toast...I have a friend on Blue Wallet that I want to connect with on the bitcoin blockchain. I know their payment code. When I go to the paynym screen in Samourai wallet to paste in the payment code so I can connect with them, I receive a toast message in Samourai saying "unable to load avatar." This error blocks me from connecting with this wallet via bip47.
As it stands, it appears that the paynym.is service may be a central point of failure in Samourai wallet and that service is required to be online and implement the paynym.is service in order to connect with new wallets via bip47.
Is this a bug in the design of how Samourai wallet is supposed to work?wanderingKing072wanderingKing072https://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/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/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/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/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/449Wording on restoring a backup file with a Dojo configuration is confusing2022-07-28T22:53:33ZSarekWording on restoring a backup file with a Dojo configuration is confusingThe string in question:
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/develop/app/src/main/res/values/strings.xml#L859
Reads:
"Dojo configuration detected in backup file. Override current Dojo configuration in backup f...The string in question:
https://code.samourai.io/wallet/samourai-wallet-android/-/blob/develop/app/src/main/res/values/strings.xml#L859
Reads:
"Dojo configuration detected in backup file. Override current Dojo configuration in backup file?"
The response options are No and Yes with Yes being the highlighted default.
If the user had just finished connecting to a new Dojo, seeing this text on restoration of the backup file is very confusing. The source of the confusion is the word "current" because without really thinking about it, it could (and has to me) come across as suggesting do you want to override the new Dojo you just connected to, which at this point is now current, with the one in the backup file. To which the answer would be no... but then the end effect is not the desired effect. The newly connected Dojo would be wiped out and the old Dojo from the backup file would be used. This would happen and silently the user would wonder why the wallet isn't connecting to the Dojo.
It could be made more clear what the options are and what will happen with a slight change to the string:
"A previous Dojo configuration was detected in the backup file. Do you want to ignore this previous configuration? (Selecting No will load the Dojo configuration from the backup file)"
While a bit more wordy, it's unambiguous. I will submit a PR for this.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/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/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/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/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/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/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/430Sending low amount crashes app2021-09-07T08:39:20ZDamm KewlSending low amount crashes appI have the following scenario:
- The wallet consists of A single UTXO spendable (other UTXO's marked unspendable) of value around 600 to 700 sats
- I open the actions and tap "send"
- I scan the QR code and see the correct address is en...I have the following scenario:
- The wallet consists of A single UTXO spendable (other UTXO's marked unspendable) of value around 600 to 700 sats
- I open the actions and tap "send"
- I scan the QR code and see the correct address is entered
- I enter the full amount of the UTXO in the "sat" field
- I don't activate privacy addons
- I tap "REVIEW TRANSACTION"
- The app crashes