samourai-wallet-android issueshttps://code.samourai.io/wallet/samourai-wallet-android/-/issues2021-05-16T16:47:57Zhttps://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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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)