Skip to content
This repository was archived by the owner on Oct 2, 2024. It is now read-only.

Commit 2ac7285

Browse files
authored
Initial full implementation for multisig DKG (#11)
* rename to ironfish * add .idea to gitignore * chore: update cargo.lock * feat: add js module as submodule * chore: rename js package * chore: set correct hd path for the app * feat: add dkg get_identity method * chore: change CLA and ins for dkg get_identity * chore: add basic makefile * feat: bring zemu test cases * chore: adjust ins for get_identity * feat: add dkg round 1 method * feat: add js changes * feat: return round1 result correctly * feat: refactor dkg get identity * feat: switch to ironfish ledger sdk fork * feat: add round2 handler * feat: add zemu test for round2 * feat: adjust heap size * refactor get identity to allow more than one * create all-in-one test for DKG * feat: bump js package * feat: increase heap size * feat: refactor round2 handler to consume less stack * feat: attempt to reduce stack usage * refactor small return error * feat: add more tests * feat: add .vscode to ignore * feat: a few changes * feat: refactor tests to make them more generic * feat: apply some adjustments * feat: add zemu log fns * feat: use zondax ledger rust sdk repo * remove target from config.toml file * fix some typos * feat: implement round 3 * fix max identity generation * feat: remove get keys handler * feat: remove no required code * feat: refactor tests * feat: add logs * feat: remove unused code * feat: use nvm buffer to receive data * feat: improve logging * feat: inline never fn * feat: refactor parse tx for round 3 * feat: refactor data receiver * feat: update dep * feat: update dep * feat: alloc required capacity for vecs * feat: udpate deps * feat: add more log lines * feat: add new commands (#3) - dkg sign - dkg get commitment - dkg get keys * feat: retrieve view, proof and public keys (#4) * feat: implement round3 minimal (#5) * feat: implement round3 minimal * feat: update yarn lock * feat: update js package reference * feat: craft test tx, signi it and verify (#7) * feat: check public address * wip: create valid tx * wip: keep integration tx creation * feat: rename tests per device * feat: complete whole dkg process (run + signing) * feat: use native asset id * feat: use correct spend method on tx crafting * feat: convert nonces to commitments * feat: apply many checks on buffer read and error handling (#8) * feat: add get nonces cmd, fix sign cmd * feat: adjust optimization level, and increase heap * feat: add comments about new discoveries * feat: increase buffer to fit 4 participants * feat: concentrate dkg keys fns, and save input data from round1 (#9) * feat: add new get public package method, and complete test case (#10) * feat: validate signed tx status * feat: add zemu test for 4, 3 and 2 participants
1 parent d9c3deb commit 2ac7285

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+9383
-540
lines changed

.cargo/config.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[target.nanosplus]
22
runner = "speculos -a=1 --model=nanosp"
33

4-
[build]
5-
target = "nanosplus"
4+
[env]
5+
HEAP_SIZE = "16300"
66

77
[unstable]
88
build-std = ["core", "alloc"]
9-
build-std-features = ["compiler-builtins-mem"]
9+
build-std-features = ["compiler-builtins-mem"]

.github/workflows/python_tests_checks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Checks on the Python tests
22

3-
# This workflow performs some checks on the Python client used by the Boilerplate tests
3+
# This workflow performs some checks on the Python client used by the Ironfish tests
44
# It is there to help us maintain a level of quality in our codebase and does not have to be kept on forked
55
# applications.
66

@@ -16,7 +16,7 @@ on:
1616
jobs:
1717

1818
lint:
19-
name: Boilerplate client linting
19+
name: Ironfish client linting
2020
runs-on: ubuntu-latest
2121
steps:
2222
- name: Clone

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,8 @@ __pycache__/
2121
# Virtual env for sideload (macOS and Windows)
2222
ledger/
2323
# Build directory
24-
build/
24+
build/
25+
26+
.idea
27+
.vscode
28+
tmp

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "js"]
2+
path = js
3+
url = https://github.com/Zondax/ledger-ironfish-js

0 commit comments

Comments
 (0)