Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
4c599e5
chore: enable release-please prerelease (rc) versioning
hhanh00 Aug 15, 2026
cf16454
chore(main): release zkool 6.28.0-rc (#1201)
hhanh00 Aug 15, 2026
af546aa
ci: run rust tests on PRs and pushes to main
hhanh00 Aug 15, 2026
ba6e0b7
refactor: pass memo explicitly to plugin process_memo
hhanh00 Aug 15, 2026
1bd7374
fix: decode trailing escaped spaces in OA1 records
hhanh00 Aug 15, 2026
252ab2e
fix: save settings on nav away; resolve voting config from form value
hhanh00 Aug 15, 2026
c9516db
fix: surface voting config resolve errors instead of swallowing them
hhanh00 Aug 15, 2026
04e5358
fix: persist ballot intents at cast time; parse option index
hhanh00 Aug 15, 2026
62ea708
chore: bump zcash_voting to async vote-tree transport rev
hhanh00 Aug 16, 2026
c1f3071
test: add unit tests for the coin voting module
hhanh00 Aug 16, 2026
73db966
feat: show voting power on voting confirmation and status pages
hhanh00 Aug 16, 2026
e1cecec
chore(main): release zkool 6.28.0-rc.1 (#1202)
hhanh00 Aug 16, 2026
83565d8
fix: bundle sapling params in desktop and graphql builds
hhanh00 Aug 16, 2026
13f2f31
fix: run fresh voting submissions end-to-end (delegate + vote)
hhanh00 Aug 16, 2026
76d231e
fix: use app lightwalletd URL for fresh delegation prepare
hhanh00 Aug 16, 2026
a81a4ff
fix: exclude post-snapshot notes from delegation prepare
hhanh00 Aug 16, 2026
8e2fcc5
fix: auto-create the voting hotkey at delegation time
hhanh00 Aug 16, 2026
eac4655
fix: make delegation confirmation real and recoverable
hhanh00 Aug 17, 2026
726f296
fix: use the async PIR client for delegation proving
hhanh00 Aug 17, 2026
5f9e2c8
feat: show friendly round titles and option labels in the voting UI
hhanh00 Aug 17, 2026
cb51c89
fix: run the PIR connect inside the prove thread
hhanh00 Aug 17, 2026
b22d304
fix: parse the chain's string block heights; prove with voting-circui…
hhanh00 Aug 17, 2026
bbf85e6
fix: cast one proposal at a time so the vote VAN chains
hhanh00 Aug 17, 2026
7417291
fix: fall back to the configured vote servers for helper shares
hhanh00 Aug 17, 2026
0b1b316
fix: honest done label when only time-scheduled steps remain
hhanh00 Aug 17, 2026
f7f6093
feat: show per-vote on-chain evidence on the done and confirmation sc…
hhanh00 Aug 17, 2026
158caa7
chore: pin dependency patches to pushed git revs
hhanh00 Aug 17, 2026
0312867
chore(main): release zkool 6.28.0-rc.2 (#1206)
hhanh00 Aug 17, 2026
890b398
feat: show proposal title and selection in the ballot evidence
hhanh00 Aug 17, 2026
f6af47e
fix: render option labels with vote-sdk ids, not 1-based positions
hhanh00 Aug 17, 2026
55f89e3
fix: key ballot evidence proposals by id, not list position
hhanh00 Aug 17, 2026
fc3ee70
fix: resolve share-window timing from the chain round status
hhanh00 Aug 17, 2026
c1b2226
fix: submit helper shares from the confirmed votes' payloads
hhanh00 Aug 17, 2026
5544e22
chore: regenerate FRB bindings for the share payload/plan FRBs
hhanh00 Aug 17, 2026
9f7f2ff
fix: parse vote-sdk tally entries per-entry decision and amount
hhanh00 Aug 17, 2026
c99c0c4
feat: show proposal titles and option labels in the tally results
hhanh00 Aug 17, 2026
23f0097
fix: tally entries without a decision key are decision 0, not a total
hhanh00 Aug 17, 2026
85b97d9
feat: results page title shows the round title
hhanh00 Aug 17, 2026
1c3df78
fix: don't re-send recorded shares; refresh status after tracking
hhanh00 Aug 17, 2026
1ca2716
feat: gate voting round actions on chain status; zero tally for votel…
hhanh00 Aug 17, 2026
facd90f
chore(main): release zkool 6.28.0-rc.3 (#1207)
hhanh00 Aug 17, 2026
6645459
fix(ledger): transparent-only signing + NU6.3 v5 workaround for hardw…
bu5hm4nn Aug 17, 2026
f399940
fix: support flutter 3.47 (intl 0.20.3); fixed 6.2.0 rename scale→dec…
hhanh00 Aug 18, 2026
ca3e4dd
fix: pass one connection through voting DB reads; stop pool stalls on…
hhanh00 Aug 18, 2026
5ec5ac8
feat: ballot page AppBar shows the round title
hhanh00 Aug 18, 2026
db413a3
chore(main): release zkool 6.28.0-rc.4 (#1209)
hhanh00 Aug 18, 2026
8375475
fix: batch-load voting sessions on one pool connection; keep the pool…
hhanh00 Aug 18, 2026
e6bd2fa
fix: build with Flutter 3.47.0
hhanh00 Aug 18, 2026
581fbcf
fix: bump Kotlin to 2.2.20 for Flutter 3.47.0 Android build
hhanh00 Aug 18, 2026
036fbe0
chore: update CONTRIBUTING file
hhanh00 Aug 18, 2026
ace0998
chore(main): release zkool 6.28.0-rc.5 (#1212)
hhanh00 Aug 18, 2026
d5d9fe2
add ironwood pool to diversifier index resolve/backfill (#1213)
macintoshhelper Aug 18, 2026
370e06d
fix: drop redundant pool predicate from diversifier index backfill
hhanh00 Aug 18, 2026
d866c5e
fix: stop ref use after unmount when closing Folders page (issue 1203)
hhanh00 Aug 18, 2026
e242909
chore(main): release zkool 6.28.0-rc.6 (#1214)
hhanh00 Aug 18, 2026
9f7cf4f
fix(voting): keep back navigation to account after vote submission
hhanh00 Aug 18, 2026
aa2a507
chore(main): release zkool 6.28.0-rc.7 (#1215)
hhanh00 Aug 18, 2026
0b3d72e
fix(settings): keep transport selector within screen width (FittedBox…
hhanh00 Aug 19, 2026
1d2af3b
ci: bump CI Flutter version to 3.47.1
hhanh00 Aug 19, 2026
13b444e
chore(main): release zkool 6.28.0-rc.8 (#1216)
hhanh00 Aug 19, 2026
3186669
fix(voting): default vote node URL to the vote chain server when unset
hhanh00 Aug 20, 2026
cae7d22
chore(main): release zkool 6.28.0-rc.9 (#1217)
hhanh00 Aug 20, 2026
57db3c8
fix(account): derive sapling address on file import and fail fast on …
hhanh00 Aug 20, 2026
a553da0
feat(voting): resumable recovery across network, server, and client f…
hhanh00 Aug 22, 2026
a6ec6d4
chore(main): release zkool 6.28.0-rc.10 (#1218)
hhanh00 Aug 22, 2026
3ccef6e
fix(nym): make large syncs over the mixnet reliable
rachyandco Aug 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/linux/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ runs:
- name: Build
shell: bash
run: |
./misc/mkcargokit_options.sh ledger > rust/cargokit.yaml
./misc/mkcargokit_options.sh "ledger,bundled-sapling-params" > rust/cargokit.yaml
fastforge package --platform=linux --targets=deb,appimage
- name: Build Flatpak
if: ${{ inputs.arch == 'x86_64' && github.event_name != 'pull_request' }}
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/mac/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ runs:
- name: Build
shell: bash
run: |
./misc/mkcargokit_options.sh ledger > rust/cargokit.yaml
./misc/mkcargokit_options.sh "ledger,bundled-sapling-params" > rust/cargokit.yaml
flutter build macos
- name: Notarization
shell: bash
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/windows/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ runs:
export PUB_CACHE="$RUNNER_TEMP/.pub-cache"
dart pub global activate fastforge
echo "$RUNNER_TEMP/.pub-cache/bin" >> $GITHUB_PATH
./misc/mkcargokit_options.sh ledger > rust/cargokit.yaml
./misc/mkcargokit_options.sh "ledger,bundled-sapling-params" > rust/cargokit.yaml
- name: Build
shell: powershell
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-graphql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
sudo apt-get update
sudo apt-get install -y pkg-config libudev-dev
cd rust
cargo build --release --bin zkool_graphql --features=graphql
cargo build --release --bin zkool_graphql --features=graphql,bundled-sapling-params
- name: Create Release
if: startsWith(github.ref_name, 'zkool-v')
uses: softprops/action-gh-release@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- os: windows-latest
target: windows
env:
FLUTTER_VERSION: 3.44.2
FLUTTER_VERSION: 3.47.1
permissions:
id-token: write
attestations: write
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/test-rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Test Rust

on:
workflow_dispatch:
pull_request:
branches:
- main
push:
branches:
- main

jobs:
test:
if: ${{ !startsWith(github.head_ref, 'release-please--branches--') }}
runs-on: ubuntu-latest
steps:
- name: Install RUST
uses: dtolnay/rust-toolchain@stable
- name: Checkout code
uses: actions/checkout@v6
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@v2
with:
workspaces: rust
- name: Run tests
run: |
cd rust
cargo test --lib
2 changes: 1 addition & 1 deletion .github/workflows/wallet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
sudo apt-get update
sudo apt-get install -y pkg-config libudev-dev
cd rust
cargo build --release --bin zkool_graphql --features=graphql
cargo build --release --bin zkool_graphql --features=graphql,bundled-sapling-params
- name: Run pytest tests
run: |
cd tests
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "6.27.0"
".": "6.28.0-rc.10"
}
131 changes: 131 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,136 @@
# Changelog

## [6.28.0-rc.10](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.9...zkool-v6.28.0-rc.10) (2026-08-22)


### Features

* **voting:** resumable recovery across network, server, and client failures ([a553da0](https://github.com/hhanh00/zkool2/commit/a553da0f7b54e04eea4d4a37827a1b8e4ca79ee9))


### Bug Fixes

* **account:** derive sapling address on file import and fail fast on corrupt stored addresses ([57db3c8](https://github.com/hhanh00/zkool2/commit/57db3c8848fe4c9824215a6180f8e5aa013d503d))

## [6.28.0-rc.9](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.8...zkool-v6.28.0-rc.9) (2026-08-20)


### Bug Fixes

* **voting:** default vote node URL to the vote chain server when unset ([3186669](https://github.com/hhanh00/zkool2/commit/3186669e9eef9ea167f75f39ce360c415f444183))

## [6.28.0-rc.8](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.7...zkool-v6.28.0-rc.8) (2026-08-19)


### Bug Fixes

* **settings:** keep transport selector within screen width (FittedBox + padding) ([0b3d72e](https://github.com/hhanh00/zkool2/commit/0b3d72ec73b97ff42156338436d406db24790b4f))

## [6.28.0-rc.7](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.6...zkool-v6.28.0-rc.7) (2026-08-18)


### Bug Fixes

* **voting:** keep back navigation to account after vote submission ([9f7cf4f](https://github.com/hhanh00/zkool2/commit/9f7cf4fb98ef7b06ebe8a6fef20cab4faf859605))

## [6.28.0-rc.6](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.5...zkool-v6.28.0-rc.6) (2026-08-18)


### Bug Fixes

* drop redundant pool predicate from diversifier index backfill ([370e06d](https://github.com/hhanh00/zkool2/commit/370e06d360b12220fb55dd5b075e12fbbd4941ca))
* stop ref use after unmount when closing Folders page (issue 1203) ([d866c5e](https://github.com/hhanh00/zkool2/commit/d866c5e2c8c122f9c8842cbc0cf46fb936f3abfa))

## [6.28.0-rc.5](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.4...zkool-v6.28.0-rc.5) (2026-08-18)


### Bug Fixes

* batch-load voting sessions on one pool connection; keep the pool free during delegation ([8375475](https://github.com/hhanh00/zkool2/commit/8375475c9e8201a9eae4cbd54c6286a56624b0bf))
* build with Flutter 3.47.0 ([e6bd2fa](https://github.com/hhanh00/zkool2/commit/e6bd2fac8d9c4b8855c19f59bc15ca35e5366955))
* bump Kotlin to 2.2.20 for Flutter 3.47.0 Android build ([581fbcf](https://github.com/hhanh00/zkool2/commit/581fbcfaec3ef40eeb16c69807d988b48e241281))

## [6.28.0-rc.4](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.3...zkool-v6.28.0-rc.4) (2026-08-18)


### Features

* ballot page AppBar shows the round title ([5ec5ac8](https://github.com/hhanh00/zkool2/commit/5ec5ac87aac68c5f8a8f68d85389cf005189145d))


### Bug Fixes

* **ledger:** transparent-only signing + NU6.3 v5 workaround for hardware wallets ([#1208](https://github.com/hhanh00/zkool2/issues/1208)) ([6645459](https://github.com/hhanh00/zkool2/commit/6645459cc3fae8868d760fcb89e8112cf5fc964d))
* pass one connection through voting DB reads; stop pool stalls on voting page ([ca3e4dd](https://github.com/hhanh00/zkool2/commit/ca3e4ddea58bf0e068c782a7c5f1bd6532a16aa0))
* support flutter 3.47 (intl 0.20.3); fixed 6.2.0 rename scale→decimalDigits ([f399940](https://github.com/hhanh00/zkool2/commit/f399940a15689907d49eb8bba777b63290ea8185))

## [6.28.0-rc.3](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.2...zkool-v6.28.0-rc.3) (2026-08-17)


### Features

* gate voting round actions on chain status; zero tally for voteless closed rounds ([1ca2716](https://github.com/hhanh00/zkool2/commit/1ca2716fd79b0db90d617bee6d2eed422a8238fb))
* results page title shows the round title ([85b97d9](https://github.com/hhanh00/zkool2/commit/85b97d91c565a6aea8316b7a0aad757fa80c1d14))
* show proposal title and selection in the ballot evidence ([890b398](https://github.com/hhanh00/zkool2/commit/890b3983bd755aade2499def6585525fc036888e))
* show proposal titles and option labels in the tally results ([c99c0c4](https://github.com/hhanh00/zkool2/commit/c99c0c4b03578aec13dc9530323a8f61f9e1617b))


### Bug Fixes

* don't re-send recorded shares; refresh status after tracking ([1c3df78](https://github.com/hhanh00/zkool2/commit/1c3df78da4a66e4968dd0008e5fda1758971b370))
* key ballot evidence proposals by id, not list position ([55f89e3](https://github.com/hhanh00/zkool2/commit/55f89e34d91cedcf0bb974225090371fda5e0b21))
* parse vote-sdk tally entries per-entry decision and amount ([9f7f2ff](https://github.com/hhanh00/zkool2/commit/9f7f2ffdb8b595b407b5087631ae34d1578ee516))
* render option labels with vote-sdk ids, not 1-based positions ([f6af47e](https://github.com/hhanh00/zkool2/commit/f6af47e3db3a5509e292869a9ef0271c64c65c29))
* resolve share-window timing from the chain round status ([fc3ee70](https://github.com/hhanh00/zkool2/commit/fc3ee7027ee9e29751ee699a87177a5a7f26ab35))
* submit helper shares from the confirmed votes' payloads ([c1b2226](https://github.com/hhanh00/zkool2/commit/c1b2226875846113b3485081d646141123cfe03e))
* tally entries without a decision key are decision 0, not a total ([23f0097](https://github.com/hhanh00/zkool2/commit/23f009757e38829af8e013c0b145f0f83f705cd7))

## [6.28.0-rc.2](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc.1...zkool-v6.28.0-rc.2) (2026-08-17)


### Features

* show friendly round titles and option labels in the voting UI ([5f9e2c8](https://github.com/hhanh00/zkool2/commit/5f9e2c825e4b0a2b379d077808cfa7c5e5588381))
* show per-vote on-chain evidence on the done and confirmation screens ([f7f6093](https://github.com/hhanh00/zkool2/commit/f7f6093af04760544ef100796938291fd12d74df))


### Bug Fixes

* auto-create the voting hotkey at delegation time ([8e2fcc5](https://github.com/hhanh00/zkool2/commit/8e2fcc509dc4e5239c482c5a1881bb00a8902574))
* bundle sapling params in desktop and graphql builds ([83565d8](https://github.com/hhanh00/zkool2/commit/83565d8d0d0024bccc80bffcc77a06722b4b09c8))
* cast one proposal at a time so the vote VAN chains ([bbf85e6](https://github.com/hhanh00/zkool2/commit/bbf85e6e85a39900c3db46ddc066befc19bafb1f))
* exclude post-snapshot notes from delegation prepare ([a81a4ff](https://github.com/hhanh00/zkool2/commit/a81a4ffe0be1064ae94ff86a7d4f6175101ff983))
* fall back to the configured vote servers for helper shares ([7417291](https://github.com/hhanh00/zkool2/commit/74172914302ba70ab95c0169e388b150f8a3dbec))
* honest done label when only time-scheduled steps remain ([0b1b316](https://github.com/hhanh00/zkool2/commit/0b1b316db9f86aecd84a13d3287c87d690ccede8))
* make delegation confirmation real and recoverable ([eac4655](https://github.com/hhanh00/zkool2/commit/eac46550883426bd1fd6c485c01af4da8352ebdc))
* parse the chain's string block heights; prove with voting-circuits 0.10.0 ([b22d304](https://github.com/hhanh00/zkool2/commit/b22d3046eb593b284a971b55d5c3b34acff36446))
* run fresh voting submissions end-to-end (delegate + vote) ([13f2f31](https://github.com/hhanh00/zkool2/commit/13f2f31b0d242c71bb4af6bb8f6bd50a441bf211))
* run the PIR connect inside the prove thread ([cb51c89](https://github.com/hhanh00/zkool2/commit/cb51c893221aef78b6a80e434bba4ccc9727d559))
* use app lightwalletd URL for fresh delegation prepare ([76d231e](https://github.com/hhanh00/zkool2/commit/76d231e98c9143d15d4e0fda5937e2ba7e62b5bd))
* use the async PIR client for delegation proving ([726f296](https://github.com/hhanh00/zkool2/commit/726f296dd3d5567644e4eae89e47f4cbdd06934c))

## [6.28.0-rc.1](https://github.com/hhanh00/zkool2/compare/zkool-v6.28.0-rc...zkool-v6.28.0-rc.1) (2026-08-16)


### Features

* show voting power on voting confirmation and status pages ([73db966](https://github.com/hhanh00/zkool2/commit/73db966629505b865dee82c6b1c3767a03b7a57a))


### Bug Fixes

* decode trailing escaped spaces in OA1 records ([1bd7374](https://github.com/hhanh00/zkool2/commit/1bd7374585290a93bab5287e1e0b8fcf612e76ed))
* persist ballot intents at cast time; parse option index ([04e5358](https://github.com/hhanh00/zkool2/commit/04e53587f17f97547b51055ab09898114786fd6e))
* save settings on nav away; resolve voting config from form value ([252ab2e](https://github.com/hhanh00/zkool2/commit/252ab2e3379cff5ec72b315a9a5844ea8dd603ed))
* surface voting config resolve errors instead of swallowing them ([c9516db](https://github.com/hhanh00/zkool2/commit/c9516db23ebe960cc05393eaba7fea54baa14d0d))

## [6.28.0-rc](https://github.com/hhanh00/zkool2/compare/zkool-v6.27.0...zkool-v6.28.0-rc) (2026-08-15)


### Features

* shielded voting UI (ZIP 262) ([1e5564c](https://github.com/hhanh00/zkool2/commit/1e5564ca8808768b2b2959484e7372f76a2083d2))

## [6.27.0](https://github.com/hhanh00/zkool2/compare/zkool-v6.26.1...zkool-v6.27.0) (2026-08-15)


Expand Down
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
Because this is a solo project, I prefer that contributors reach out and ask
first before submitting any PR.

When opening a PR from a fork, please enable “Allow edits from maintainers” so maintainers can make fixes directly to your PR.
67 changes: 60 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 9 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,13 @@ zcash_spec = { git = "https://github.com/zcash-shielded-assets/zcash_spec", rev
halo2_gadgets = { git = "https://github.com/zcash-shielded-assets/halo2", rev = "dcdbd1df2b30fd8d709c1a7c4ad9c4e091789d00" }
halo2_proofs = { git = "https://github.com/zcash-shielded-assets/halo2", rev = "dcdbd1df2b30fd8d709c1a7c4ad9c4e091789d00" }
halo2_poseidon = { git = "https://github.com/zcash-shielded-assets/halo2", rev = "dcdbd1df2b30fd8d709c1a7c4ad9c4e091789d00" }
voting-circuits = { git = "https://github.com/hhanh00/voting-circuits.git", rev = "9b408e712f8a2db8ca0b006846b310c6fd994941" }
# 0.10.0 release source + the ZSA-orchard note API shim (from_parts asset
# arg), matching the chain's verifier. Branch feat/zsa-orchard-0.10.
voting-circuits = { git = "https://github.com/hhanh00/voting-circuits.git", rev = "44033690874bc8b92cf015426d785b0b2e107035" }
# Patched pir-client: the async PirClient lacks a public circuit_root
# accessor (private field), which the fork's PirProofSource trait needs.
# Branch feat/async-circuit-root-getter. NOTE: patches only apply from the
# workspace root manifest.
pir-client = { git = "https://github.com/hhanh00/vote-nullifier-pir.git", rev = "b704640df339a98330a5b8e4582144fde67d0b0c" }


9 changes: 9 additions & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,12 @@ linter:

formatter:
page_width: 160
analyzer:
exclude:
- build/**
- android/**
- ios/**
- web/**
- windows/**
- macos/**
- linux/**
Loading