Commit Graph

9 Commits

Author SHA1 Message Date
Matt Hess 65d596a6ea Add sync cancellation via AtomicBool flag for FFI consumers
Allows Android/FFI callers to interrupt an in-progress wallet sync
  cleanly between batches. Adds salvium_wallet_stop_sync FFI export,
  WalletError::Cancelled, SyncEvent::Cancelled, and WalletHandle
  wrapper that pairs each wallet with its cancellation flag.
2026-02-26 02:23:12 +00:00
Matt Hess 04f3fc4da7 fixing openssl build 2026-02-25 05:10:40 +00:00
Matt Hess ed45c801f6 fixing openssl build 2026-02-25 05:00:06 +00:00
Matt Hess 28fbd223c7 Fix iOS release build: replace bash associative arrays with indexed arrays
macOS GitHub Actions runners ship bash 3.2, which does not support
  declare -A (requires bash 4.0+). Rewrote build-ios.sh and
  build-android.sh to use parallel indexed arrays instead.
2026-02-25 03:59:29 +00:00
Matt Hess 43840ac0d2 Fix release builds: quote bash assoc-array keys, add NDK toolchain to PATH 2026-02-25 03:10:08 +00:00
Matt Hess 40858cbc11 Fix CARROT multi-output ephemeral keys, add subaddress/integrated address management, FFI blob export
- TX builder: emit per-output ephemeral keys (tag 0x04) for CARROT TXs
    instead of single shared key (tag 0x01)
  - Wallet: add subaddress/account creation, labeling, integrated address
    encode/decode, and bump lookahead from 50 to 10,000
  - DB: add subaddresses table with upsert/query/label/mark-used methods
  - FFI: add wallet blob export/import/rekey (PQC-encrypted)
  - CI: add WASM build target to release workflow
2026-02-23 18:56:14 +00:00
Matt Hess f71176d1f6 v1.0.7-r001: Cross-platform builds, FFI expansion, license, and bug fixes
- Version all crates at 1.0.7-r001 (tracking Salvium C++ 1.0.7)
  - Source-available license: free for author/designees and non-commercial
    use; annual commercial license required for any revenue-generating use
  - Build scripts for Android/iOS/Linux/macOS/Windows producing both
    libsalvium_crypto and libsalvium_ffi
  - CI workflow publishes platform archives to salvium-rs-releases
  - 23 new FFI functions: storage ops, address book, tx notes, attributes,
    staked balance, key derivation, mnemonic
  - Fix stake detection: count owned outputs regardless of spent state
  - Auto-resume testnet integration tests from current chain height
2026-02-23 17:01:33 +00:00
Matt Hess 070901f2dd Fix CARROT sync regression: early view tag rejection for multi-output txs
Multi-output CARROT transactions store per-output D_e in additional_pubkeys
  (tag 0x04) with no tx_pubkey (tag 0x01), so the single-D_e pre-computation
  path was skipped entirely — every output hit the full _scanCarrotOutput path
  (~40ms each via FFI). Added per-output X25519 + 3-byte view tag rejection
  that restores post-fork sync from ~10 blk/s back to ~900+ blk/s.

  Also fixed parseExtra to handle 0xDE (minergate tag) and gracefully skip
  unknown tags via varint-length instead of aborting all remaining extra bytes.
2026-02-13 00:01:18 +00:00
Matt Hess 01bcb742ae ● Restructure native module for Expo auto-discovery, fix 3 test failures
Move native code from native/ to Expo-compatible layout with android/
  and ios/ at package root. Add Android JNI bridge (OnLoad.cpp,
  ExpoSalviumCryptoModule.java, ExpoSalviumCryptoPackage.java).
  Prebuilt binaries now go in prebuilt/ instead of native/lib/.

  Test fixes:
  - wallet-sync: update stale DEFAULT_BATCH_SIZE assertion (10 -> 100)
  - bulletproofs+: fix hashToPoint -> hashToPointMonero rename in test,
    fix serializeProof to include V array matching parseProof format
  - transaction-builder: expect 2 outputs for exact-amount tx (zero-change
    output is always added for privacy)
2026-02-09 22:50:15 +00:00