-
Notifications
You must be signed in to change notification settings - Fork 44
feat(sdk): epic: rs-sdk-ffi and ios support #2756
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
240 commits
Select commit
Hold shift + click to select a range
ee755aa
ios start
QuantumExplorer 6adc716
more work on ios
QuantumExplorer fd7ce13
more work
QuantumExplorer 1d10634
ios
QuantumExplorer d01cd9b
feat: add data contract put methods and standardize return types in i…
QuantumExplorer efb64cf
more
QuantumExplorer afbb390
ios
QuantumExplorer b76a342
fmt
QuantumExplorer 85bedad
ios
QuantumExplorer a3e7d27
more work
QuantumExplorer bd2aa90
token
QuantumExplorer 7df79c4
more work
QuantumExplorer 00e18fe
more work
QuantumExplorer cdbe84e
more work
QuantumExplorer 78bb3ed
more work
QuantumExplorer 9295685
more work
QuantumExplorer 8c9642e
more work
QuantumExplorer a43c67f
more work
QuantumExplorer 77a17e6
fixes
QuantumExplorer cb4cc31
Merge branch 'v2.0-dev' into ios
QuantumExplorer ad333cc
document ffi
QuantumExplorer 21fb1b2
better ffi for tokens
QuantumExplorer 4a3f2db
better ffi for tokens
QuantumExplorer 1022009
more work
QuantumExplorer 2eb6d08
more work
QuantumExplorer b7802d2
refactor: split identity FFI module into organized submodules
QuantumExplorer aa96f4c
more work
QuantumExplorer ebfcfd2
more work on sdk
QuantumExplorer 182fe70
more fixes
QuantumExplorer 189b17d
more work
QuantumExplorer 2892fc0
more work
QuantumExplorer d99bb62
more work
QuantumExplorer 33b470d
queries
96d0ea2
more work
QuantumExplorer a38268e
more work
5e997f7
more work
QuantumExplorer b73419a
more work
QuantumExplorer a63d61e
more work
QuantumExplorer 3dacba6
fix
QuantumExplorer a599d16
more work
QuantumExplorer faa5933
more work
QuantumExplorer 93016ae
swift example app
QuantumExplorer 719e89d
more work
QuantumExplorer d93094d
more work
QuantumExplorer b1d3d15
more work
QuantumExplorer a0a2be1
more work
QuantumExplorer 84eed10
architecture
QuantumExplorer 8757f3a
architecture
QuantumExplorer 56434ee
architecture
QuantumExplorer 223ee16
Update SDK_ARCHITECTURE.md
QuantumExplorer 2b12a5f
more iOS work
QuantumExplorer 7d22e74
Merge branch 'ios' of github.com:dashpay/platform into ios
QuantumExplorer 54e3c21
Merge branch 'v2.0-dev' into ios
QuantumExplorer 7bb6860
added package
QuantumExplorer db88b1a
Merge branch 'ios' of github.com:dashpay/platform into ios
QuantumExplorer 7ba9668
more work
QuantumExplorer 7ddc886
more work (not sure)
98ddab7
feat: Add runtime isolation for rs-sdk-ffi and remove panic handler
7837bea
feat(rs-sdk-ffi): implement function pointer architecture for Platfor…
2752259
feat: Implement Unified SDK architecture combining Core and Platform
6878d8b
feat(rs-sdk-ffi): expose both DashSDKFFI and DashSPVFFI modules
96e4d6b
chore: exclude all XCFramework files from version control
f75123f
feat(SwiftExampleApp): integrate Core wallet functionality from dashp…
8946ba0
test: add Swift constants for SwiftDashSDK tests
822507b
Merge branch 'v2.1-dev' into feat/ios-2
3af7cb5
fix: Remove duplicate GetTokenContractInfoRequest implementation
fa6a530
fix: Remove duplicate TokenContractInfo import
0080679
fix: Resolve FFI type alias issues and merge conflicts
c9537c5
fix: resolve build issues after v2.1-dev merge
809fa38
feat: implement comprehensive HD wallet functionality in SwiftExampleApp
e909b6b
fix: resolve Rust FFI compilation errors with dashcore API
3a4f4e1
fix: resolve enum naming conflicts in FFI headers
fa336ce
fix: add missing enum renaming in iOS build script
ef030fb
feat: integrate real FFI implementations for wallet operations
f179612
fix: improve wallet creation error handling and debugging
7a29751
feat: Add comprehensive debugging to wallet FFI bridge
3ca53ba
fix: Fix Core Data validation errors in wallet creation
dc7f048
Fix wallet creation navigation issues in SwiftExampleApp
e724408
Add AddressManagementView.swift to fix build error
349936b
Add detailed logging to debug wallet creation issues
e56a153
Fix Core Data validation errors by sharing ModelContainer
aae260a
fix: implement real address generation using FFI functions
61c729a
feat: replace mock Platform queries with real FFI implementations
4f004d0
feat: implement SDK initialization with trusted setup
80cc6b2
Revert "feat: implement SDK initialization with trusted setup"
814df76
feat: implement SDK initialization with trusted setup for iOS
2d75c2b
fix: identity fetch now returns JSON instead of handle
68557b2
feat: add comprehensive logging to debug query execution
3cc4af0
feat: add comprehensive logging and timeout handling for query debugging
925e8ff
fix: SDK now uses real DAPI addresses instead of falling back to mock…
2de2d8a
fix: update Swift SDK to use working DAPI addresses from WASM SDK
6707623
feat: implement SDK status query with mode and quorum count
33c5b5e
fix: iOS build issues and add SDK status query
1163681
Debug iOS HTTP request failure: add network diagnostics and Info.plist
65069dd
Fix Info.plist conflict by removing manually created file
e15237e
Fix JSON serialization crash for primitive query results
d94da21
feat: Update iOS query implementations to match WASM SDK parameters
7045387
feat: Implement remaining FFI query functions in iOS
02b5b7a
fix: Fix compilation errors in iOS Platform query implementations
56466f6
feat: Add Diagnostics section with Run All Queries feature
3a7efe9
feat(ios): Add comprehensive diagnostics view with all 44 platform qu…
3854e10
fix(ios): Update diagnostic test data to match WASM SDK exactly
68c830d
fix(ios): Fix platform query errors and improve success rate
5dd4618
fix(ios): Add missing version files for build
dd667ec
fix(ios-sdk): Fix token query result formats
fcb27ab
fix(ios-sdk): Fix getGroupActionSigners invalid action ID
bc9aa8f
fix(ios-sdk): Fix getTotalCreditsInPlatform and update group test data
4344746
feat(ios-sdk): Add platform status query to return real block heights
0f435ae
feat(ios-sdk): Add missing system queries
1f7bd3b
fix(ios-sdk): Improve error reporting and fix group query contract IDs
6993415
fix(ios): implement startAfter/startAt pagination and fix test data
1694405
fix(ios): resolve multiple query errors improving success rate to 76.6%
0eedbe8
fix: improve platform query implementations
95b5aa4
feat: add state transitions UI structure
cf65f71
Fix DPNS queries implementation
e88232d
Fix StateTransitionsView compilation error
cf71c42
fmt
QuantumExplorer 62c8ab6
feat: Implement native DPNS queries at Rust SDK level
0f51a75
fix: Fix DPNS query test compilation error
40f9bdd
fix: Correct AddressList initialization in DPNS test
91cf7b3
fix: fix async runtime error in DPNS network tests
0874580
feat: add trusted context provider support to DPNS tests
f63ac43
fix: fix DPNS queries to use correct indexed fields
949416c
fix(rs-sdk-ffi): Fix DPNS get_usernames FFI function identity_id para…
b72a8f4
fix(swift-sdk): Update dpnsGetUsername to pass identity ID as string
e085bef
feat(rs-sdk-ffi): Add DPNS resolve FFI function
38c03a4
fix(tests): Update DPNS resolve tests to use existing name
adb65d8
fix: Fix contested resource queries index value handling and enable D…
1d9f853
fix: Use SDK's resolve_dpns_name method in FFI
f3de3c3
feat: Add getIdentityTokenBalances query to Swift SDK
ea03bd5
fix: use SDK's Fetch trait for Token Perpetual Distribution Last Claim
5137fe5
fix: improve identity loading and display in SwiftExampleApp
2845077
Fix StateTransitionExtensions compilation errors
bf498af
Implement Identity Credit Transfer and Withdrawal state transitions
ce2e17a
feat: Add automatic key selection for identity state transitions
ff3b844
fix: Resolve StateTransitionType enum conflict in Swift SDK
69debe3
feat: Add identity ID normalization for transfers
7cb28f5
fix: Remove toBase58 usage to fix build error
f368685
feat(ios): Add hex to base58 conversion support for identity IDs
ac58a50
debug: Add character-level debugging for base58 parsing errors
76623eb
fix(ios): Remove version overlay and move to settings
b191b15
fix(ios): Export utils module and import DashSDKFFI
103ff6f
fix: Identity IDs now properly handle base58 format in FFI calls
55e9e63
feat(ios): Add state transition test suite with env-based credentials
515a0e5
fix(ios): Fix compilation errors in WalletTests
dfb728c
feat(ios): Add TestKeyGenerator utility class
be3741e
fix(ios): Temporarily disable identity transfer to prevent crash
b97b501
Revert "fix(ios): Temporarily disable identity transfer to prevent cr…
782de74
fix: resolve EXC_BAD_ACCESS crash in identity transfer operations
7bf9ade
fix: add missing parse.rs file for identity JSON parsing
d3ed485
fix: update state transition tests to use new handle-based API
234c8aa
fix
QuantumExplorer f7073a9
fix: update tests to use base58 identity IDs and fix EnvLoader for iOS
d415eee
fix: use identity parse JSON to handle conversion in tests
71bc4db
feat: add identity get public key by ID function and fix transfer tests
d883785
fix: cast identity handle to OpaquePointer for get_public_key_by_id
8acb29d
refactor: Change identity transfer and withdraw APIs to use public ke…
1c511ea
fix: Add dash_sdk_identity_fetch_handle to resolve EXC_BAD_ACCESS crash
a9a89a8
debug: Add extensive logging to trace identity transfer crash
0697abe
debug: Add more detailed logging and test auto-select key mode
9b5aaf6
debug: Add test module to investigate crash location
94bd729
fix: Fix iOS build and correct DASH credit calculations
a38a695
more work
QuantumExplorer 3e31fd8
feat(ios): Add private key management with WIF support
QuantumExplorer 4535d0a
fmt and fixes
QuantumExplorer 590f184
more work
QuantumExplorer 53cc980
saved contracts
QuantumExplorer 910d64e
saved contracts
QuantumExplorer f04c501
a lot more work
QuantumExplorer c9fc53d
fixes
QuantumExplorer 0b96514
fixes
QuantumExplorer 8eec6fc
fixes
QuantumExplorer 985dbfb
fixes
QuantumExplorer 84d2e5d
more work
QuantumExplorer 41dcc5a
more work
QuantumExplorer 49434ec
more work
QuantumExplorer 2a8499d
more work
QuantumExplorer 64e5da4
more work
QuantumExplorer 1ac8bec
more work
QuantumExplorer 9b2f5c9
more work
QuantumExplorer f8ec0e4
more work
QuantumExplorer e7cdc34
more work
QuantumExplorer 3f79791
work on contested names
QuantumExplorer b2a96db
more work on contested names
QuantumExplorer 41ef3a7
more work on document purchase
QuantumExplorer e16fc0c
selection restrictions
QuantumExplorer 7b03493
contract create
QuantumExplorer 0881e5e
clean up
QuantumExplorer 7dc9732
lock
QuantumExplorer bbfabce
core v40 support
QuantumExplorer 44ebb06
added features
QuantumExplorer 8c623f6
added priv and pub
QuantumExplorer a4e792a
switched to rust 1.89
QuantumExplorer 7896a1a
improvements for core
QuantumExplorer 7f89944
Merge branch 'v2.1-dev' into feat/ios-2
QuantumExplorer e8cea28
Merge branch 'feat/ios-2' of github.com:dashpay/platform into feat/ios-2
QuantumExplorer 84adb67
Merge branch 'feat/core40support' into feat/ios-3
QuantumExplorer 401f620
more work
QuantumExplorer 3baba41
many fixes
QuantumExplorer 022e40c
more work
QuantumExplorer 0c6c345
more work
QuantumExplorer 49ab405
more work
QuantumExplorer 198bb8d
fixes
QuantumExplorer 3f7d16d
a lot of fixes
QuantumExplorer cb9b2eb
more work
QuantumExplorer 061e7b6
more work
QuantumExplorer d3fc638
swift work
QuantumExplorer 7443bbd
switcher
QuantumExplorer d9ab181
more work
QuantumExplorer df09cd2
clean up
QuantumExplorer c6f188a
Merge branch 'v2.1-dev' into feat/ios-3
QuantumExplorer 5112995
Merge branch 'v2.1-dev' into feat/ios-3
QuantumExplorer 50074df
fixes
QuantumExplorer d32b2a7
updated rust dash core
QuantumExplorer 5934024
lock
QuantumExplorer cc2d8fc
small fix
QuantumExplorer e0aa524
clean up
QuantumExplorer 744b6d9
refactor(sdk): clean up parts of project against warnings (#2762)
QuantumExplorer bf5896c
fix
QuantumExplorer 4239989
fix for core stubs
QuantumExplorer bcc5b16
fixed build
QuantumExplorer bc7b861
fixes
QuantumExplorer 6230170
more work
QuantumExplorer 8f3d8e1
more work
QuantumExplorer 8b50e2f
fixes
QuantumExplorer 435cb5e
more work
QuantumExplorer 19b9783
more work
QuantumExplorer d38e814
more work
QuantumExplorer 3e4d5d4
fixes
QuantumExplorer c1a71c8
more work
QuantumExplorer 90d4568
newer versions
QuantumExplorer b220537
Merge branch 'v2.1-dev' into feat/ios-3
QuantumExplorer 900c995
fixes
QuantumExplorer da3d7d7
Merge branch 'feat/ios-3' of github.com:dashpay/platform into feat/ios-3
QuantumExplorer 3d97630
fixes
QuantumExplorer 389d3f2
fixes
QuantumExplorer 32c728c
some more fixes
QuantumExplorer 2ea2b9d
sdk fixes
QuantumExplorer e5a9316
clean up
QuantumExplorer ce73eee
fix
QuantumExplorer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
name: Test rs-sdk-ffi build | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
paths: | ||
- 'packages/rs-sdk-ffi/**' | ||
- 'packages/rs-sdk/**' | ||
- '.github/workflows/tests-rs-sdk-ffi-build.yml' | ||
push: | ||
branches: | ||
- master | ||
- 'v*-dev' | ||
paths: | ||
- 'packages/rs-sdk-ffi/**' | ||
- 'packages/rs-sdk/**' | ||
- '.github/workflows/tests-rs-sdk-ffi-build.yml' | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
build-ffi-ios: | ||
name: Build rs-sdk-ffi for iOS targets | ||
# macOS runners are required to access Apple SDKs (no osxcross here) | ||
runs-on: macos-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
target: [aarch64-apple-ios, aarch64-apple-ios-sim] | ||
steps: | ||
- name: Check out repo | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Rust | ||
uses: ./.github/actions/rust | ||
with: | ||
target: ${{ matrix.target }} | ||
|
||
- name: Add Rust target | ||
run: | | ||
rustup target add ${{ matrix.target }} | ||
|
||
- name: Restore cached Protobuf (protoc) | ||
id: cache-protoc | ||
uses: actions/cache@v4 | ||
with: | ||
path: | | ||
${{ env.HOME }}/.local/protoc-32.0/bin | ||
${{ env.HOME }}/.local/protoc-32.0/include | ||
key: protoc/32.0/${{ runner.os }}/universal | ||
|
||
- name: Install Protobuf (protoc) if cache miss | ||
if: steps.cache-protoc.outputs.cache-hit != 'true' | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
run: | | ||
set -euxo pipefail | ||
VERSION=32.0 | ||
OS=osx-universal_binary | ||
PROTOC_DIR="$HOME/.local/protoc-${VERSION}" | ||
mkdir -p "$PROTOC_DIR" | ||
curl -fsSL -H "Authorization: token ${GITHUB_TOKEN}" \ | ||
-o /tmp/protoc.zip \ | ||
"https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/protoc-${VERSION}-${OS}.zip" | ||
unzip -o /tmp/protoc.zip -d "$PROTOC_DIR" | ||
|
||
- name: Save cached Protobuf (protoc) | ||
if: steps.cache-protoc.outputs.cache-hit != 'true' | ||
uses: actions/cache/save@v4 | ||
with: | ||
path: | | ||
${{ env.HOME }}/.local/protoc-32.0/bin | ||
${{ env.HOME }}/.local/protoc-32.0/include | ||
key: protoc/32.0/${{ runner.os }}/universal | ||
|
||
- name: Verify protoc and export env | ||
run: | | ||
set -euxo pipefail | ||
export PATH="$HOME/.local/protoc-32.0/bin:$PATH" | ||
echo "PROTOC=$HOME/.local/protoc-32.0/bin/protoc" >> "$GITHUB_ENV" | ||
"$HOME/.local/protoc-32.0/bin/protoc" --version | ||
# Ensure build scripts see an absolute PROTOC path (some parse parent dirs) | ||
echo "PROTOC=$(which protoc)" >> "$GITHUB_ENV" | ||
# Enable backtraces for clearer failure logs if any build.rs panics | ||
echo "RUST_BACKTRACE=1" >> "$GITHUB_ENV" | ||
|
||
- name: Build FFI library | ||
working-directory: packages/rs-sdk-ffi | ||
env: | ||
BLST_PORTABLE: "1" | ||
IPHONEOS_DEPLOYMENT_TARGET: "18.0" | ||
IPHONESIMULATOR_DEPLOYMENT_TARGET: "18.0" | ||
RUSTFLAGS: "-C link-arg=-mios-version-min=18.0" | ||
run: | | ||
echo "Using BLST_PORTABLE=${BLST_PORTABLE} to avoid iOS linker issues" | ||
echo "Minimum iOS deployment target: ${IPHONEOS_DEPLOYMENT_TARGET} (RUSTFLAGS=${RUSTFLAGS})" | ||
cargo build --release --target ${{ matrix.target }} | ||
|
||
- name: Verify build output | ||
run: | | ||
LIB=target/${{ matrix.target }}/release/librs_sdk_ffi.a | ||
if [ ! -f "$LIB" ]; then | ||
echo "Error: FFI library was not built for ${{ matrix.target }}" | ||
exit 1 | ||
fi | ||
echo "FFI library successfully built for ${{ matrix.target }}" | ||
ls -la "$LIB" | ||
|
||
- name: Upload artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: rs-sdk-ffi-${{ matrix.target }}-release | ||
path: | | ||
target/${{ matrix.target }}/release/librs_sdk_ffi.a |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.