diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 4ae41915177..2c4df9ced75 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -4,8 +4,8 @@ contact_links: url: https://docs.wasabiwallet.io/ about: Search for any information about Wasabi. - name: 💪 Community support - url: https://github.com/zkSNACKs/WalletWasabi/discussions/categories/support + url: https://github.com/WalletWasabi/WalletWasabi/discussions/categories/support about: Feel free to ask anything. - name: ❓ Other issue? - url: https://github.com/zkSNACKs/WalletWasabi/discussions/ + url: https://github.com/WalletWasabi/WalletWasabi/discussions/ about: Search on the community forum. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8f7371aa422..8741caadaa0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ ## How to be useful for the project -- Any issue labelled as [good first issue](https://github.com/zkSNACKs/WalletWasabi/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) is good to start contributing to Wasabi. +- Any issue labelled as [good first issue](https://github.com/WalletWasabi/WalletWasabi/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) is good to start contributing to Wasabi. - Always focus on a specific issue in your pull request and avoid unrelated/unnecessary changes. - Avoid working on complex problems (fees, amount decomposition, coin selection...) without extensive research on the context, either on Github or asking to contributors. - Avoid working on a UI or UX feature without first seeing a conclusion from a UX meeting. @@ -18,7 +18,7 @@ **DO** use [CodeMaid](https://www.codemaid.net/), a Visual Studio extension to automatically clean up your code on saving the file. CodeMaid is a non-intrusive code cleanup tool. -Wasabi's CodeMaid settings [can be found in the root of the repository](https://github.com/zkSNACKs/WalletWasabi/blob/master/CodeMaid.config). They are automatically picked up by Visual Studio when you open the project, assuming the CodeMaid extension is installed. Unfortunately CodeMaid has no Visual Studio Code extension yet. You can check out the progress on this [under this GitHub issue](https://github.com/codecadwallader/codemaid/issues/273). +Wasabi's CodeMaid settings [can be found in the root of the repository](https://github.com/WalletWasabi/WalletWasabi/blob/master/CodeMaid.config). They are automatically picked up by Visual Studio when you open the project, assuming the CodeMaid extension is installed. Unfortunately CodeMaid has no Visual Studio Code extension yet. You can check out the progress on this [under this GitHub issue](https://github.com/codecadwallader/codemaid/issues/273). **Rider IDE:** @@ -31,7 +31,7 @@ And also enable `Enable EditorConfig support` in `Settings -> Editor -> Code Sty ## .editorconfig -Not only CodeMaid, but Visual Studio also enforces consistent coding style through [`.editorconfig`](https://github.com/zkSNACKs/WalletWasabi/blob/master/.editorconfig) file. +Not only CodeMaid, but Visual Studio also enforces consistent coding style through [`.editorconfig`](https://github.com/WalletWasabi/WalletWasabi/blob/master/.editorconfig) file. If you are using Visual Studio Code make sure to install "C# Dev Kit" extension and add the following settings to your settings file: @@ -41,13 +41,13 @@ If you are using Visual Studio Code make sure to install "C# Dev Kit" extension ## Technologies and scope -- [.NET SDK](https://dotnet.microsoft.com/en-us/): free, open-source, cross-platform framework for building apps. SDK version path: [WalletWasabi/global.json](https://github.com/zkSNACKs/WalletWasabi/blob/master/global.json). +- [.NET SDK](https://dotnet.microsoft.com/en-us/): free, open-source, cross-platform framework for building apps. SDK version path: [WalletWasabi/global.json](https://github.com/WalletWasabi/WalletWasabi/blob/master/global.json). - [C#](https://dotnet.microsoft.com/en-us/languages/csharp): open-source programming language. - Model-View-ViewModel architecture (MVVM). - [Avalonia UI](https://www.avaloniaui.net/): framework to create cross-platform UI. - [xUnit](https://xunit.net/): create unit tests. -- Dependencies path: [WalletWasabi/Directory.Packages.props](https://github.com/zkSNACKs/WalletWasabi/blob/master/Directory.Packages.props). -- Developer's documentation path: [WalletWasabi/WalletWasabi.Documentation/](https://github.com/zkSNACKs/WalletWasabi/tree/master/WalletWasabi.Documentation). +- Dependencies path: [WalletWasabi/Directory.Packages.props](https://github.com/WalletWasabi/WalletWasabi/blob/master/Directory.Packages.props). +- Developer's documentation path: [WalletWasabi/WalletWasabi.Documentation/](https://github.com/WalletWasabi/WalletWasabi/tree/master/WalletWasabi.Documentation). # Code conventions @@ -177,7 +177,7 @@ myUiControl.Text = result; ## Never throw AggregateException and Exception in a mixed way It causes confusion and awkward catch clauses. -[Example](https://github.com/zkSNACKs/WalletWasabi/pull/10353/files) +[Example](https://github.com/WalletWasabi/WalletWasabi/pull/10353/files) ## Unused return value diff --git a/README.md b/README.md index 284981c35d3..c0a430d87da 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- +

