Wallet issueshttps://code.samourai.io/groups/wallet/-/issues2024-01-09T20:51:55Zhttps://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/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/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/sentinel-android/-/issues/64Can't Move Pubkeys Between Collections2023-10-27T12:15:59ZBetty von SchmartenhausenCan't Move Pubkeys Between CollectionsHi,
This is somewhat related to #63 but not strictly the same so creating a separate issue. It doesn't seem possible to move pubkeys between collections. For those migrating from v4 to v5 it may be useful, if they want to make use of co...Hi,
This is somewhat related to #63 but not strictly the same so creating a separate issue. It doesn't seem possible to move pubkeys between collections. For those migrating from v4 to v5 it may be useful, if they want to make use of collections, to be able to create new blank collections and then move existing pubkeys into those.
Workrounds for now seem to be to copy existing pubkeys out of a primary collection into the others, but a UI mechanism for this such as a move button, and a collection picker could be useful.
-- bvshttps://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/-/issues/9Always online PayNym with a Bitcoin node2022-11-28T13:33:27ZZoltan ZsAlways online PayNym with a Bitcoin nodeCurrently if my Samurai wallet is offline and someone wants to send me money it needs to "pair/connect" with my PayNym for an extra fee+transaction. Today this fee is not much (in dollar terms), but in the future it will mean a lot. Beca...Currently if my Samurai wallet is offline and someone wants to send me money it needs to "pair/connect" with my PayNym for an extra fee+transaction. Today this fee is not much (in dollar terms), but in the future it will mean a lot. Because I have a Bitcoin node (myNode) with Dojo and Whirlpool, can't I use somehow this node to be always only for my PayNym? In this case for small donations Samurai PayNym will be a perfect solution.
P.s. I know this is a feature request, but I haven't found other way to submit it just as an issue.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/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/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/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/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/-/issues/5Feature Suggestion - Stonewall Sweep #441(github)2021-12-07T18:55:37Zone 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/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/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/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/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/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/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/