mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-17 05:41:29 +02:00
Avoids any confusion / potential trademark friction with HashWallet
(Spanish hardware-wallet company). Hash Bags is a more distinctive
name, harder to collide with, and we can still rank for 'hash wallet'
search via App Store / Play Store subtitle ('Hash Bags - A Wallet
for your Coins').
What changed (all user-visible strings):
- Launcher labels: android/app.properties, scripts/android/app_env.sh,
scripts/ios/app_env.sh, linux window title (CMakeLists +
my_application.cc)
- In-app text: lib/generated/i18n.dart + ARB sources under res/values/
- Brand docs: README.md, CONTRIBUTING.md, PRIVACY.md,
assets/text/Terms_of_Use.txt, assets/text/Release_Notes.txt
- hash.boats website: index.html, og-image.svg + regen og-image.png,
site.webmanifest, styles.css comment, splash/confirm/pulse/mark/
lockup svg titles, report/index.html, server/server.js
- CI workflow display names ("Hash Bags Linux build", etc.)
What did NOT change (deliberate):
- Bundle ID / Package: com.suchsoftware.hashwallet (immutable app
identity on App Store + Play Store — changing == orphaning the app)
- Binary name: hash_wallet (Linux executable)
- Dart import paths: package:hash_wallet/...
- Git repo: hash-wallet (Such-Software/hash-wallet)
- URL scheme: hashwallet:// (internal deep links)
- support@such.software (no domain change yet)
- App Store / Play Store listing names (whatever was registered there
stays; we updated launcher label only)
- hash.boats domain (still the wallet site)
Also kept the '#ash Wallet' wordplay in the nav but updated to
'#ash Bags' so the # mark still serves as the H. Nav reads:
[# mark] #ash Bags
Website hero tagline now matches the App Store sub-title concept:
'A wallet for your coins. Open-source, non-custodial, multi-chain.
Privacy-leaning by default.'
108 files modified, ~674 string replacements.
79 lines
4.5 KiB
Markdown
79 lines
4.5 KiB
Markdown
# Contributing to Hash Bags
|
|
|
|
Thanks for the interest. Before opening a PR, please read this.
|
|
|
|
## Project shape
|
|
|
|
Hash Bags is a **friendly fork** of [Cake Wallet](https://github.com/cake-tech/cake_wallet). We periodically merge upstream changes and try to keep our divergence narrow. Every change you propose should be evaluated through that lens: will this make future upstream syncs harder, and if so, is the value worth the cost?
|
|
|
|
## Branch model
|
|
|
|
- `dev` is the integration branch — open PRs against `dev`.
|
|
- `main` is reserved for tagged releases.
|
|
- We do not use long-lived feature branches. Iterate on `dev` directly via small focused PRs.
|
|
|
|
## Build environment
|
|
|
|
See the build section of [`README.md`](README.md). Flutter version is pinned (`.tool-versions` + `Dockerfile`). Don't use a newer Flutter SDK — Cake's `hive_generator` / `build_resolvers` deps fail on Dart 3.10+ because the `_macros` pseudo-package was removed.
|
|
|
|
If you use `mise` or `asdf`, the right Flutter version will activate automatically.
|
|
|
|
## Generated code
|
|
|
|
Several layers use code generation (MobX stores, Hive type adapters, JSON serializers, configure.dart-generated wallet entry points). Regenerate with:
|
|
|
|
```bash
|
|
dart pub run build_runner build --delete-conflicting-outputs
|
|
```
|
|
|
|
For the wallet-types and pubspec generation:
|
|
|
|
```bash
|
|
dart run tool/configure.dart --monero --wownero --bitcoin --bitcoinCash \
|
|
--ethereum --polygon --base --arbitrum --bsc --nano --dogecoin
|
|
```
|
|
|
|
(That's the canonical Hash Bags build flag set. Don't pass `--solana`, `--tron`, `--zano`, `--decred`, or `--zcash` — those packages were deleted.)
|
|
|
|
## Code style
|
|
|
|
- Match the surrounding style. We have not introduced new lints beyond Cake's.
|
|
- New observable state goes through MobX; persisted state through Hive.
|
|
- Don't add new top-level analytics. Hash Bags ships with no telemetry by design.
|
|
- Don't import `package:cw_zano/`, `package:cw_tron/`, `package:cw_solana/`, `package:cw_decred/` — those packages are deleted. The corresponding `WalletType.*` enum values still exist in `cw_core/lib/wallet_type.dart` for backwards-compat but are never instantiated.
|
|
- Avoid adding `cake_*`-prefixed file or symbol names in new code. Use `hash_wallet`-prefixed where the symbol is ours, and leave Cake-prefixed names alone where they're inherited (so upstream merges still apply cleanly).
|
|
|
|
## What we generally won't accept
|
|
|
|
- Re-enabling Solana, Tron, Zano, Decred, or Zcash. The fork exists in part to drop these — opening that door defeats the purpose.
|
|
- New buy/sell provider integrations that require routing through Cake's `exchange-helper.cakewallet.com` proxy. Direct provider APIs are fine if we can register Hash Bags / Such Software LLC as the partner.
|
|
- Lightning Network integration. Greenlight (and self-hosted alternatives) require running infrastructure we're not in a position to operate yet.
|
|
- Cake Pay re-enable. The infrastructure is Cake Labs's; we can't run it.
|
|
- New defaults that point at `cakewallet.com` hosts. We're moving away from depending on Cake's infrastructure — community nodes, our own proxies (`exchange-helper.such.software`, `prices.neroswap.com`), or both, are preferred.
|
|
- Anything that adds telemetry, push notifications via third-party SDKs, or remote bulletin services that the user can't audit.
|
|
|
|
## What we want
|
|
|
|
- Wownero polish (every paper cut counts — it's the reason this fork exists).
|
|
- Build reproducibility improvements (especially Docker / CI parity).
|
|
- Privacy-leaning defaults (own-node guidance, Tor/I2P integration improvements, fewer outbound calls).
|
|
- Wallet-core bug fixes — these we will happily upstream to Cake.
|
|
- Documentation, especially around the build pipeline and the Cake → Hash Bags diff.
|
|
|
|
## Reporting bugs
|
|
|
|
Open an issue at https://github.com/Such-Software/hash-wallet/issues. Please include:
|
|
|
|
- Build artifact ID (the CI workflow names the artifact by commit SHA).
|
|
- Platform + OS version.
|
|
- Terminal output if you built and ran from a terminal — many error popups don't print to stderr; check `<appDir>/error.txt` (typically `~/.config/hash_wallet/error.txt` on Linux).
|
|
- Whether the bug also reproduces in the latest Cake Wallet build (so we know whether it's a Cake-upstream bug or a Hash Bags regression).
|
|
|
|
## Security disclosures
|
|
|
|
See [`docs/SECURITY.md`](docs/SECURITY.md). Email `support@such.software` for anything sensitive; do not open a public issue for unpatched vulnerabilities.
|
|
|
|
## License
|
|
|
|
By contributing, you agree your contribution is licensed under the [MIT License](LICENSE.md), the same as the rest of Hash Bags.
|