diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03523ca..d6d393d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -131,3 +131,10 @@ jobs: npm ci || true npm test shell: bash + + - name: Run Electron smoke tests (desktop) + working-directory: ./electron + run: | + npm ci || true + npm test + shell: bash diff --git a/README.md b/README.md index 81d3c95..af90f8d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # CrypteCipher +> Status: core library, Node bindings, CLI, CI, mobile (React Native scaffold), and desktop (Electron scaffold) are in-progress. Mobile uses a JS mock bridge; UniFFI scaffold is present for on-device bindings. + +# CrypteCipher + **PR:** Initial scaffold and features added for review. Secure privacy-first multi-currency wallet (scaffold) diff --git a/core/uniffi/README.md b/core/uniffi/README.md new file mode 100644 index 0000000..540fedf --- /dev/null +++ b/core/uniffi/README.md @@ -0,0 +1,15 @@ +UniFFI scaffold for CrypteCipher core + +This folder contains a UDL interface describing the minimal set of APIs the mobile app will consume on-device. + +How to generate bindings (developer machine): + +1. Install `uniffi-bindgen` (Rust/Cargo or prebuilt binary). +2. From `core/` run: + ```bash + uniffi-bindgen generate uniffi/cryptec.udl -l objc -o bindings/ios + uniffi-bindgen generate uniffi/cryptec.udl -l java -o bindings/android + ``` +3. Implement platform-specific glue in the generated wrappers and add React Native native modules that call them. + +Note: CI currently ships a JS fallback for mobile; UniFFI integration will be enabled in CI once native toolchains are added. diff --git a/core/uniffi/cryptec.udl b/core/uniffi/cryptec.udl new file mode 100644 index 0000000..5307002 --- /dev/null +++ b/core/uniffi/cryptec.udl @@ -0,0 +1,8 @@ +namespace cryptec { + + string generate_mnemonic(in uint32 strength); + string first_receive_address(in string mnemonic); + string create_psbt(in string mnemonic, in string to_address, in uint64 satoshis); + string sign_psbt(in string mnemonic, in string psbt_b64); + +}