Skip to content

Commit

Permalink
Merge pull request #411 from selfcustody/release-24.07.0
Browse files Browse the repository at this point in the history
Release 24.07.0
  • Loading branch information
odudex authored Jul 15, 2024
2 parents 58d6e73 + 7daf672 commit 9eb1bcb
Show file tree
Hide file tree
Showing 547 changed files with 101,908 additions and 95,480 deletions.
37 changes: 30 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@ on:
branches:
- main
- develop
pull_request:

jobs:
build:
strategy:
matrix:
device: [maixpy_m5stickv, maixpy_amigo, maixpy_bit, maixpy_dock, maixpy_yahboom]
device: [maixpy_m5stickv, maixpy_amigo, maixpy_bit, maixpy_dock, maixpy_yahboom, maixpy_cube]
runs-on: ubuntu-latest
services:
registry:
Expand Down Expand Up @@ -43,7 +42,7 @@ jobs:
- name: Build for M5StickV
if: matrix.device == 'maixpy_m5stickv'
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
build-args: DEVICE=maixpy_m5stickv
Expand All @@ -67,7 +66,7 @@ jobs:

- name: Build for Amigo
if: matrix.device == 'maixpy_amigo'
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
build-args: DEVICE=maixpy_amigo
Expand All @@ -91,7 +90,7 @@ jobs:

- name: Build for Bit
if: matrix.device == 'maixpy_bit'
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
build-args: DEVICE=maixpy_bit
Expand All @@ -115,7 +114,7 @@ jobs:

- name: Build for Dock
if: matrix.device == 'maixpy_dock'
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
build-args: DEVICE=maixpy_dock
Expand All @@ -139,7 +138,7 @@ jobs:

- name: Build for Yahboom
if: matrix.device == 'maixpy_yahboom'
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
build-args: DEVICE=maixpy_yahboom
Expand All @@ -160,6 +159,30 @@ jobs:
with:
path: ${{ steps.extract-yahboom.outputs.destination }}
name: build-yahboom

- name: Build for Cube
if: matrix.device == 'maixpy_cube'
uses: docker/build-push-action@v6
with:
context: .
build-args: DEVICE=maixpy_cube
push: true
tags: localhost:5000/selfcustody/krux-builder-cube:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
- name: Extract firmware for Cube
id: extract-cube
if: matrix.device == 'maixpy_cube'
uses: shrink/actions-docker-extract@v3
with:
image: localhost:5000/selfcustody/krux-builder-cube:latest
path: /src/firmware/Kboot/build/.
- name: Upload firmware for Cube
if: matrix.device == 'maixpy_cube'
uses: actions/upload-artifact@v4
with:
path: ${{ steps.extract-cube.outputs.destination }}
name: build-cube

- name: Move cache
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
Expand All @@ -25,7 +25,7 @@ jobs:
- name: Build docs
run: poetry run mkdocs build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
16 changes: 9 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- uses: psf/black@stable
with:
options: "--check --verbose"
Expand Down Expand Up @@ -44,7 +44,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
Expand All @@ -63,7 +63,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Validate translations
run: cd i18n && python3 i18n.py validate

Expand All @@ -76,7 +76,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
Expand All @@ -89,13 +89,13 @@ jobs:
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@main
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
Expand All @@ -105,4 +105,6 @@ jobs:
- name: Build coverage file
run: poetry run pytest --cache-clear --cov src/krux --cov-report xml tests
- name: Upload coverage reports to Codecov with GitHub Action
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
10 changes: 6 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ simulator/krux-screenshots
simulator/screenshots
simulator/sd

!tests/firmware-v0.0.0.bin
!tests/firmware-v0.0.0.bin.badsig
!tests/firmware-v0.0.0.bin.sha256.txt
!tests/firmware-v0.0.0.bin.sig
# allow files: firmware.bin, .sig, .sha256.txt
!tests/*
!tests/files/*

# ignore build-release files
krux-*/ktool*
2 changes: 1 addition & 1 deletion .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@ max-bool-expr=5
max-branches=22

# Maximum number of locals for function / method body.
max-locals=25
max-locals=26

