Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
0bdde46
keyshare-id-normalizations
May 11, 2026
0acad90
fix: align keyshare labels, harden wallet reset, and lock screen prefs
May 12, 2026
773a545
perf(api): serialize coordinator sync and 429-retry tx fetch
May 12, 2026
51d622a
fix(ios): patch fmt for Xcode 26.4 / Apple Clang 21
May 13, 2026
ffb38dc
chore(ios): link Tss.xcframework without embedding
May 13, 2026
ed80a7f
ios-version-update
May 13, 2026
c4903f4
docs: add CHANGELOG [3.1.1] for 2026-05-13
May 13, 2026
d0fcf20
docs(CHANGELOG): surface v3.1.0; retire misplaced 3.0.8 heading
May 13, 2026
960d280
dkls-draft
May 19, 2026
9ba5dba
dkls-draft
May 19, 2026
a5ae06e
nostr-dkls-draft
May 19, 2026
50bf0da
dkls-mpc-send-btc
May 19, 2026
64de187
dkls-draft
May 20, 2026
ac295c4
dkls-draft
May 20, 2026
29358b6
dkls-draft
May 20, 2026
bd58c31
dkls-gg18-coexistence
May 20, 2026
82793d0
runtime-unification
May 20, 2026
a8a385c
trio-lan-pass
May 21, 2026
cfa7e38
dkls-keyshare-alignment
May 21, 2026
e280c52
dkls-spendings
May 21, 2026
2551d33
dkls-wrap-up
May 21, 2026
a614fa3
ui-settings-updates
May 21, 2026
40fd542
asset-icon-add
May 21, 2026
9a05382
dkls-draft
May 21, 2026
ed4e647
refactor-hot-fixes
May 22, 2026
58219e2
psbt-refactor
May 22, 2026
8dbb251
psbt-hardening
May 22, 2026
49a8697
dkls-hardening
May 22, 2026
611ade5
hardened-nostr-dkls
May 22, 2026
da6a25d
mpc-hardening
May 23, 2026
eb444ab
Stop tracking build artifacts and local relay DB WAL files
May 23, 2026
9bdba72
gitignore-updates
May 23, 2026
6b95877
logs-alignments
May 23, 2026
820eb10
mpc-hardening+ui
May 24, 2026
395fe50
mpc-hardenign
May 24, 2026
de63f1a
hardening-mpc
May 24, 2026
86fb10c
Merge branch 'main' into v4.0.0
May 24, 2026
3617a24
Fix CI: clone libtss sibling path and Linux CGO flags for v4.
May 24, 2026
4468532
CI: apply vendored libtss DerivePathWithChainCode patch after clone.
May 24, 2026
64a3e27
Fix CI Nostr relay: pull scsibug image instead of missing local build.
May 24, 2026
19cba97
Run gofmt on BBMTLib so CI formatting check passes.
May 24, 2026
176e5d4
ui-mpc-progress-enhancements
May 25, 2026
5be93a3
security-hardenings
May 27, 2026
a07280c
security-enhancements
May 27, 2026
673d9e7
dev-keyshare-structure-view-patch
May 27, 2026
9afda9e
ci-action-checks
May 27, 2026
627d332
ci-action-checks
May 27, 2026
53e94af
ci-updates
May 27, 2026
26a65b2
ci-lint-checks
May 28, 2026
7695848
ci-gofmt-checks
May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
35 changes: 35 additions & 0 deletions .github/actions/setup-libtss/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Setup libtss
description: Clone 0xCarbon/libtss beside BoldWallet and build libtss-ffi for BBMTLib CGO.

runs:
using: composite
steps:
- name: Checkout libtss (sibling of BoldWallet)
shell: bash
run: |
LIBTSS_DIR="${GITHUB_WORKSPACE}/../libtss"
LIBTSS_REF="ae1f891ee2dd67b6e841eaf673f7a1c0e8040815"
PATCH="${GITHUB_WORKSPACE}/BBMTLib/mobile-deps/libtss/derive-path-with-chain-code.patch"
rm -rf "${LIBTSS_DIR}"
git clone https://github.com/0xCarbon/libtss.git "${LIBTSS_DIR}"
git -C "${LIBTSS_DIR}" checkout "${LIBTSS_REF}"
ACTUAL_REF="$(git -C "${LIBTSS_DIR}" rev-parse HEAD)"
if [ "${ACTUAL_REF}" != "${LIBTSS_REF}" ]; then
echo "libtss revision mismatch: got ${ACTUAL_REF}, expected ${LIBTSS_REF}" >&2
exit 1
fi
git -C "${LIBTSS_DIR}" apply "${PATCH}"
echo "LIBTSS_DIR=${LIBTSS_DIR}" >> "${GITHUB_ENV}"
echo "LIBTSS_REF=${LIBTSS_REF}" >> "${GITHUB_ENV}"
test -f "${LIBTSS_DIR}/libtss-go/go.mod"
grep -q DerivePathWithChainCode "${LIBTSS_DIR}/libtss-go/tss/derive.go"

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Build libtss-ffi
shell: bash
run: |
cd "${LIBTSS_DIR}"
cargo build --release -p libtss-ffi
test -f target/release/liblibtss_ffi.a
23 changes: 23 additions & 0 deletions .github/scripts/check-sensitive-logs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
cd "${ROOT_DIR}"

