Build 67: Pay over-balance shake, manual slatepacks, green CI, slimmer builds

Pay: stop reddening the amount while typing — requesting more than you hold is
a valid request, so the digits stay black. Pressing Pay without enough funds
now shakes and briefly flashes the amount red and buzzes the phone, then
settles back. Bigger scan-to-pay puck.

Settings: the username "@" moves inside the field as the "@yourname"
placeholder (a leading "@" the user types is stripped). Mixnet routing is
shortened to "All traffic" and flagged in the privacy color. The Build row
links to GitHub releases. Network reads "MW + Nym mixnet + nostr". The Nym
third-party row shows the linked SDK version instead of "socks5".

Wallet: expose GRIM's native by-hand slatepack flow as an advanced
"Slatepacks" page — paste to receive/pay/finalize, or create a payment
slatepack to hand over. The fallback for when a payment can't ride a @username.

CI: fix the red GitHub builds. nym-sdk is a path dep on ../nym, which the
runners didn't have. A composite action materializes the pinned upstream nym
commit plus Goblin's small Android webpki patch before each build; aws-lc-sys
uses prebuilt NASM on native Windows.

Builds: strip release binaries, dropping ~17 MB of debug symbols from the
desktop build.
This commit is contained in:
2ro
2026-06-14 06:25:44 -04:00
parent 2578a35cf7
commit bb3b8c4ecc
9 changed files with 503 additions and 53 deletions
+31
View File
@@ -0,0 +1,31 @@
name: Fetch patched nym SDK
description: >
Materialize the nym workspace at ../nym (sibling of the goblin checkout) so the
`nym-sdk = { path = "../nym/sdk/rust/nym-sdk" }` dependency resolves. We pin the
exact upstream commit Goblin was built against and apply Goblin's small
Android webpki-roots patch on top — no separate nym fork to maintain.
runs:
using: composite
steps:
- name: Clone + patch nym
shell: bash
run: |
set -euo pipefail
# Upstream nymtech/nym commit Goblin's Cargo.lock was generated against.
NYM_SHA=b6eb391e85be7eb8fca62def6d1ac32fd1108c30
DEST="$(dirname "$GITHUB_WORKSPACE")/nym"
if [ -e "$DEST/sdk/rust/nym-sdk/Cargo.toml" ]; then
echo "nym already present at $DEST"
exit 0
fi
rm -rf "$DEST"
mkdir -p "$DEST"
cd "$DEST"
git init -q
git remote add origin https://github.com/nymtech/nym.git
# Fetch just the pinned commit (GitHub allows reachable-SHA fetches).
git fetch -q --depth 1 origin "$NYM_SHA"
git checkout -q FETCH_HEAD
git apply --whitespace=nowarn "$GITHUB_WORKSPACE/ci/nym-webpki-android.patch"
echo "nym materialized at $DEST ($NYM_SHA + Goblin webpki patch)"
+11 -1
View File
@@ -1,6 +1,12 @@
name: Build
on: [push, pull_request]
# aws-lc-sys (pulled in by nym-sdk) builds AWS-LC, which needs NASM on native
# Windows. Use the prebuilt NASM objects the crate ships so the runner doesn't
# need NASM installed; harmless on Linux/macOS.
env:
AWS_LC_SYS_PREBUILT_NASM: 1
jobs:
linux:
name: Linux Build
@@ -9,6 +15,8 @@ jobs:
- uses: actions/checkout@v6
with:
submodules: recursive
# nym-sdk is a path dep on ../nym; materialize it before building.
- uses: ./.github/actions/fetch-nym
- name: Release build
run: cargo build --release
@@ -19,9 +27,10 @@ jobs:
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: ./.github/actions/fetch-nym
- name: Release build
run: cargo build --release
macos:
name: MacOS Build
runs-on: macos-latest
@@ -29,5 +38,6 @@ jobs:
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: ./.github/actions/fetch-nym
- name: Release build
run: cargo build --release
+5
View File
@@ -23,6 +23,8 @@ permissions:
env:
TAG: ${{ inputs.tag || github.event.release.tag_name }}
# aws-lc-sys (via nym-sdk) needs NASM on native Windows; use its prebuilt NASM.
AWS_LC_SYS_PREBUILT_NASM: 1
jobs:
linux:
@@ -35,6 +37,7 @@ jobs:
with:
ref: ${{ inputs.tag || github.event.release.tag_name }}
submodules: recursive
- uses: ./.github/actions/fetch-nym
- name: Build
shell: bash
run: GOBLIN_BUILD="${TAG#build}" cargo build --release
@@ -59,6 +62,7 @@ jobs:
with:
ref: ${{ inputs.tag || github.event.release.tag_name }}
submodules: recursive
- uses: ./.github/actions/fetch-nym
- name: Build
shell: bash
run: GOBLIN_BUILD="${TAG#build}" cargo build --release
@@ -82,6 +86,7 @@ jobs:
with:
ref: ${{ inputs.tag || github.event.release.tag_name }}
submodules: recursive
- uses: ./.github/actions/fetch-nym
- name: Build both architectures
run: |
export GOBLIN_BUILD="${TAG#build}"