-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #12 from MCN-ING/multi-signature-support
see changelog for 0.6
- Loading branch information
Showing
13 changed files
with
1,364 additions
and
167 deletions.
There are no files selected for viewing
This file contains 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 |
---|---|---|
|
@@ -3,9 +3,6 @@ on: [ pull_request, workflow_dispatch ] | |
name: CI | ||
|
||
env: | ||
# --cfg=web_sys_unstable_apis is required to enable the web_sys clipboard API which egui_web uses | ||
# https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.Clipboard.html | ||
# https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html | ||
RUSTFLAGS: -D warnings --cfg=web_sys_unstable_apis | ||
RUSTDOCFLAGS: -D warnings | ||
|
||
|
@@ -25,22 +22,6 @@ jobs: | |
command: check | ||
args: --all-features | ||
|
||
# # check_wasm: | ||
# # name: Check wasm32 | ||
# # runs-on: ubuntu-latest | ||
# # steps: | ||
# # - uses: actions/checkout@v4 | ||
# # - uses: actions-rs/toolchain@v1 | ||
# # with: | ||
# # profile: minimal | ||
# # toolchain: stable | ||
# # target: wasm32-unknown-unknown | ||
# # override: true | ||
# # - uses: actions-rs/cargo@v1 | ||
# # with: | ||
# # command: check | ||
# # args: --all-features --lib --target wasm32-unknown-unknown | ||
# | ||
test: | ||
name: Test Suite | ||
runs-on: ubuntu-latest | ||
|
@@ -88,76 +69,71 @@ jobs: | |
with: | ||
command: clippy | ||
args: -- -D warnings | ||
# | ||
# # trunk: | ||
# # name: trunk | ||
# # runs-on: ubuntu-latest | ||
# # steps: | ||
# # - uses: actions/checkout@v4 | ||
# # - uses: actions-rs/toolchain@v1 | ||
# # with: | ||
# # profile: minimal | ||
# # toolchain: 1.76.0 | ||
# # target: wasm32-unknown-unknown | ||
# # override: true | ||
# # - name: Download and install Trunk binary | ||
# # run: wget -qO- https://github.com/thedodd/trunk/releases/latest/download/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf- | ||
# # - name: Build | ||
# # run: ./trunk build | ||
# | ||
|
||
build: | ||
needs: [ check, test, fmt, clippy ] | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- os: macos-latest | ||
TARGET: aarch64-apple-darwin | ||
target: aarch64-apple-darwin | ||
extension: "" | ||
|
||
- os: macos-latest | ||
target: x86_64-apple-darwin | ||
extension: "" | ||
|
||
- os: ubuntu-latest | ||
TARGET: x86_64-unknown-linux-musl | ||
target: x86_64-unknown-linux-gnu | ||
extension: "" | ||
|
||
steps: | ||
- name: Building ${{ matrix.TARGET }} | ||
run: echo "${{ matrix.TARGET }}" | ||
- name: Building ${{ matrix.target }} | ||
run: echo "${{ matrix.target }}" | ||
|
||
- uses: actions/checkout@master | ||
- uses: actions-rs/[email protected] | ||
- uses: actions/checkout@v4 | ||
|
||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
target: ${{ matrix.TARGET }} | ||
target: ${{ matrix.target }} | ||
override: true | ||
|
||
- name: Install CMake | ||
- name: Install Linux dependencies | ||
if: runner.os == 'Linux' | ||
run: | | ||
if [[ "${{ runner.os }}" == "macOS" ]]; then | ||
brew install cmake | ||
else | ||
sudo apt-get install -y cmake | ||
fi | ||
shell: bash | ||
sudo apt-get update | ||
sudo apt-get install -y cmake libssl-dev pkg-config libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev | ||
- name: Install macOS dependencies | ||
if: runner.os == 'macOS' | ||
run: brew install cmake | ||
|
||
- uses: actions-rs/cargo@v1 | ||
with: | ||
use-cross: true | ||
command: build | ||
args: --verbose --release --target=${{ matrix.TARGET }} | ||
|
||
# - name: Rename | ||
# run: cp target/${{ matrix.TARGET }}/release/eframe_template${{ matrix.EXTENSION }} eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | ||
# | ||
# - uses: actions/upload-artifact@master | ||
# with: | ||
# name: eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | ||
# path: eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | ||
# | ||
# - uses: svenstaro/upload-release-action@v2 | ||
# name: Upload binaries to release | ||
# if: ${{ github.event_name == 'push' }} | ||
# with: | ||
# repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
# file: eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | ||
# asset_name: eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | ||
# tag: ${{ github.ref }} | ||
# prerelease: ${{ !startsWith(github.ref, 'refs/tags/') }} | ||
# overwrite: true | ||
args: --verbose --release --target=${{ matrix.target }} | ||
|
||
- name: Prepare artifacts | ||
run: | | ||
mkdir artifacts | ||
cp target/${{ matrix.target }}/release/indyforge${{ matrix.extension }} artifacts/indyforge-${{ matrix.target }}${{ matrix.extension }} | ||
- name: Upload artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: indyforge-${{ matrix.target }} | ||
path: artifacts/indyforge-${{ matrix.target }}${{ matrix.extension }} | ||
if-no-files-found: error | ||
|
||
- name: Upload Release | ||
if: startsWith(github.ref, 'refs/tags/') | ||
uses: svenstaro/upload-release-action@v2 | ||
with: | ||
repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
file: artifacts/indyforge-${{ matrix.target }}${{ matrix.extension }} | ||
asset_name: indyforge-${{ matrix.target }}${{ matrix.extension }} | ||
tag: ${{ github.ref }} | ||
overwrite: true |
This file contains 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,112 @@ | ||
# Changelog | ||
|
||
All notable changes to this project will be documented in this file. | ||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | ||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
|
||
## [0.6.0] - 2024-11-11 | ||
|
||
### Added | ||
|
||
- Genesis file viewing capability | ||
- Support for both local files and URLs | ||
- Content preview with copy functionality | ||
- Scrollable view for genesis content | ||
- URL-based genesis file loading | ||
- Connection status monitoring and feedback | ||
- Visual connection status indicators | ||
- Periodic connection health checks (every 30 seconds) | ||
- Detailed error messages and logging | ||
- Real-time connection status updates | ||
- Timeout mechanisms | ||
- HTTP client timeout (10 seconds) | ||
- Content reading timeout (5 seconds) | ||
- Overall operation timeout (15 seconds) | ||
- UI-level connection timeout (20 seconds) | ||
- Visual feedback for connection duration | ||
- Improved DID handling and cryptographic operations | ||
- Implementation serves as cross-validation between indy-data-types and aries-askar libraries | ||
- Validates DID:SOV and DID:INDY spec compliance across both implementations | ||
- Confirms identical DID generation from same seed material | ||
- Verifies cryptographic compatibility between libraries | ||
- Ensures consistent verkey generation across implementations | ||
|
||
### Changed | ||
|
||
- Improved error handling | ||
- Better error messages for HTTP failures (404, etc.) | ||
- Clear error states with retry options | ||
- Separated error display from error handling logic | ||
- Added HTTP status code specific error messages | ||
- Enhanced connection management | ||
- State tracking for genesis file changes | ||
- Proper reset of connection state on errors | ||
- Prevention of connection retry spam | ||
- Connection state cleanup on source changes | ||
- UI Improvements | ||
- Added genesis content viewer toggle | ||
- Better error message formatting | ||
- Added retry button for failed connections | ||
- Added spinner during connection attempts | ||
- Separated wallet and genesis file checks | ||
- Progress indicators for long operations | ||
- Cryptographic implementation improvements | ||
- Maintained reference implementation using indy-data-types | ||
- Validated against aries-askar implementation | ||
- Ensured cross-library compatibility | ||
- Verified consistent cryptographic operations | ||
|
||
### Fixed | ||
|
||
- Fixed infinite connection retry on failed URLs | ||
- Fixed borrowing issues with error handling | ||
- Fixed connection state not resetting properly | ||
- Fixed error messages not displaying correctly | ||
- Fixed genesis file content not updating on source change | ||
- Fixed UI state preservation during connection attempts | ||
- Fixed connection timeout handling | ||
- Fixed error state management during retries | ||
- Fixed signing operations | ||
- Verified consistent signing behavior across implementations | ||
- Validated signature compatibility | ||
- Ensured deterministic DID generation | ||
- Confirmed cross-library cryptographic material compatibility | ||
|
||
### Enhanced Logging | ||
|
||
- Added debug logging for genesis file operations | ||
- Added connection attempt logging | ||
- Added error state logging | ||
- Added HTTP request/response logging | ||
- Added timeout and connection state logging | ||
- Added cryptographic operation logging | ||
- Key derivation process logging | ||
- Signing operation details | ||
- DID creation steps | ||
- Transaction signing verification | ||
|
||
### Security | ||
|
||
- Improved key handling | ||
- Validated cryptographic implementations against specifications | ||
- Verified consistent key generation across libraries | ||
- Confirmed deterministic key derivation | ||
- Cross-validated cryptographic operations | ||
|
||
### Code Quality | ||
|
||
- Improved architecture | ||
- Maintained reference implementation for cross-validation | ||
- Demonstrated spec compliance across libraries | ||
- Provided compatibility verification | ||
- Enhanced testing coverage through cross-implementation validation | ||
|
||
### Verification | ||
|
||
- Added cross-implementation validation | ||
- Verified DID:SOV spec compliance between indy-data-types and aries-askar | ||
- Confirmed DID:INDY spec compliance across implementations | ||
- Validated consistent verkey generation | ||
- Demonstrated cryptographic compatibility | ||
- Ensured deterministic output from identical inputs |
Oops, something went wrong.