@@ -21,7 +21,7 @@ API | - + Support | @@ -29,7 +29,7 @@ YouTube | - + PGP @@ -46,10 +46,10 @@ [4]: https://dev.azure.com/zkSNACKs/Wasabi/_build?definitionId=1 [5]: https://dev.azure.com/zkSNACKs/Wasabi/_apis/build/status/Wasabi.Osx?branchName=master [6]: https://dev.azure.com/zkSNACKs/Wasabi/_build?definitionId=2 -[7]: https://img.shields.io/github/license/zkSNACKs/WalletWasabi.svg -[8]: https://github.com/zkSNACKs/WalletWasabi/blob/master/LICENSE.md -[9]: https://www.codefactor.io/repository/github/zksnacks/walletwasabi/badge -[10]: https://www.codefactor.io/repository/github/zksnacks/walletwasabi +[7]: https://img.shields.io/github/license/WalletWasabi/WalletWasabi.svg +[8]: https://github.com/WalletWasabi/WalletWasabi/blob/master/LICENSE.md +[9]: https://www.codefactor.io/repository/github/WalletWasabi/walletwasabi/badge +[10]: https://www.codefactor.io/repository/github/WalletWasabi/walletwasabi [11]: https://dev.azure.com/zkSNACKs/Wasabi/_apis/build/status/Wasabi.ContinuousDelivery?branchName=master [12]: https://dev.azure.com/zkSNACKs/Wasabi/_build/latest?definitionId=12&branchName=master [13]: https://dev.azure.com/zkSNACKs/Wasabi/_apis/build/status/Wasabi.DeterministicBuild?branchName=master @@ -58,7 +58,7 @@
-# [Download Wasabi](https://github.com/zkSNACKs/WalletWasabi/releases) +# [Download Wasabi](https://github.com/WalletWasabi/WalletWasabi/releases)
@@ -75,7 +75,7 @@ Clone & Restore & Build ```sh -git clone --depth=1 --single-branch --branch=master https://github.com/zkSNACKs/WalletWasabi.git +git clone --depth=1 --single-branch --branch=master https://github.com/WalletWasabi/WalletWasabi.git cd WalletWasabi/WalletWasabi.Fluent.Desktop dotnet build ``` diff --git a/SECURITY.md b/SECURITY.md index 373ca4b23f5..c7d9d72944a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,7 +1,7 @@ # Security Policy -If a vulnerability does not compromise users' privacy or security, open a [regular GitHub issue](https://github.com/zkSNACKs/WalletWasabi/issues/new/choose). -If it does, then pay great care to responsible disclosure. Report a [private vulnerability on GitHub](https://github.com/zkSNACKs/WalletWasabi/security/advisories/new) or send an email to molnardavid84@gmail.com, preferably using PGP encryption: `F079 0C08 68BD BAB8 EE33 F9CE 50FB 7FEB 00F9 7588` +If a vulnerability does not compromise users' privacy or security, open a [regular GitHub issue](https://github.com/WalletWasasbi/WalletWasabi/issues/new/choose). +If it does, then pay great care to responsible disclosure. Report a [private vulnerability on GitHub](https://github.com/WalletWasabi/WalletWasabi/security/advisories/new) or send an email to molnardavid84@gmail.com, preferably using PGP encryption: `F079 0C08 68BD BAB8 EE33 F9CE 50FB 7FEB 00F9 7588` ``` -----BEGIN PGP PUBLIC KEY BLOCK----- diff --git a/WalletWasabi.Backend/Startup.cs b/WalletWasabi.Backend/Startup.cs index 20ca939fa9c..18f8ab475c2 100644 --- a/WalletWasabi.Backend/Startup.cs +++ b/WalletWasabi.Backend/Startup.cs @@ -67,7 +67,7 @@ public void ConfigureServices(IServiceCollection services) Version = $"v{Constants.BackendMajorVersion}", Title = "Wasabi Wallet API", Description = "Privacy focused Bitcoin Web API.", - License = new OpenApiLicense { Name = "Use under MIT.", Url = new Uri("https://github.com/zkSNACKs/WalletWasabi/blob/master/LICENSE.md") } + License = new OpenApiLicense { Name = "Use under MIT.", Url = new Uri("https://github.com/WalletWasabi/WalletWasabi/blob/master/LICENSE.md") } }); // Set the comments path for the Swagger JSON and UI. diff --git a/WalletWasabi.Backend/WalletWasabi.Backend.csproj b/WalletWasabi.Backend/WalletWasabi.Backend.csproj index 3803370d0ea..7fd411299d2 100644 --- a/WalletWasabi.Backend/WalletWasabi.Backend.csproj +++ b/WalletWasabi.Backend/WalletWasabi.Backend.csproj @@ -7,7 +7,7 @@ MIT walletwasabi, wasabiwallet, wasabi, wallet, bitcoin, nbitcoin, tor, zerolink, wabisabi, coinjoin, fungibility, privacy, anonymity Git - https://github.com/zkSNACKs/WalletWasabi/ + https://github.com/WalletWasabi/WalletWasabi/ $(MSBuildProjectDirectory)\=WalletWasabi.Backend Linux false diff --git a/WalletWasabi.Daemon/README.md b/WalletWasabi.Daemon/README.md index 7a9eaa9f5ee..3d2f425b16b 100644 --- a/WalletWasabi.Daemon/README.md +++ b/WalletWasabi.Daemon/README.md @@ -66,4 +66,4 @@ Wasabi Daemon 2.0.3.0 ### Usage -To interact with the daemon, use the [RPC server](https://docs.wasabiwallet.io/using-wasabi/RPC.html) or the [wcli script](https://github.com/zkSNACKs/WalletWasabi/tree/master/Contrib/CLI). +To interact with the daemon, use the [RPC server](https://docs.wasabiwallet.io/using-wasabi/RPC.html) or the [wcli script](https://github.com/WalletWasabi/WalletWasabi/tree/master/Contrib/CLI). diff --git a/WalletWasabi.Daemon/WalletWasabi.Daemon.csproj b/WalletWasabi.Daemon/WalletWasabi.Daemon.csproj index 9bffd2fc31e..fb1bfa1d76d 100644 --- a/WalletWasabi.Daemon/WalletWasabi.Daemon.csproj +++ b/WalletWasabi.Daemon/WalletWasabi.Daemon.csproj @@ -21,10 +21,10 @@ Wasabi Wallet Daemon Wasabi Wallet Daemon bitcoin-wallet;privacy;bitcoin;dotnet;nbitcoin;cross-platform;zerolink;wallet;wabisabi;coinjoin;tor - https://github.com/zkSNACKs/WalletWasabi/ - https://github.com/zkSNACKs/WalletWasabi/blob/master/LICENSE.md + https://github.com/WalletWasabi/WalletWasabi/ + https://github.com/WalletWasabi/WalletWasabi/blob/master/LICENSE.md git - https://github.com/zkSNACKs/WalletWasabi/ + https://github.com/WalletWasabi/WalletWasabi/ Wasabi Wallet Fluent Daemon diff --git a/WalletWasabi.Documentation/ClientRelease/ClientDeployment.md b/WalletWasabi.Documentation/ClientRelease/ClientDeployment.md index 229fedae842..0e083be9235 100644 --- a/WalletWasabi.Documentation/ClientRelease/ClientDeployment.md +++ b/WalletWasabi.Documentation/ClientRelease/ClientDeployment.md @@ -1,9 +1,9 @@ # Final tests - Check the exact **date** of the last release and the **name** of the last PR. -- List the PR-s in order, open the [link and (adjust date!)](https://github.com/zkSNACKs/WalletWasabi/pulls?q=is%3Apr+merged%3A%3E%3D2019-07-07+sort%3Aupdated-asc). -- Go through all PR, create the Final Test issue. Create test cases according to PR-s and write a list - [Final Test format](https://github.com/zkSNACKs/WalletWasabi/issues/2227). -- Go through all issues and pick the [important ones (adjust date!)](https://github.com/zkSNACKs/WalletWasabi/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%3E%3D2019-07-07+sort%3Aupdated-asc+) and add to Final Tests if required. +- List the PR-s in order, open the [link and (adjust date!)](https://github.com/WalletWasabi/WalletWasabi/pulls?q=is%3Apr+merged%3A%3E%3D2019-07-07+sort%3Aupdated-asc). +- Go through all PR, create the Final Test issue. Create test cases according to PR-s and write a list - [Final Test format](https://github.com/WalletWasabi/WalletWasabi/issues/2227). +- Go through all issues and pick the [important ones (adjust date!)](https://github.com/WalletWasabi/WalletWasabi/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%3E%3D2019-07-07+sort%3Aupdated-asc+) and add to Final Tests if required. - Check Tor status. Never release during a Tor network disruption: https://status.torproject.org/ - At the end there will be a Final Test document. - Do testing contribution game if needed. @@ -31,17 +31,17 @@ Make sure to run a virus detection scan on one of the Release candidate's .msi i - Run tests. - MAKE SURE YOU ARE ON THE RIGHT BRANCH AND UP TO DATE in GitHub Desktop on the release machine! - Discard packages.lock changes if there are. Inserted USB drive name must contain the string USB! -- Run the [script file](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Packager/scripts/Wasabi_release.ps1) on the **Windows Release Laptop** and follow the instructions. -- At some point you will need to run [this script](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Packager/scripts/WasabiNoratize.scpt) file on Mac. Don't forget to open the script file on Mac and insert your Apple dev username and password. Guide how to setup it: [macOS release environment](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Documentation/Guides/MacOsSigning.md). +- Run the [script file](https://github.com/WalletWasabi/WalletWasabi/blob/master/WalletWasabi.Packager/scripts/Wasabi_release.ps1) on the **Windows Release Laptop** and follow the instructions. +- At some point you will need to run [this script](https://github.com/WalletWasabi/WalletWasabi/blob/master/WalletWasabi.Packager/scripts/WasabiNoratize.scpt) file on Mac. Don't forget to open the script file on Mac and insert your Apple dev username and password. Guide how to setup it: [macOS release environment](https://github.com/WalletWasabi/WalletWasabi/blob/master/WalletWasabi.Documentation/Guides/MacOsSigning.md). - Finish the script on Windows. Now a folder should pop up with all the files that need to be uploaded to GitHub. - Test asc file for `.msi`. - Final `.msi` test on own computer. Check the About dialog and optionally the BUILDINFO.json next to the wasabi executable, the commit ID should match with the one on GitHub. # Final release -- Draft a [new release at the main repo](https://github.com/zkSNACKs/WalletWasabi/releases/new). +- Draft a [new release at the main repo](https://github.com/WalletWasabi/WalletWasabi/releases/new). - Bump client version. (WalletWasabi/Helpers/Constants.cs) - maybe you already did this. -- Create the release notes by using [the template](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Documentation/ClientRelease/ReleaseNotesTemplate.md). Make sure the the recent changes are in the What's new section. +- Create the release notes by using [the template](https://github.com/WalletWasabi/WalletWasabi/blob/master/WalletWasabi.Documentation/ClientRelease/ReleaseNotesTemplate.md). Make sure the the recent changes are in the What's new section. - Run tests. - Do Packaging (see above). - Upload the files to the main repo! @@ -52,7 +52,7 @@ Make sure to run a virus detection scan on one of the Release candidate's .msi i # Notify - Refresh website download and signature links. -- [Deploy testnet and mainnet backend](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Documentation/HowToDeploy.md). Make sure the client version number is bumped here as well. If it is a hotfix you do not need to update the backend, but you need to update the website! +- [Deploy testnet and mainnet backend](https://github.com/WalletWasabi/WalletWasabi/blob/master/WalletWasabi.Documentation/HowToDeploy.md). Make sure the client version number is bumped here as well. If it is a hotfix you do not need to update the backend, but you need to update the website! # Announce diff --git a/WalletWasabi.Documentation/ClientRelease/ReleaseNotesTemplate.md b/WalletWasabi.Documentation/ClientRelease/ReleaseNotesTemplate.md index 78f40973c30..157232fac71 100644 --- a/WalletWasabi.Documentation/ClientRelease/ReleaseNotesTemplate.md +++ b/WalletWasabi.Documentation/ClientRelease/ReleaseNotesTemplate.md @@ -1,11 +1,11 @@ ### _[Wasabi Wallet](https://WasabiWallet.io) is an easy to use, privacy-focused, open-source, non-custodial, Bitcoin wallet_ # Download -:window: [Windows](https://github.com/zkSNACKs/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x.msi) -:green_apple: [Apple M1/M2](https://github.com/zkSNACKs/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x-arm64.dmg) -:apple: [Apple Intel](https://github.com/zkSNACKs/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x.dmg) -:penguin: [Ubuntu / Debian](https://github.com/zkSNACKs/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x.deb) -:penguin: [Other Linux](https://github.com/zkSNACKs/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x.tar.gz) +:window: [Windows](https://github.com/WalletWasabi/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x.msi) +:green_apple: [Apple M1/M2](https://github.com/WalletWasabi/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x-arm64.dmg) +:apple: [Apple Intel](https://github.com/WalletWasabi/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x.dmg) +:penguin: [Ubuntu / Debian](https://github.com/WalletWasabi/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x.deb) +:penguin: [Other Linux](https://github.com/WalletWasabi/WalletWasabi/releases/download/v2.0.x/Wasabi-2.0.x.tar.gz) --- ## Release Highlights @@ -23,12 +23,12 @@ For a detailed installation guide, including **signature verification**, see [th :spider_web: [Website](https://wasabiwallet.io) :onion: [Tor onion site](http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion/) :orange_book: [Documentation](https://docs.wasabiwallet.io) -:grey_question: [FAQ](https://github.com/zkSNACKs/WalletWasabi/discussions/categories/faq) +:grey_question: [FAQ](https://github.com/WalletWasabi/WalletWasabi/discussions/categories/faq) ## Advanced Guide If you want to build or update Wasabi from source code, check out [these easy instructions](https://docs.wasabiwallet.io/using-wasabi/BuildSource.html). -Wasabi uses [reproducible builds](https://reproducible-builds.org/), which you can verify with [this guide](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Documentation/Guides/DeterministicBuildGuide.md). +Wasabi uses [reproducible builds](https://reproducible-builds.org/), which you can verify with [this guide](https://github.com/WalletWasabi/WalletWasabi/blob/master/WalletWasabi.Documentation/Guides/DeterministicBuildGuide.md). ## Requirements - Windows 10 1607+ diff --git a/WalletWasabi.Documentation/Guides/DeterministicBuildGuide.md b/WalletWasabi.Documentation/Guides/DeterministicBuildGuide.md index 6ae332a74ad..b54cc00cedd 100644 --- a/WalletWasabi.Documentation/Guides/DeterministicBuildGuide.md +++ b/WalletWasabi.Documentation/Guides/DeterministicBuildGuide.md @@ -6,7 +6,7 @@ The term *deterministic builds* is [defined](https://reproducible-builds.org/) a This guide describes how to reproduce Wasabi's builds. If you get stuck with these instructions, take a look at [how to build Wasabi from source code](https://docs.wasabiwallet.io/using-wasabi/BuildSource.html). -**Warning:** Reproducible builds were introduced in [1.1.3 release](https://github.com/zkSNACKs/WalletWasabi/releases/tag/v1.1.3), you cannot use these instructions for older versions! +**Warning:** Reproducible builds were introduced in [1.1.3 release](https://github.com/WalletWasabi/WalletWasabi/releases/tag/v1.1.3), you cannot use these instructions for older versions! ## 1. Assert correct environment @@ -28,11 +28,11 @@ Example of `global.json` that is set to strictly use a specific version: ## 2. Reproduce builds -You can see the list of Wasabi releases here: https://github.com/zkSNACKs/WalletWasabi/releases. Please note that each release has a git tag assigned, which is useful in the following instructions: +You can see the list of Wasabi releases here: https://github.com/WalletWasabi/WalletWasabi/releases. Please note that each release has a git tag assigned, which is useful in the following instructions: ```sh # The following command downloads only a single git branch. However, you can clone the whole repository, which is bigger. -git clone --depth 1 --branch https://github.com/zkSNACKs/WalletWasabi.git # where `` may be, for example, `v1.1.11.1`. +git clone --depth 1 --branch https://github.com/WalletWasabi/WalletWasabi.git # where `` may be, for example, `v1.1.11.1`. cd WalletWasabi/WalletWasabi.Packager dotnet nuget locals all --clear dotnet restore @@ -95,7 +95,7 @@ According to Apple documentation, the signature that is used to ensure the integ According to this, it is impossible to have both deterministic build and code signature on macOS. macOS Gatekeeper won't let you run software without it. Thus, Wasabi only applies code signature, but no deterministic build for macOS. -There is an issue [here](https://github.com/zkSNACKs/WalletWasabi/issues/4110) for further discussion. +There is an issue [here](https://github.com/WalletWasabi/WalletWasabi/issues/4110) for further discussion. With the following method you can check the differences by yourself: diff --git a/WalletWasabi.Documentation/Guides/HardwareWalletIntegration.md b/WalletWasabi.Documentation/Guides/HardwareWalletIntegration.md index 2fa26062761..a4e7c7ee045 100644 --- a/WalletWasabi.Documentation/Guides/HardwareWalletIntegration.md +++ b/WalletWasabi.Documentation/Guides/HardwareWalletIntegration.md @@ -15,10 +15,10 @@ Wasabi's main priorities regarding hardware wallets: 1. Integrate your hardware wallet into [HWI](https://github.com/bitcoin-core/HWI). 2. Add some tests into HWI, so compatibility issues can be caught at the early stages. 3. Test the compatibility with Wasabi. Import, Receive, Send, and Recover. -4. Write some [Kata tests](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Tests/AcceptanceTests/HwiKatas.cs) (manual tests), that can be used to detect compatibility issues when: Wasabi release, new firmware, etc. +4. Write some [Kata tests](https://github.com/WalletWasabi/WalletWasabi/blob/master/WalletWasabi.Tests/AcceptanceTests/HwiKatas.cs) (manual tests), that can be used to detect compatibility issues when: Wasabi release, new firmware, etc. 5. Send at least one device (preferably two devices) to Wasabi HQ. To do so, contact us at `info@zksnacks.com`. 6. Wasabi team tests the device using the Kata tests and approves. 7. Create some content on how to use the device with our software, possibly in [the Wasabi documentation](https://github.com/zkSNACKs/WasabiDoc/blob/master/docs/using-wasabi/ColdWasabi.md). 8. Create a guide on how to initialize the device in offline mode - if possible. There should be a method to init the device without sharing the xpub. 9. During an initial testing period of at least half a year, Wasabi will unofficially support the hardware wallet - meaning that it is working but nothing is guaranteed. -10. After a half-year grace period without compatibility problems or breaking changes, Wasabi will officially support this hardware wallet, meaning that Wasabi will give guidance related to the device and announce the [support of the device](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Documentation/WasabiCompatibility.md). +10. After a half-year grace period without compatibility problems or breaking changes, Wasabi will officially support this hardware wallet, meaning that Wasabi will give guidance related to the device and announce the [support of the device](https://github.com/WalletWasabi/WalletWasabi/blob/master/WalletWasabi.Documentation/WasabiCompatibility.md). diff --git a/WalletWasabi.Documentation/Guides/HowToDebug.md b/WalletWasabi.Documentation/Guides/HowToDebug.md index ea6416daedf..b18b2ada081 100644 --- a/WalletWasabi.Documentation/Guides/HowToDebug.md +++ b/WalletWasabi.Documentation/Guides/HowToDebug.md @@ -4,7 +4,7 @@ This guide is for giving detailed instructions about how to debug Wasabi Wallet We will focus on how to achieve this with `vscode` first because that is the cross-platform IDE used by some of the developer team members. ## Before Starting -We assume the reader has already read the project [README](https://github.com/zkSNACKs/WalletWasabi/blob/master/README.md) file and has installed the [.NET 8.0 SDK](https://dotnet.microsoft.com/download), and knows how to clone the repository and build the Wasabi solution. +We assume the reader has already read the project [README](https://github.com/WalletWasabi/WalletWasabi/blob/master/README.md) file and has installed the [.NET 8.0 SDK](https://dotnet.microsoft.com/download), and knows how to clone the repository and build the Wasabi solution. ## Install VS Code and C# extension diff --git a/WalletWasabi.Documentation/Guides/MacOsSigning.md b/WalletWasabi.Documentation/Guides/MacOsSigning.md index 099dca95293..58c19fa2f2e 100644 --- a/WalletWasabi.Documentation/Guides/MacOsSigning.md +++ b/WalletWasabi.Documentation/Guides/MacOsSigning.md @@ -35,9 +35,9 @@ ## Source -- https://github.com/zkSNACKs/WalletWasabi/pull/2886 +- https://github.com/WalletWasabi/WalletWasabi/pull/2886 - https://github.com/btcpayserver/BTCPayServer.Vault/blob/master/Build/travis/applesign.sh -- https://github.com/zkSNACKs/WalletWasabi/pull/928/commits/e38ed672dee25f6e45a3eb16584887cc6d48c4e6#diff-fcfcbe3692989568120c615d76ece2b2 +- https://github.com/WalletWasabi/WalletWasabi/pull/928/commits/e38ed672dee25f6e45a3eb16584887cc6d48c4e6#diff-fcfcbe3692989568120c615d76ece2b2 - https://developer.apple.com/library/archive/technotes/tn2206/_index.html - https://developer.apple.com/developer-id/ @@ -49,7 +49,7 @@ - 1024x1024 size - 98px padding - BoxShadow params: x:0, y:5, Blur:25, Spread:0, Color:000000, Transparency:50% -- https://github.com/zkSNACKs/WalletWasabi/issues/2951 +- https://github.com/WalletWasabi/WalletWasabi/issues/2951 ## Changing the background of dmg installer diff --git a/WalletWasabi.Documentation/HowToDeploy.md b/WalletWasabi.Documentation/HowToDeploy.md index 3e4aa3e94fb..123da7f15d8 100644 --- a/WalletWasabi.Documentation/HowToDeploy.md +++ b/WalletWasabi.Documentation/HowToDeploy.md @@ -24,7 +24,7 @@ Hello there, we are deploying this commit to the `TestNet` server. - Latest commit on backend: 167c81be80d8d3de9deaf8d306017c5403593c89 - Planning to deploy to backend: 460e21ce71738d3cc1560a3d4fc1984cc4beb725 -- PRs with affiliate label: https://github.com/zkSNACKs/WalletWasabi/pulls?q=is%3Apr+is%3Aclosed+label%3Aaffiliate +- PRs with affiliate label: https://github.com/WalletWasabi/WalletWasabi/pulls?q=is%3Apr+is%3Aclosed+label%3Aaffiliate Please ack and test. @@ -38,7 +38,7 @@ This script builds wasabi backend and it is defined as follow: ```bash $ echo "#!/usr/bin/env bash" > build-wasabi -$ echo "nix build -o wasabi-backend github:zksnacks/walletwasabi/\$1" >> build-wasabi +$ echo "nix build -o wasabi-backend github:walletwasabi/walletwasabi/\$1" >> build-wasabi ``` ### deploy-wasabi script diff --git a/WalletWasabi.Documentation/WasabiSetupRegtest.md b/WalletWasabi.Documentation/WasabiSetupRegtest.md index 75b6187e012..b93212e7f7b 100644 --- a/WalletWasabi.Documentation/WasabiSetupRegtest.md +++ b/WalletWasabi.Documentation/WasabiSetupRegtest.md @@ -73,7 +73,7 @@ You can force rebuilding the txindex with the `-reindex` command line argument. ## Setup Wasabi Backend -Here you will have to build from source, follow [these instructions here](https://github.com/zkSNACKs/WalletWasabi#build-from-source-code). +Here you will have to build from source, follow [these instructions here](https://github.com/WalletWasabi/WalletWasabi#build-from-source-code). Todo: 1. Go to `WalletWasabi\WalletWasabi.Backend` folder. diff --git a/WalletWasabi.Documentation/WasabikaCodex.md b/WalletWasabi.Documentation/WasabikaCodex.md index f0980de88d9..682883dd522 100644 --- a/WalletWasabi.Documentation/WasabikaCodex.md +++ b/WalletWasabi.Documentation/WasabikaCodex.md @@ -1,13 +1,13 @@ ## Daily routine 1. Check with your team leader about tasks. -2. Check [open code review requests waiting for you](https://github.com/zkSNACKs/WalletWasabi/pulls/review-requested/@me). -3. Check [open priority issues and PRs](https://github.com/zkSNACKs/WalletWasabi/labels/priority). Take it or set Assignees and Labels if you can. -4. Check your [open PRs](https://github.com/zkSNACKs/WalletWasabi/pulls/@me) and answer if necessary. +2. Check [open code review requests waiting for you](https://github.com/WalletWasabi/WalletWasabi/pulls/review-requested/@me). +3. Check [open priority issues and PRs](https://github.com/WalletWasabi/WalletWasabi/labels/priority). Take it or set Assignees and Labels if you can. +4. Check your [open PRs](https://github.com/WalletWasabi/WalletWasabi/pulls/@me) and answer if necessary. - If you need help use __@mention__. - If you need review set __Reviewers__. -5. Check [open issues assigned to you](https://github.com/zkSNACKs/WalletWasabi/issues/assigned/@me). -6. Check [open issues and PRs where you are mentioned](https://github.com/zkSNACKs/WalletWasabi/issues?utf8=%E2%9C%93&q=is%3Aopen+mentions%3A%40me+). +5. Check [open issues assigned to you](https://github.com/WalletWasabi/WalletWasabi/issues/assigned/@me). +6. Check [open issues and PRs where you are mentioned](https://github.com/WalletWasabi/WalletWasabi/issues?utf8=%E2%9C%93&q=is%3Aopen+mentions%3A%40me+). 7. Check the [notifications](https://github.com/notifications). 8. Work on anything you want - assign it to yourself. @@ -59,7 +59,7 @@ __Fact__: code review is one of the few scientifically proven code improvement t - Copy the link - Open Git Bash. - Change the current working directory to the location where you want the cloned directory. -- Type git clone, and then paste the URL you copied earlier. Example: "git clone https://github.com/zkSNACKs/WalletWasabi.git" +- Type git clone, and then paste the URL you copied earlier. Example: "git clone https://github.com/WalletWasabi/WalletWasabi.git" - Press Enter. Your local clone will be created. - Further reading about this approach or if you get stuck, please read this https://docs.github.com/en/get-started/quickstart/fork-a-repo (or ask the devs) @@ -131,7 +131,7 @@ Developers work with many branches at the same time because during any single da First clone your existing repository as a bare repo (a repository without files) and do it in a `.git` directory. ``` -$ git clone --bare git@github.com:zkSNACKs/WalletWasabi.git .git +$ git clone --bare git@github.com:WalletWasabi/WalletWasabi.git .git ``` ## Working with remote repositories diff --git a/WalletWasabi.Fluent.Desktop/WalletWasabi.Fluent.Desktop.csproj b/WalletWasabi.Fluent.Desktop/WalletWasabi.Fluent.Desktop.csproj index 26243293883..34cac59b0b1 100644 --- a/WalletWasabi.Fluent.Desktop/WalletWasabi.Fluent.Desktop.csproj +++ b/WalletWasabi.Fluent.Desktop/WalletWasabi.Fluent.Desktop.csproj @@ -29,10 +29,10 @@ Wasabi Wallet Fluent Wasabi Wallet bitcoin-wallet;privacy;bitcoin;dotnet;nbitcoin;cross-platform;zerolink;wallet;wabisabi;coinjoin;tor - https://github.com/zkSNACKs/WalletWasabi/ - https://github.com/zkSNACKs/WalletWasabi/blob/master/LICENSE.md + https://github.com/WalletWasabi/WalletWasabi/ + https://github.com/WalletWasabi/WalletWasabi/blob/master/LICENSE.md git - https://github.com/zkSNACKs/WalletWasabi/ + https://github.com/WalletWasabi/WalletWasabi/ Assets\WasabiLogo.ico Assets\WasabiLogo.ico Wasabi Wallet Fluent diff --git a/WalletWasabi.Fluent.Generators/Analyzers/UIContextUsageInConstructorAnalyzer.cs b/WalletWasabi.Fluent.Generators/Analyzers/UIContextUsageInConstructorAnalyzer.cs index ec1af41078b..8e3b58ffee1 100644 --- a/WalletWasabi.Fluent.Generators/Analyzers/UIContextUsageInConstructorAnalyzer.cs +++ b/WalletWasabi.Fluent.Generators/Analyzers/UIContextUsageInConstructorAnalyzer.cs @@ -23,7 +23,7 @@ public class UiContextAnalyzer : DiagnosticAnalyzer internal static readonly DiagnosticDescriptor Rule1 = new("WW001", "Do not use UiContext or Navigation APIs in ViewModel Constructor", - "UiContext cannot be referenced in a ViewModel's constructor because it hasn't been initialized yet when constructor runs. Use OnNavigatedTo() or OnActivated() instead. Alternatively, make the constructor public and explicitly initialize UiContext. See https://github.com/zkSNACKs/WalletWasabi/blob/master/CONTRIBUTING.md#source-generated-viewmodel-constructors for details.", + "UiContext cannot be referenced in a ViewModel's constructor because it hasn't been initialized yet when constructor runs. Use OnNavigatedTo() or OnActivated() instead. Alternatively, make the constructor public and explicitly initialize UiContext. See https://github.com/WalletWasabi/WalletWasabi/blob/master/CONTRIBUTING.md#source-generated-viewmodel-constructors for details.", "Wasabi Wallet", DiagnosticSeverity.Error, true); diff --git a/WalletWasabi.Fluent/App.axaml b/WalletWasabi.Fluent/App.axaml index bf45cf7af8e..6e42710d361 100644 --- a/WalletWasabi.Fluent/App.axaml +++ b/WalletWasabi.Fluent/App.axaml @@ -40,7 +40,7 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WalletWasabi.Fluent/Extensions/ObservableExtensions.cs b/WalletWasabi.Fluent/Extensions/ObservableExtensions.cs index fb1914a8292..47c19814276 100644 --- a/WalletWasabi.Fluent/Extensions/ObservableExtensions.cs +++ b/WalletWasabi.Fluent/Extensions/ObservableExtensions.cs @@ -108,11 +108,11 @@ public static IObservable ReplayLastActive(this IObservable observable) public static IObservable<(T1, T2, T3)> Flatten(this IObservable<((T1, T2), T3)> source) => source.Select(t => (t.Item1.Item1, t.Item1.Item2, t.Item2)); - public static IObservableCache Fetch(this IObservable signal, Func> source, Func keySelector) + public static IObservableCache Fetch(this IObservable signal, Func> source, Func keySelector, IEqualityComparer equalityComparer) where TKey : notnull where TObject : notnull { return signal.Select(_ => source()) - .EditDiff(keySelector) + .EditDiff(keySelector, equalityComparer) .DisposeMany() .AsObservableCache(); } diff --git a/WalletWasabi.Fluent/Helpers/LambdaComparer.cs b/WalletWasabi.Fluent/Helpers/LambdaComparer.cs new file mode 100644 index 00000000000..d9a272754b3 --- /dev/null +++ b/WalletWasabi.Fluent/Helpers/LambdaComparer.cs @@ -0,0 +1,31 @@ +namespace WalletWasabi.Fluent.Helpers; + +using System; +using System.Collections.Generic; + + public class LambdaComparer : IEqualityComparer + { + private readonly Func _lambdaComparer; + private readonly Func _lambdaHash; + + public LambdaComparer(Func lambdaComparer) : + this(lambdaComparer, _ => 0) + { + } + + public LambdaComparer(Func lambdaComparer, Func lambdaHash) + { + _lambdaComparer = lambdaComparer ?? throw new ArgumentNullException("lambdaComparer"); + _lambdaHash = lambdaHash ?? throw new ArgumentNullException("lambdaHash"); + } + + public bool Equals(T? x, T? y) + { + return _lambdaComparer(x, y); + } + + public int GetHashCode(T obj) + { + return _lambdaHash(obj); + } + } diff --git a/WalletWasabi.Fluent/Helpers/MacOsStartupHelper.cs b/WalletWasabi.Fluent/Helpers/MacOsStartupHelper.cs index 5aba8845ca5..9b5bcc3acf8 100644 --- a/WalletWasabi.Fluent/Helpers/MacOsStartupHelper.cs +++ b/WalletWasabi.Fluent/Helpers/MacOsStartupHelper.cs @@ -63,7 +63,7 @@ public static async Task AddOrRemoveStartupItemAsync(bool runOnSystemStartup) private static async Task DeleteLoginItemIfExistsAsync() { // From 2.0.6, we use LaunchAgents instead of Login Items to run Wasabi hidden during startup. We need to delete older existing Login Items. - // https://github.com/zkSNACKs/WalletWasabi/pull/12772#pullrequestreview-1984574457 + // https://github.com/WalletWasabi/WalletWasabi/pull/12772#pullrequestreview-1984574457 string result = await EnvironmentHelpers.ShellExecAndGetResultAsync(ListCmd).ConfigureAwait(false); bool loginItemExists = result.Contains(Constants.AppName); if (loginItemExists) diff --git a/WalletWasabi.Fluent/Icons/Icons.axaml b/WalletWasabi.Fluent/Icons/Icons.axaml index 7ea80a7abe2..251038f3ea4 100644 --- a/WalletWasabi.Fluent/Icons/Icons.axaml +++ b/WalletWasabi.Fluent/Icons/Icons.axaml @@ -81,6 +81,8 @@ + + diff --git a/WalletWasabi.Fluent/Styles/SettingsLayout.axaml b/WalletWasabi.Fluent/Styles/SettingsLayout.axaml index a2949265652..ddb9977cf58 100644 --- a/WalletWasabi.Fluent/Styles/SettingsLayout.axaml +++ b/WalletWasabi.Fluent/Styles/SettingsLayout.axaml @@ -19,6 +19,10 @@ + + - - - - - - diff --git a/WalletWasabi.Fluent/Styles/ToggleSwitch.axaml b/WalletWasabi.Fluent/Styles/ToggleSwitch.axaml index 91cdd10989b..b7e1434ff87 100644 --- a/WalletWasabi.Fluent/Styles/ToggleSwitch.axaml +++ b/WalletWasabi.Fluent/Styles/ToggleSwitch.axaml @@ -22,7 +22,7 @@ - + + + + diff --git a/WalletWasabi.Fluent/Views/Wallets/Home/History/Columns/IndicatorsColumnView.axaml b/WalletWasabi.Fluent/Views/Wallets/Home/History/Columns/IndicatorsColumnView.axaml index bb1c47aead9..557edbc0f84 100644 --- a/WalletWasabi.Fluent/Views/Wallets/Home/History/Columns/IndicatorsColumnView.axaml +++ b/WalletWasabi.Fluent/Views/Wallets/Home/History/Columns/IndicatorsColumnView.axaml @@ -14,7 +14,6 @@ @@ -26,10 +25,6 @@ - @@ -47,11 +42,11 @@ + Classes.CPFP="{Binding Transaction.Type, ConverterParameter={x:Static model:TransactionType.CPFP}, Converter={x:Static converters:EnumToBoolConverter.Instance}}" + Classes.SelfTransfer="{Binding Transaction.Type, ConverterParameter={x:Static model:TransactionType.SelfTransferTransaction}, Converter={x:Static converters:EnumToBoolConverter.Instance}}"> diff --git a/WalletWasabi.Fluent/Views/Wallets/Home/History/HistoryTable.axaml b/WalletWasabi.Fluent/Views/Wallets/Home/History/HistoryTable.axaml index f54f4e35a01..cf18e365254 100644 --- a/WalletWasabi.Fluent/Views/Wallets/Home/History/HistoryTable.axaml +++ b/WalletWasabi.Fluent/Views/Wallets/Home/History/HistoryTable.axaml @@ -38,10 +38,21 @@ - - + + + + + + - diff --git a/WalletWasabi.Packager/ArgsProcessor.cs b/WalletWasabi.Packager/ArgsProcessor.cs index 83314550887..f4886ba9b0b 100644 --- a/WalletWasabi.Packager/ArgsProcessor.cs +++ b/WalletWasabi.Packager/ArgsProcessor.cs @@ -15,7 +15,7 @@ public ArgsProcessor(string[] args) public string[] Args { get; } /// Builds Wasabi Wallet binaries for supported platforms to be compared then with the official binaries, and terminates. - /// + /// public bool IsOnlyBinariesMode() => IsOneOf("onlybinaries") || Args is null || Args.Length == 0; public bool IsContinuousDeliveryMode() => IsOneOf("cdelivery"); diff --git a/WalletWasabi.Packager/Program.cs b/WalletWasabi.Packager/Program.cs index 534426371aa..5998f21ca2f 100644 --- a/WalletWasabi.Packager/Program.cs +++ b/WalletWasabi.Packager/Program.cs @@ -20,7 +20,7 @@ namespace WalletWasabi.Packager; /// Build WIX project with Release and x64 configuration. /// Sign with Packager, set restore true so the password won't be kept. /// -/// +/// /// public static class Program { @@ -463,8 +463,8 @@ private static async Task PublishAsync() $"Maintainer: zkSNACKs Ltd \n" + $"Version: {VersionPrefix}\n" + $"Homepage: https://wasabiwallet.io\n" + - $"Vcs-Git: git://github.com/zkSNACKs/WalletWasabi.git\n" + - $"Vcs-Browser: https://github.com/zkSNACKs/WalletWasabi\n" + + $"Vcs-Git: git://github.com/WalletWasabi/WalletWasabi.git\n" + + $"Vcs-Browser: https://github.com/WalletWasabi/WalletWasabi\n" + $"Architecture: amd64\n" + $"License: Open Source (MIT)\n" + $"Installed-Size: {installedSizeKb}\n" + diff --git a/WalletWasabi.Tests/RegressionTests/SendSpeedupTests.cs b/WalletWasabi.Tests/RegressionTests/SendSpeedupTests.cs index 7f9ba15bcf4..d1569fc23f0 100644 --- a/WalletWasabi.Tests/RegressionTests/SendSpeedupTests.cs +++ b/WalletWasabi.Tests/RegressionTests/SendSpeedupTests.cs @@ -463,7 +463,7 @@ public async Task SendSpeedupTestsAsync() #region MarnixFoundBug - // https://github.com/zkSNACKs/WalletWasabi/pull/10976#pullrequestreview-1542077218 + // https://github.com/WalletWasabi/WalletWasabi/pull/10976#pullrequestreview-1542077218 // I speed up a tx which has change, but the additional fee was deducted from the original send amount not from the change utxo? // https://mempool.space/testnet/tx/b0de46a002e6487dac3a3a98841380d4ced7e4e8482217b2758dd53df0760af8 // I sent the 0.0004 diff --git a/WalletWasabi.Tests/UnitTests/BlockchainAnalysis/CoinJoinAnonscoreTests.cs b/WalletWasabi.Tests/UnitTests/BlockchainAnalysis/CoinJoinAnonscoreTests.cs index 87713bed8aa..cafedc0f776 100644 --- a/WalletWasabi.Tests/UnitTests/BlockchainAnalysis/CoinJoinAnonscoreTests.cs +++ b/WalletWasabi.Tests/UnitTests/BlockchainAnalysis/CoinJoinAnonscoreTests.cs @@ -317,7 +317,7 @@ public void InputMergeSmallUniqueDenom() [Fact] public void InputMergeLargeUniqueDenom() { - // Input merging and large unique denomination in WW2 results in maximum anonymity punishment in relation to the largest inputs: https://github.com/zkSNACKs/WalletWasabi/pull/10699/ + // Input merging and large unique denomination in WW2 results in maximum anonymity punishment in relation to the largest inputs: https://github.com/WalletWasabi/WalletWasabi/pull/10699/ var analyzer = new BlockchainAnalyzer(); var ownInputs = new[] { (Money.Coins(1.1m), 100), (Money.Coins(2.2m), 1) }; @@ -347,7 +347,7 @@ public void InputMergeLargeUniqueDenom() [Fact] public void InputMergeLargeUniqueDenomReasonablePunishment() { - // Input merging and large unique denomination in WW2 results in maximum anonymity punishment in relation to the largest inputs: https://github.com/zkSNACKs/WalletWasabi/pull/10699/ + // Input merging and large unique denomination in WW2 results in maximum anonymity punishment in relation to the largest inputs: https://github.com/WalletWasabi/WalletWasabi/pull/10699/ var analyzer = new BlockchainAnalyzer(); var ownInputs = new[] { (Money.Coins(1.1m), 1), (Money.Coins(55m), 100), (Money.Coins(45m), 3) }; @@ -376,7 +376,7 @@ public void InputMergeLargeUniqueDenomReasonablePunishment() [Fact] public void InputMergeLargeUniqueDenomsReasonablePunishment() { - // Input merging and large unique denominations in WW2 results in maximum anonymity punishment in relation to the largest inputs: https://github.com/zkSNACKs/WalletWasabi/pull/10699/ + // Input merging and large unique denominations in WW2 results in maximum anonymity punishment in relation to the largest inputs: https://github.com/WalletWasabi/WalletWasabi/pull/10699/ var analyzer = new BlockchainAnalyzer(); var ownInputs = new[] { (Money.Coins(1.1m), 1), (Money.Coins(55m), 100), (Money.Coins(45m), 3) }; diff --git a/WalletWasabi.Tests/UnitTests/BlockchainAnalysis/PubKeyReuseAnonScoreTests.cs b/WalletWasabi.Tests/UnitTests/BlockchainAnalysis/PubKeyReuseAnonScoreTests.cs index 171c54f21c4..d865788da6c 100644 --- a/WalletWasabi.Tests/UnitTests/BlockchainAnalysis/PubKeyReuseAnonScoreTests.cs +++ b/WalletWasabi.Tests/UnitTests/BlockchainAnalysis/PubKeyReuseAnonScoreTests.cs @@ -223,7 +223,7 @@ public void OutputSideAddressReuseDoesntPunishedMoreThanInheritance() public void OutputSideAddressReuseBySomeoneElse() { // If there's reuse in output side by another participant, then we should not gain anonsets by them. - // https://github.com/zkSNACKs/WalletWasabi/pull/4724/commits/6f5893ca57e35eadb6e20f164bdf0696bb14eea1#r530847724 + // https://github.com/WalletWasabi/WalletWasabi/pull/4724/commits/6f5893ca57e35eadb6e20f164bdf0696bb14eea1#r530847724 var analyser = new BlockchainAnalyzer(); var km = ServiceFactory.CreateKeyManager(); var equalOutputAmount = Money.Coins(1m); diff --git a/WalletWasabi.Tests/UnitTests/Transactions/SmartTransactionTests.cs b/WalletWasabi.Tests/UnitTests/Transactions/SmartTransactionTests.cs index 6c654ab87c2..e2a0fb24dfb 100644 --- a/WalletWasabi.Tests/UnitTests/Transactions/SmartTransactionTests.cs +++ b/WalletWasabi.Tests/UnitTests/Transactions/SmartTransactionTests.cs @@ -38,7 +38,7 @@ public void SmartTransactionEquality() [Fact] public void UpdatesWitness() { - // https://github.com/zkSNACKs/WalletWasabi/issues/11119 + // https://github.com/WalletWasabi/WalletWasabi/issues/11119 var tx = Transaction.Parse("010000000a99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50300000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50a00000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50100000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50800000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50200000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50b00000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50500000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50600000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50000000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50700000000fdffffff018457490200000000160014d5cc08088173e783758a6df6300543e81c04cc6500000000", Network.TestNet); var tx2 = Transaction.Parse("0100000000010a99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50300000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50a00000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50100000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50800000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50200000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50b00000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50500000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50600000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50000000000fdffffff99799a67b8d078b4f80f846ad3d18076aff67deff0b7232687ab7031daa502f50700000000fdffffff018457490200000000160014d5cc08088173e783758a6df6300543e81c04cc650247304402202bb069de5b9cfeb9a499841e0d4e1e809c2705910b9263560f72082b577aa5d80220371d97a606acf08f3b40ca7165c3c5c28d4dfdc283ad836638a207bf9a6929ca012103640d3f27cddbebac7a95c0bd3ae5b79789eb3094cc0a1743311c57715bd4392f0247304402203bce78c096d73884f3fbb77106065ec131d13d13cdd0e8547f9e9e6ef41fbb7a02205cb1dc419cec476990d3d2bc1d65898cf7aeac4993460a4c9e7e39b77f81ec08012102f3648e1baa2d3751f5c38450cfbec3c52ef3aff5e8c299d8e722b7c7a947c6750247304402200ae21c381a19a91717bfde9cb58668ce0c8c726d1428ccaba4413137db0cd1a202204698336d77cfe1e2314578bc726c4fea2319ee00f242f583b252f966d253a04301210243d9c95ed1c925d4467157f02132909e801e15fb5e1594dcd73d0452252aace10247304402202ca9c06c9b525fcd6545120a07c148720221593794900c5ec78fba4ca28fb46c02200413e687d2efa56d92ba4c75a0ef31de1f12f4fb9eb691f0c01c2ab8377041ef012103779c2734e11536f9cbf1583858d354cabb4b95ebca05014d101ce7fa4c349edf0247304402203edc440926a5571d3fb29a6190965d8fcc9b817776d81315e67d921f0301d84502206d1dba20353da9f0a61e2d884ab303567aceae4ddcfe7fd60d92231dde4d80dd012102deff1f680e2f02c09c7f78a3cfc9963e042c335a7c91213d5b9f4d5b243207f2024730440220010fa484b4cb63491ba9f655af3976e5ea5babf203bb4f289d518b7ec796cc400220181b84053f99228f719b86449b2a6a8004abef2a179e6a6eb8831864f27de073012103e2dc60fe77ede5c7cf08b2a421528dfcfc14170052c2762a7290f33e37cfac7d0247304402205e68de9ea662b529d8f7a575371c3fd63b3203ae0c56c3480b0ec257fa88ae1a02206822582e5b38210307fba558a9ce1b5ce4c87ac879bfe4fa14c5f993bf09830f012103e7b8cbb1f16e9e07839bc43c5154beb02e4e0125a740038830bba874fe558e460247304402204a6f3d31c4829f0821e3702e3c938b71a0bf7e30b83e96003bae4542ae65bd0902204c2dbf0ee0c46e4f9d77f00fd65a0b0be40a6159b3af89bec066e05b79f4f4d4012103e2a6d202c909c014f9447b08592635d2a496bfcf56f598e9a11a0b8561c5932102473044022023cbfd8eb7688c989f771a3f30de5621907471f42d3b65cbfc57288e9c226b4c02207a087696f13eb6f2ab76898921bfc69a3235c486c9fec8c4bea83e5f22c17323012102bd66f8e83b1914a19f8ab13f2521ede30da86a44164c6617d350873c7419d54f024730440220016b39506020426143a7a22509322b37360813b265c1f7918c26dd580402b5ca02205e81ba6e578d59b0569735a2a29c35ea7f476de8bd8f1872ced63edbf4990d5e01210309cb71a5ca90991346cdd5cdac6df1b63084da66e17aaa98a85d485babc6302c00000000", Network.Main); var height = Height.Mempool; diff --git a/WalletWasabi.Tests/UnitTests/Transactions/TransactionProcessorTests.cs b/WalletWasabi.Tests/UnitTests/Transactions/TransactionProcessorTests.cs index 76fec3578ac..49fd403b919 100644 --- a/WalletWasabi.Tests/UnitTests/Transactions/TransactionProcessorTests.cs +++ b/WalletWasabi.Tests/UnitTests/Transactions/TransactionProcessorTests.cs @@ -1416,7 +1416,7 @@ public async Task GetPocketsAsync() Assert.Equal(2, pockets.Single(x => x.Labels == CoinPocketHelper.PrivateFundsText).Coins.Count()); } - // Repro of issue 11101 https://github.com/zkSNACKs/WalletWasabi/issues/11101 + // Repro of issue 11101 https://github.com/WalletWasabi/WalletWasabi/issues/11101 [Fact] public async Task GetPocketsShouldReturnExpectedPocketListAsync() { diff --git a/WalletWasabi.WindowsInstaller/Product.wxs b/WalletWasabi.WindowsInstaller/Product.wxs index bb691ab59c2..f3759f98c7c 100644 --- a/WalletWasabi.WindowsInstaller/Product.wxs +++ b/WalletWasabi.WindowsInstaller/Product.wxs @@ -39,9 +39,9 @@ !(loc.Description) - https://github.com/zkSNACKs/WalletWasabi/discussions/5185 + https://github.com/WalletWasabi/WalletWasabi/discussions/5185 - https://github.com/zkSNACKs/WalletWasabi/ + https://github.com/WalletWasabi/WalletWasabi/ icon.ico diff --git a/WalletWasabi/BitcoinCore/CoreNode.cs b/WalletWasabi/BitcoinCore/CoreNode.cs index 5ecef4d5b17..ca84f2a3292 100644 --- a/WalletWasabi/BitcoinCore/CoreNode.cs +++ b/WalletWasabi/BitcoinCore/CoreNode.cs @@ -130,7 +130,7 @@ public static async Task CreateAsync(CoreNodeParams coreNodeParams, Ca { $"{configPrefix}.server = 1", $"{configPrefix}.listen = 1", - $"{configPrefix}.daemon = 0", // https://github.com/zkSNACKs/WalletWasabi/issues/3588 + $"{configPrefix}.daemon = 0", // https://github.com/WalletWasabi/WalletWasabi/issues/3588 $"{configPrefix}.whitebind = {whiteBindPermissionsPart}{coreNode.P2pEndPoint.ToString(coreNode.Network.DefaultPort)}", $"{configPrefix}.rpcbind = {rpcBindParameter}", $"{configPrefix}.rpcallowip = {IPAddress.Loopback}", diff --git a/WalletWasabi/BitcoinP2p/P2pNetwork.cs b/WalletWasabi/BitcoinP2p/P2pNetwork.cs index 4809fef4b28..f50ed29ca7c 100644 --- a/WalletWasabi/BitcoinP2p/P2pNetwork.cs +++ b/WalletWasabi/BitcoinP2p/P2pNetwork.cs @@ -68,10 +68,10 @@ public P2pNetwork(Network network, EndPoint fullNodeP2pEndPoint, EndPoint? torSo } catch (Exception ex) when (ex is OverflowException || ex is FormatException || ex is ArgumentException || ex is EndOfStreamException) { - // https://github.com/zkSNACKs/WalletWasabi/issues/712 - // https://github.com/zkSNACKs/WalletWasabi/issues/880 + // https://github.com/WalletWasabi/WalletWasabi/issues/712 + // https://github.com/WalletWasabi/WalletWasabi/issues/880 // https://www.reddit.com/r/WasabiWallet/comments/qt0mgz/crashing_on_open/ - // https://github.com/zkSNACKs/WalletWasabi/issues/5255 + // https://github.com/WalletWasabi/WalletWasabi/issues/5255 Logger.LogInfo($"{nameof(AddressManager)} has thrown `{ex.GetType().Name}`. Attempting to autocorrect."); File.Delete(AddressManagerFilePath); Logger.LogTrace(ex); diff --git a/WalletWasabi/Blockchain/Analysis/BlockchainAnalyzer.cs b/WalletWasabi/Blockchain/Analysis/BlockchainAnalyzer.cs index 9d7c88338ea..10cdd6d89b7 100644 --- a/WalletWasabi/Blockchain/Analysis/BlockchainAnalyzer.cs +++ b/WalletWasabi/Blockchain/Analysis/BlockchainAnalyzer.cs @@ -372,7 +372,7 @@ public static void SetIsSufficientlyDistancedFromExternalKeys(SmartTransaction t /// /// Sets output's IsSufficientlyDistancedFromExternalKeys property to false if external, or the tx inputs are all external. /// - /// Context: https://github.com/zkSNACKs/WalletWasabi/issues/10567 + /// Context: https://github.com/WalletWasabi/WalletWasabi/issues/10567 public static void SetIsSufficientlyDistancedFromExternalKeys(SmartCoin output) { if (output.Transaction.WalletInputs.Count == 0) diff --git a/WalletWasabi/Blockchain/TransactionOutputs/ISmartCoin.cs b/WalletWasabi/Blockchain/TransactionOutputs/ISmartCoin.cs index b3be7f37c0f..9c9fabc59db 100644 --- a/WalletWasabi/Blockchain/TransactionOutputs/ISmartCoin.cs +++ b/WalletWasabi/Blockchain/TransactionOutputs/ISmartCoin.cs @@ -20,7 +20,7 @@ public interface ISmartCoin /// False if external, or the tx inputs are all external. /// - /// Context: https://github.com/zkSNACKs/WalletWasabi/issues/10567 + /// Context: https://github.com/WalletWasabi/WalletWasabi/issues/10567 /// If you're a lazy dev implementing this interface, you may just return constant true, because it does not make too much of a difference. /// bool IsSufficientlyDistancedFromExternalKeys { get; } diff --git a/WalletWasabi/Blockchain/TransactionOutputs/SmartCoin.cs b/WalletWasabi/Blockchain/TransactionOutputs/SmartCoin.cs index c673cbd24ba..2ae23b10d3c 100644 --- a/WalletWasabi/Blockchain/TransactionOutputs/SmartCoin.cs +++ b/WalletWasabi/Blockchain/TransactionOutputs/SmartCoin.cs @@ -133,7 +133,7 @@ public bool IsExcludedFromCoinJoin } /// False if external, or the tx inputs are all external. - /// Context: https://github.com/zkSNACKs/WalletWasabi/issues/10567 + /// Context: https://github.com/WalletWasabi/WalletWasabi/issues/10567 public bool IsSufficientlyDistancedFromExternalKeys { get; set; } = true; public bool RefreshAndGetIsBanned() diff --git a/WalletWasabi/Helpers/ImportWalletHelper.cs b/WalletWasabi/Helpers/ImportWalletHelper.cs index cde5eafcd1e..c9bfc90de9b 100644 --- a/WalletWasabi/Helpers/ImportWalletHelper.cs +++ b/WalletWasabi/Helpers/ImportWalletHelper.cs @@ -59,7 +59,7 @@ private static KeyManager GetKeyManagerByColdcardJson(WalletManager manager, JOb var mfpString = jsonWallet["MasterFingerprint"]?.ToString() ?? throw new ArgumentNullException($"Can't get KeyManager, MasterFingerprint was null."); - // https://github.com/zkSNACKs/WalletWasabi/pull/1663#issuecomment-508073066 + // https://github.com/WalletWasabi/WalletWasabi/pull/1663#issuecomment-508073066 // Coldcard 2.1.0 improperly implemented Wasabi skeleton fingerprint at first, so we must reverse byte order. // The solution was to add a ColdCardFirmwareVersion json field from 2.1.1 and correct the one generated by 2.1.0. // Coldcard has preview/developer firmware versions, which have a different firmware string format. diff --git a/WalletWasabi/Hwi/Parsers/HwiParser.cs b/WalletWasabi/Hwi/Parsers/HwiParser.cs index a457698f4ae..b1d1909d80d 100644 --- a/WalletWasabi/Hwi/Parsers/HwiParser.cs +++ b/WalletWasabi/Hwi/Parsers/HwiParser.cs @@ -314,7 +314,7 @@ public static Version ParseVersion(string hwiResponse) const string WinPrefix = "hwi.exe"; const string Prefix = "hwi"; - // Order matters! https://github.com/zkSNACKs/WalletWasabi/pull/1905/commits/cecefcc50af140cc06cb93961cda86f9b21db11b + // Order matters! https://github.com/WalletWasabi/WalletWasabi/pull/1905/commits/cecefcc50af140cc06cb93961cda86f9b21db11b string prefixToTrim; if (hwiResponse.StartsWith(WinPrefix)) { diff --git a/WalletWasabi/WabiSabi/Backend/Rounds/Arena.cs b/WalletWasabi/WabiSabi/Backend/Rounds/Arena.cs index f3e49cd16f1..c7ae41a4ec2 100644 --- a/WalletWasabi/WabiSabi/Backend/Rounds/Arena.cs +++ b/WalletWasabi/WabiSabi/Backend/Rounds/Arena.cs @@ -294,7 +294,7 @@ private void StepOutputRegistrationPhase() if (!allReady && phaseExpired) { // It would be better to end the round and create a blame round here, but older client would not support it. - // See https://github.com/zkSNACKs/WalletWasabi/pull/11028. + // See https://github.com/WalletWasabi/WalletWasabi/pull/11028. round.TransactionSigningTimeFrame = TimeFrame.Create(Config.FailFastTransactionSigningTimeout); round.FastSigningPhase = true; } diff --git a/WalletWasabi/WabiSabi/Backend/WabiSabiConfig.cs b/WalletWasabi/WabiSabi/Backend/WabiSabiConfig.cs index 673b048c623..d58e201b35e 100644 --- a/WalletWasabi/WabiSabi/Backend/WabiSabiConfig.cs +++ b/WalletWasabi/WabiSabi/Backend/WabiSabiConfig.cs @@ -295,7 +295,7 @@ private static ImmutableSortedSet GetScriptTypes(bool p2wpkh, bool p } // When adding new script types, please see - // https://github.com/zkSNACKs/WalletWasabi/issues/5440 + // https://github.com/WalletWasabi/WalletWasabi/issues/5440 return scriptTypes.ToImmutableSortedSet(); } diff --git a/WalletWasabi/WabiSabi/Client/CoinJoin/Client/CoinJoinClient.cs b/WalletWasabi/WabiSabi/Client/CoinJoin/Client/CoinJoinClient.cs index 403513b1445..5c39d200570 100644 --- a/WalletWasabi/WabiSabi/Client/CoinJoin/Client/CoinJoinClient.cs +++ b/WalletWasabi/WabiSabi/Client/CoinJoin/Client/CoinJoinClient.cs @@ -852,7 +852,7 @@ void OnOutputRegistrationErrors(DependencyGraphTaskScheduler.OutputRegistrationE // lying (it lied us before when it responded with 200 OK to the OutputRegistration requests or it is lying us // now when we identify as satoshi. // In this scenario we should ban the coordinator and stop dealing with it. - // see more: https://github.com/zkSNACKs/WalletWasabi/issues/8171 + // see more: https://github.com/WalletWasabi/WalletWasabi/issues/8171 bool mustSignAllInputs = SanityCheck(outputTxOuts, unsignedCoinJoin.Transaction.Outputs); if (!mustSignAllInputs) { diff --git a/WalletWasabi/Wallets/WalletFilterProcessor.cs b/WalletWasabi/Wallets/WalletFilterProcessor.cs index d55773cb96c..cd0c264ed58 100644 --- a/WalletWasabi/Wallets/WalletFilterProcessor.cs +++ b/WalletWasabi/Wallets/WalletFilterProcessor.cs @@ -22,7 +22,7 @@ namespace WalletWasabi.Wallets; /// /// Service that keeps processing block filters. /// -/// TurboSync specification. +/// TurboSync specification. public class WalletFilterProcessor : BackgroundService { /// Guarded by .