PATTERN='raw_json=|sessionID=%s, sessionKey=%s|fullNonce=%s|peerNonce=%s|Input [0-9]+ sighash:|PSBT_JSON:|runNostrPreAgreement.*nonce:'

echo "Running sensitive log regression scan..."
if git ls-files -z \
BBMTLib \
ios \
android \
':!:**/*.md' \
':!:.github/scripts/check-sensitive-logs.sh' \
':!:BBMTLib/tss/logs.go' |
xargs -0 grep -n -E "${PATTERN}"; then
echo ""
echo "Sensitive log pattern found. Remove or redact before merging."
exit 1
fi

echo "Sensitive log scan passed."
17 changes: 14 additions & 3 deletions .github/workflows/bbmtlib-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,41 @@ on:
paths:
- 'BBMTLib/**'
- '.github/workflows/bbmtlib-test.yml'
- '.github/actions/setup-libtss/**'
- '.github/scripts/check-sensitive-logs.sh'
workflow_dispatch:

jobs:
test:
name: Test BBMTLib
runs-on: ubuntu-latest
env:
CGO_ENABLED: '1'
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true

defaults:
run:
working-directory: ./BBMTLib

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup libtss
uses: ./.github/actions/setup-libtss

- name: Set up Go
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version: '1.25'
go-version: '1.26'
cache-dependency-path: BBMTLib/go.sum

- name: Verify Go version
run: go version

- name: Check sensitive log regressions
run: bash ../.github/scripts/check-sensitive-logs.sh

- name: Install dependencies
run: go mod download

Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/dkls-scripts-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: DKLs23 Scripts Tests

on:
pull_request:
paths:
- 'BBMTLib/dkls/**'
- 'BBMTLib/scripts-dkls/**'
- 'BBMTLib/dklsbind/**'
- 'BBMTLib/dklsstub/**'
- 'BBMTLib/go.mod'
- '.github/workflows/dkls-scripts-test.yml'
- '.github/actions/setup-libtss/**'
- '.github/scripts/check-sensitive-logs.sh'
workflow_dispatch:

jobs:
test:
name: Test DKLs23 scripts
runs-on: ubuntu-latest
env:
CGO_ENABLED: '1'
# Node 20 EOL on Actions runners; v6 actions use Node 24 (see GitHub changelog Sep 2025).
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
defaults:
run:
working-directory: ./BBMTLib

steps:
- uses: actions/checkout@v6

- name: Setup libtss
uses: ./.github/actions/setup-libtss

- uses: actions/setup-go@v6
with:
go-version: '1.26'
cache-dependency-path: BBMTLib/go.sum

- name: Install jq
run: sudo apt-get update && sudo apt-get install -y jq

- name: Check sensitive log regressions
run: bash ../.github/scripts/check-sensitive-logs.sh

- name: Pull Nostr relay image
run: docker pull scsibug/nostr-rs-relay:latest