# Maximum number of parents for a class (see R0901).
max-parents=7
Expand Down
89 changes: 89 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,92 @@
# Changelog 24.07.0 - July 15, 2024

### Maix Cube Support
The Maix Cube now has its first official release. This affordable and compact cube-shaped device, equipped with a built-in battery, is an excellent choice for those seeking a discreet option.

### Frozen Code - Speed and Security Improvement
Krux now runs cross-compiled (frozen) Python code instead of real-time compiled code. The Python real-time compiler and REPL have been disabled.

### More Single-sig Script Types Support
Beyond Native Segwit, users can now load Legacy, Nested Segwit, and Taproot script type wallets.

### Accounts Support
Users can now use custom account derivation indexes.

### Wallet Customization Options
New workflow to load wallets, faster for default settings and with more options when custom settings are needed. Wallet's network, script type, single/multisig, and account can be changed during and after loading a wallet.

### BIP85 Support
Generate, export, and load BIP85 child mnemonics.

### Wallet Sans Key
Krux now has a tool to load a trusted wallet descriptor to view addresses without the need for private keys.

### Add BBQr Support
Scan and export PSBTs and wallet descriptors in the compact and efficient BBQr format.

### Update Embit
Embit updated to 0.8.

### Auto Shutdown - Security and Battery Saving Feature
The device will automatically shut down at a configurable time if left on.

### Hide Mnemonics - Security Feature
Disable backup tools and hide private key data when a wallet is loaded.

### PSBT Path Mismatch
Detect and warn the user if the PSBT path differs from the loaded wallet's path. This is useful for users who use multiple script types with the same key, ensuring they use the correct account when sending transactions.

### Show Multisig PSBT Policy When Descriptor is Not Loaded
Ensure you are signing for the correct multisig setup by inspecting PSBT's fingerprints if the wallet descriptor is not loaded. If the descriptor is loaded, verification is done by Krux.

### Status Bar Shows Loaded Fingerprint
The loaded key's fingerprint is now shown in the status bar.

### Fee Percentage of Transaction
Show the transaction's fee as a proportion of the transaction cost, warning if it is greater than 10%.

### Sats/vB
PSBT now displays an accurate estimation of the transaction’s feerate.

### Brightness Control for Maix Cube and M5stickV
Adjust backlight intensity for better viewing and scanning from your Cube or M5stickV.

### Fast Forward for Buttons
Hold the NEXT or PREVIOUS buttons when navigating among letters while typing text to fast forward or backward.

### Add Display Settings for Maix Amigo
Add more display settings for Amigo to allow different display models to work properly.

### Faster Address Scanning and Exploring
The time to scan or display wallet addresses is now less than half compared to the previous version.

### Sign PSBTs Without Fingerprints
Krux will now sign PSBTs even if a fingerprint is not properly set on the coordinator. Krux will still warn the user to set it correctly or use Krux-exported public keys to set their coordinators.

### Dice Rolls Pattern Detection
Krux warns the user if it suspects there are patterns within the actual rolls

### Optimized SD Card Signing
Better suited for large transactions, SD card signing is now more RAM efficient, allowing transactions with +100 inputs to be signed in less than a minute.

### Stand Alone Verifiable Signed PSBTs
As required in BIP174, signed PSBT QR codes and SD card files now contain all the required data to verify the signatures without needing the original, unsigned PSBT.

### Camera Optimizations for Yahboom (ver:1.1) With GC2145 Camera
Recent Yahboom K210 devices (ver:1.1) come with the GC2145 camera instead of the OV2640 (ver:1.0). Optimizations and features, such as anti-glare, have been added for the new camera.

### Yahboom and Cube Devices Added to Simulator
Simulator can now run as M5stickV, Amigo, Dock, Yahboom, and Cube.

### Files sorted in SD file explorer
The SD file explorer now sorts files in ascending order, showing directories first.

### Receive or change address now starts with the index 0
Address explorer now shows receive and change address starting at index 0 instead of number 1.

### Other Small Fixes and Code Optimizations
Bugfixes, optimizations and code refactoring.

# Changelog 24.03.0 - March 12, 2024

## Changes
Expand Down
Loading

0 comments on commit 9eb1bcb

Please sign in to comment.