- name: Run DKLs script tests
run: |
chmod +x scripts-dkls/*.sh
./scripts-dkls/dkls-test-all.sh

- name: go test dkls package
run: go test -count=1 -short ./dkls/...
63 changes: 53 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,21 +75,28 @@ bundle.js
!.yarn/sdks
!.yarn/versions

# BBMTLib
# BBMTLib — Go builds, mobile artifacts, test data
#
BBMTLib/.DS_Store
BBMTLib/bin/
BBMTLib/*.aar
BBMTLib/*.jar
BBMTLib/Tss.xcframework/
BBMTLib/Tss.xcframework/**
BBMTLib/Dkls.xcframework/**
BBMTLib/libbbmtmobile.xcframework/**
# c-shared host outputs (also under bin/; ignore if written to BBMTLib root)
BBMTLib/libbbmtmobile
BBMTLib/libbbmtmobile.h
BBMTLib/libdklsmobile
BBMTLib/libdklsmobile.h
BBMTLib/scripts/bin/
BBMTLib/scripts/*.json
# Build binaries (bold-spend cross-platform binaries - ignore these)
BBMTLib/bin/bold-spend-*
# Build binaries (bbmt and related binaries - ignore these)
BBMTLib/bin/bbmt*
# Prebuilt libtss-ffi static libs (run mobile-deps/libtss/build-libtss.sh)
BBMTLib/mobile-deps/libtss/**/*.a
BBMTLib/mobile-deps/libtss/target/
# Peer configuration files
BBMTLib/peer*.json
# Go build artifacts
# Go build artifacts (host)
BBMTLib/*.exe
BBMTLib/*.dll
BBMTLib/*.so
Expand All @@ -100,6 +107,9 @@ BBMTLib/*.dylib
peer*.ks
KeyShare*.share
peer*.share
# Local Nostr relay data (BBMTLib/scripts/start-local-relay.sh)
BBMTLib/test-relay-data/

# Testing data and temporary files
BBMTLib/test-data/
BBMTLib/test-keygen-output/
Expand Down Expand Up @@ -148,7 +158,9 @@ android/gradle.properties.local
mcps/

# IDE - VSCode
.vscode/
.vscode/*
!.vscode/extensions.json
!.vscode/c_cpp_properties.json
*.code-workspace

# IDE - JetBrains
Expand Down Expand Up @@ -267,8 +279,6 @@ tmp/
temp/

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
Expand Down Expand Up @@ -305,6 +315,21 @@ proguard/
android/app/debug/
android/app/release/
android/app/profile/
# Kotlin compiler session markers
android/.kotlin/
**/.kotlin/
*.salive
# ProGuard/R8 mapping (release builds; huge, regenerated)
android/mapping.txt
# Legacy gomobile GG18 AAR (app uses libbbmtmobile.so + dkls_jni; see BBMTLib/build-dkls.sh)
android/app/libs/tss.aar
android/app/libs/tss-sources.jar
# DKLs23 / bbmtmobile Android (BBMTLib/build-dkls.sh): libbbmtmobile.so, libbbmtmobile.h, dkls_jni.so
android/app/src/main/jniLibs/**
android/app/src/main/cpp/libbbmtmobile.h
# Legacy pre-bbmtmobile rename (stale headers from old builds)
android/app/src/main/cpp/libdklsmobile.h
**/libdklsmobile.so

# iOS
*.pbxuser
Expand All @@ -327,6 +352,22 @@ ios/build/
!*.xcworkspace/contents.xcworkspacedata
*.xcuserdata
*.xcscmblueprint
# Unified bbmtmobile (BBMTLib/build-dkls.sh ios) — built locally, not committed (same as android jniLibs)
ios/Tss.xcframework/**
ios/DklsMobile/**
ios/DklsBridge.h
ios/DklsBridge.mm
ios/libbbmtmobile_go.h
ios/BbmtMobile/libbbmtmobile.xcframework/**
ios/BbmtMobile/libbbmtmobile_go.h
ios/BbmtMobile/libbbmtmobile*.h
ios/BbmtMobile/*.a
ios/BbmtMobile/libbbmtmobile-merged-*.a
ios/BbmtMobile/libbbmtmobile-device.*
ios/BbmtMobile/libbbmtmobile-sim.*
ios/BbmtMobile/headers/
# Stale iOS outputs from pre-bbmtmobile builds (under ios/DklsMobile/ when present)
ios/DklsMobile/libdklsmobile.xcframework/**

# CocoaPods
Pods/
Expand Down Expand Up @@ -371,6 +412,8 @@ vendor/bundle/

# Database files
*.db
*.db-shm
*.db-wal
*.sqlite
*.sqlite3

Expand Down
19 changes: 19 additions & 0 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"configurations": [
{
"name": "Android JNI (arm64-v8a)",
"includePath": [
"${workspaceFolder}/android/app/src/main/cpp",
"${workspaceFolder}/android/app/src/main/jniLibs/arm64-v8a",
"${env:ANDROID_HOME}/ndk/27.1.12297006/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include",
"${env:ANDROID_HOME}/ndk/27.1.12297006/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android"
],
"defines": ["ANDROID"],
"compilerPath": "${env:ANDROID_HOME}/ndk/27.1.12297006/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android24-clang++",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "linux-clang-arm64"
}
],
"version": 4
}
Loading
Loading