coderofstuff / app-kaspa Goto Github PK
View Code? Open in Web Editor NEWKaspa Ledger Integration
License: MIT License
Kaspa Ledger Integration
License: MIT License
UI issue only
When sending to an ECDSA address, the SCHNORR representation is used in the ledger device although the funds are ultimately sent to an ECDSA address correctly.
Stax stopped working after API level has updated to 8.
Figure out how to make it work again in the github actions.
With a limited amount of memory in a ledger device, we cannot have more than some small number of inputs. In testing, a Nano S will only allow us to have 14 UTXOS in a transaction.
To support more UTXOs (an arbitrary number, so we're only limited by mass limit), use Merkle Trees.
Reference: https://www.youtube.com/watch?v=n6nEPaE7KZ8
Change in sign_tx
APDU:
Implement the command SIGN_TX
Instruction code: 0x06
Inputs: 14 for Nano S, 128 for Nano SP and Nano X
Outputs: Signature, one input at a time, send in the same order as the inputs
Dependent on LedgerHQ/ledger-secure-sdk#274
When that issue is resolved, this repo should change the underlying blake2b implementation to use the cx.h
-provided function.
import/blake2b.h
fileshash_
functions in sighash.c
cx_blake2b.h
)Initially for developer mode.
Deliverables: https://developers.ledger.com/docs/embedded-app/deliverables-checklist/
Form: https://ledger.typeform.com/Nano-App?typeform-source=developers.ledger.com
Add fuzzing to heavily test the deserialization
~/scripts/kaspa-ledger/app-kaspa ~/scripts/kaspa-ledger/app-kaspa
ledger virtualenv already exists
Looking in indexes: https://pypi.org/simple, https://test.pypi.org/simple/
Collecting pytest (from -r tests/requirements.txt (line 1))
Using cached pytest-7.4.4-py3-none-any.whl.metadata (7.9 kB)
Collecting ragger>=1.6.0 (from ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached https://test-files.pythonhosted.org/packages/cf/8e/287bc16d0b27c769c50a7aa30aaa5d1515bdc65dc304fa20f2509fd142e0/ragger-1.13.1-py3-none-any.whl.metadata (10 kB)
Collecting Jinja2==3.1.2 (from -r tests/requirements.txt (line 4))
Using cached https://test-files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting Flask==2.1.2 (from -r tests/requirements.txt (line 5))
Using cached https://test-files.pythonhosted.org/packages/ba/76/e9580e494eaf6f09710b0f3b9000c9c0363e44af5390be32bb0394165853/Flask-2.1.2-py3-none-any.whl (95 kB)
Collecting safe-pysha3<2.0.0,>=1.0.0 (from -r tests/requirements.txt (line 6))
Using cached safe_pysha3-1.0.4-cp311-cp311-linux_x86_64.whl
Collecting secp256k1>=0.14.0 (from -r tests/requirements.txt (line 7))
Using cached secp256k1-0.14.0-cp311-cp311-linux_x86_64.whl
Collecting Werkzeug==2.2.2 (from -r tests/requirements.txt (line 8))
Using cached https://test-files.pythonhosted.org/packages/c8/27/be6ddbcf60115305205de79c29004a0c6bc53cec814f733467b1bb89386d/Werkzeug-2.2.2-py3-none-any.whl (232 kB)
Collecting MarkupSafe>=2.0 (from Jinja2==3.1.2->-r tests/requirements.txt (line 4))
Using cached https://test-files.pythonhosted.org/packages/fe/21/2eff1de472ca6c99ec3993eab11308787b9879af9ca8bbceb4868cf4f2ca/MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
Collecting itsdangerous>=2.0 (from Flask==2.1.2->-r tests/requirements.txt (line 5))
Using cached https://test-files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting click>=8.0 (from Flask==2.1.2->-r tests/requirements.txt (line 5))
Using cached https://test-files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting iniconfig (from pytest->-r tests/requirements.txt (line 1))
Using cached https://test-files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Collecting packaging (from pytest->-r tests/requirements.txt (line 1))
Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pluggy<2.0,>=0.12 (from pytest->-r tests/requirements.txt (line 1))
Using cached pluggy-1.3.0-py3-none-any.whl.metadata (4.3 kB)
Collecting bip-utils>=2.4.0 (from ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached bip_utils-2.9.0-py3-none-any.whl.metadata (12 kB)
Collecting py-sr25519-bindings<0.3.0,>=0.2.0 (from ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached py_sr25519_bindings-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)
Collecting cffi>=1.3.0 (from secp256k1>=0.14.0->-r tests/requirements.txt (line 7))
Using cached cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting ledgerwallet>=0.2.3 (from ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached https://test-files.pythonhosted.org/packages/f5/57/6ca5bdf650d28231ae91c463476b34d82dbcb01ce758788cd3bd626b12b2/ledgerwallet-0.4.0-py3-none-any.whl.metadata (7.7 kB)
Collecting pyqt5 (from ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached PyQt5-5.15.10-cp37-abi3-manylinux_2_17_x86_64.whl.metadata (2.1 kB)
Collecting pytesseract (from ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached pytesseract-0.3.10-py3-none-any.whl (14 kB)
Collecting speculos>=0.2.8 (from ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached https://test-files.pythonhosted.org/packages/59/c9/719addf2554b84f6228095b56e39c28ac2999bd076e845ca6ffcbce473b9/speculos-0.4.1-py3-none-any.whl.metadata (4.2 kB)
Collecting cbor2~=5.1 (from bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached cbor2-5.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.0 kB)
Collecting coincurve<19.0.0,>=15.0.1 (from bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached coincurve-18.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB)
Collecting crcmod~=1.7 (from bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached crcmod-1.7-cp311-cp311-linux_x86_64.whl
Collecting ecdsa~=0.15 (from bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached ecdsa-0.18.0-py2.py3-none-any.whl (142 kB)
Collecting ed25519-blake2b~=1.4 (from bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached ed25519_blake2b-1.4-cp311-cp311-linux_x86_64.whl
Collecting pycryptodome~=3.6 (from bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached pycryptodome-3.19.1-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.4 kB)
Collecting pynacl~=1.4 (from bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (856 kB)
Collecting pycparser (from cffi>=1.3.0->secp256k1>=0.14.0->-r tests/requirements.txt (line 7))
Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Collecting construct>=2.10 (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached construct-2.10.70-py3-none-any.whl.metadata (4.2 kB)
Collecting cryptography>=2.5 (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl.metadata (5.2 kB)
Collecting hidapi (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached hidapi-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.3 kB)
Collecting intelhex (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached intelhex-2.3.0-py2.py3-none-any.whl (50 kB)
Collecting Pillow (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (9.7 kB)
Collecting protobuf<4,>=3.20 (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached https://test-files.pythonhosted.org/packages/8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any.whl (162 kB)
Collecting requests (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting tabulate (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached https://test-files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl (35 kB)
Collecting toml (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting flask-restful<1.0,>=0.3.9 (from speculos>=0.2.8->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached Flask_RESTful-0.3.10-py2.py3-none-any.whl.metadata (1.0 kB)
Collecting jsonschema<4.18.0,>=3.2.0 (from speculos>=0.2.8->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached jsonschema-4.17.3-py3-none-any.whl (90 kB)
Collecting mnemonic<1.0,>=0.19 (from speculos>=0.2.8->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached https://test-files.pythonhosted.org/packages/57/48/5abb16ce7f9d97b728e6b97c704ceaa614362e0847651f379ed0511942a0/mnemonic-0.21-py3-none-any.whl.metadata (3.4 kB)
Collecting Pillow (from ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl (3.4 MB)
Collecting pyelftools<1.0,>=0.27 (from speculos>=0.2.8->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached pyelftools-0.30-py2.py3-none-any.whl.metadata (381 bytes)
Collecting PyQt5-sip<13,>=12.13 (from pyqt5->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached PyQt5_sip-12.13.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (504 bytes)
Collecting PyQt5-Qt5>=5.15.2 (from pyqt5->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached PyQt5_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl (59.9 MB)
Collecting asn1crypto (from coincurve<19.0.0,>=15.0.1->bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached asn1crypto-1.5.1-py2.py3-none-any.whl (105 kB)
Collecting six>=1.9.0 (from ecdsa~=0.15->bip-utils>=2.4.0->ragger>=1.6.0->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting aniso8601>=0.82 (from flask-restful<1.0,>=0.3.9->speculos>=0.2.8->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached aniso8601-9.0.1-py2.py3-none-any.whl (52 kB)
Collecting pytz (from flask-restful<1.0,>=0.3.9->speculos>=0.2.8->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached pytz-2023.3.post1-py2.py3-none-any.whl.metadata (22 kB)
Collecting attrs>=17.4.0 (from jsonschema<4.18.0,>=3.2.0->speculos>=0.2.8->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached https://test-files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Collecting pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 (from jsonschema<4.18.0,>=3.2.0->speculos>=0.2.8->ragger[speculos]>=1.6.0->-r tests/requirements.txt (line 2))
Using cached https://test-files.pythonhosted.org/packages/3d/fc/ebf798e52db8052fc64979950272cb352066700b1918d0360341a3952814/pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (27 kB)
Collecting charset-normalizer<4,>=2 (from requests->ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests->ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests->ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached urllib3-2.1.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests->ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3))
Using cached certifi-2023.11.17-py3-none-any.whl.metadata (2.2 kB)
Requirement already satisfied: setuptools>=19.0 in ./ledger/lib/python3.11/site-packages (from hidapi->ledgerwallet>=0.2.3->ragger[ledgerwallet]>=1.6.0->-r tests/requirements.txt (line 3)) (69.0.2)
Using cached pytest-7.4.4-py3-none-any.whl (325 kB)
Using cached https://test-files.pythonhosted.org/packages/cf/8e/287bc16d0b27c769c50a7aa30aaa5d1515bdc65dc304fa20f2509fd142e0/ragger-1.13.1-py3-none-any.whl (141 kB)
Using cached bip_utils-2.9.0-py3-none-any.whl (588 kB)
Using cached cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (464 kB)
Using cached https://test-files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl (97 kB)
Using cached https://test-files.pythonhosted.org/packages/f5/57/6ca5bdf650d28231ae91c463476b34d82dbcb01ce758788cd3bd626b12b2/ledgerwallet-0.4.0-py3-none-any.whl (33 kB)
Using cached https://test-files.pythonhosted.org/packages/fe/21/2eff1de472ca6c99ec3993eab11308787b9879af9ca8bbceb4868cf4f2ca/MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
Using cached pluggy-1.3.0-py3-none-any.whl (18 kB)
Using cached https://test-files.pythonhosted.org/packages/59/c9/719addf2554b84f6228095b56e39c28ac2999bd076e845ca6ffcbce473b9/speculos-0.4.1-py3-none-any.whl (12.0 MB)
Using cached PyQt5-5.15.10-cp37-abi3-manylinux_2_17_x86_64.whl (8.2 MB)
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Using cached cbor2-5.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (235 kB)
Using cached construct-2.10.70-py3-none-any.whl (63 kB)
Using cached cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl (4.4 MB)
Using cached Flask_RESTful-0.3.10-py2.py3-none-any.whl (26 kB)
Using cached https://test-files.pythonhosted.org/packages/57/48/5abb16ce7f9d97b728e6b97c704ceaa614362e0847651f379ed0511942a0/mnemonic-0.21-py3-none-any.whl (92 kB)
Using cached pycryptodome-3.19.1-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
Using cached pyelftools-0.30-py2.py3-none-any.whl (177 kB)
Using cached PyQt5_sip-12.13.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl (346 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached hidapi-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (923 kB)
Using cached https://test-files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl (60 kB)
Using cached certifi-2023.11.17-py3-none-any.whl (162 kB)
Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached https://test-files.pythonhosted.org/packages/3d/fc/ebf798e52db8052fc64979950272cb352066700b1918d0360341a3952814/pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (120 kB)
Using cached urllib3-2.1.0-py3-none-any.whl (104 kB)
Using cached pytz-2023.3.post1-py2.py3-none-any.whl (502 kB)
Installing collected packages: safe-pysha3, pytz, PyQt5-Qt5, pyelftools, py-sr25519-bindings, intelhex, ed25519-blake2b, crcmod, asn1crypto, aniso8601, urllib3, toml, tabulate, six, pyrsistent, PyQt5-sip, pycryptodome, pycparser, protobuf, pluggy, Pillow, packaging, mnemonic, MarkupSafe, itsdangerous, iniconfig, idna, hidapi, construct, click, charset-normalizer, certifi, cbor2, attrs, Werkzeug, requests, pytest, pytesseract, pyqt5, jsonschema, Jinja2, ecdsa, cffi, secp256k1, pynacl, Flask, cryptography, coincurve, ledgerwallet, flask-restful, bip-utils, speculos, ragger
Successfully installed Flask-2.1.2 Jinja2-3.1.2 MarkupSafe-2.1.3 Pillow-9.5.0 PyQt5-Qt5-5.15.2 PyQt5-sip-12.13.0 Werkzeug-2.2.2 aniso8601-9.0.1 asn1crypto-1.5.1 attrs-23.2.0 bip-utils-2.9.0 cbor2-5.5.1 certifi-2023.11.17 cffi-1.16.0 charset-normalizer-3.3.2 click-8.1.7 coincurve-18.0.0 construct-2.10.70 crcmod-1.7 cryptography-41.0.7 ecdsa-0.18.0 ed25519-blake2b-1.4 flask-restful-0.3.10 hidapi-0.14.0 idna-3.6 iniconfig-2.0.0 intelhex-2.3.0 itsdangerous-2.1.2 jsonschema-4.17.3 ledgerwallet-0.4.0 mnemonic-0.21 packaging-23.2 pluggy-1.3.0 protobuf-3.20.3 py-sr25519-bindings-0.2.0 pycparser-2.21 pycryptodome-3.19.1 pyelftools-0.30 pynacl-1.5.0 pyqt5-5.15.10 pyrsistent-0.20.0 pytesseract-0.3.10 pytest-7.4.4 pytz-2023.3.post1 ragger-1.13.1 requests-2.31.0 safe-pysha3-1.0.4 secp256k1-0.14.0 six-1.16.0 speculos-0.4.1 tabulate-0.9.0 toml-0.10.2 urllib3-2.1.0
[notice] A new release of pip is available: 23.3.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
Collecting ledgerblue
Using cached ledgerblue-0.1.48-py3-none-any.whl
Requirement already satisfied: pyelftools<1.0,>=0.29 in ./ledger/lib/python3.11/site-packages (from ledgerblue) (0.30)
Requirement already satisfied: hidapi>=0.7.99 in ./ledger/lib/python3.11/site-packages (from ledgerblue) (0.14.0)
Requirement already satisfied: protobuf>=2.6.1 in ./ledger/lib/python3.11/site-packages (from ledgerblue) (3.20.3)
Collecting pycryptodomex>=3.6.1 (from ledgerblue)
Using cached pycryptodomex-3.19.1-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.4 kB)
Collecting future (from ledgerblue)
Using cached future-0.18.3-py3-none-any.whl
Collecting ecpy>=0.9.0 (from ledgerblue)
Using cached ECPy-1.2.5-py3-none-any.whl (43 kB)
Requirement already satisfied: pillow>=3.4.0 in ./ledger/lib/python3.11/site-packages (from ledgerblue) (9.5.0)
Collecting python-u2flib-host>=3.0.2 (from ledgerblue)
Using cached python_u2flib_host-3.0.3-py3-none-any.whl
Collecting websocket-client>=0.56.0 (from ledgerblue)
Using cached websocket_client-1.7.0-py3-none-any.whl.metadata (7.9 kB)
Collecting nfcpy>=1.0.4 (from ledgerblue)
Using cached nfcpy-1.0.4-py3-none-any.whl (186 kB)
Collecting bleak>=0.20.1 (from ledgerblue)
Using cached bleak-0.21.1-py3-none-any.whl.metadata (5.3 kB)
Requirement already satisfied: pycryptodome>=3.18.0 in ./ledger/lib/python3.11/site-packages (from ledgerblue) (3.19.1)
Collecting python-gnupg>=0.5.0 (from ledgerblue)
Using cached python_gnupg-0.5.2-py2.py3-none-any.whl.metadata (1.9 kB)
Collecting dbus-fast<3,>=1.83.0 (from bleak>=0.20.1->ledgerblue)
Using cached dbus_fast-2.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (10 kB)
Collecting typing-extensions>=4.7.0 (from bleak>=0.20.1->ledgerblue)
Using cached typing_extensions-4.9.0-py3-none-any.whl.metadata (3.0 kB)
Requirement already satisfied: setuptools>=19.0 in ./ledger/lib/python3.11/site-packages (from hidapi>=0.7.99->ledgerblue) (69.0.2)
Collecting libusb1 (from nfcpy>=1.0.4->ledgerblue)
Using cached libusb1-3.1.0-py3-none-any.whl.metadata (15 kB)
Collecting pyserial (from nfcpy>=1.0.4->ledgerblue)
Using cached pyserial-3.5-py2.py3-none-any.whl (90 kB)
Collecting ndeflib (from nfcpy>=1.0.4->ledgerblue)
Using cached ndeflib-0.3.3-py2.py3-none-any.whl (56 kB)
Collecting pydes (from nfcpy>=1.0.4->ledgerblue)
Using cached pyDes-2.0.1-py2.py3-none-any.whl
Requirement already satisfied: requests in ./ledger/lib/python3.11/site-packages (from python-u2flib-host>=3.0.2->ledgerblue) (2.31.0)
Requirement already satisfied: charset-normalizer<4,>=2 in ./ledger/lib/python3.11/site-packages (from requests->python-u2flib-host>=3.0.2->ledgerblue) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in ./ledger/lib/python3.11/site-packages (from requests->python-u2flib-host>=3.0.2->ledgerblue) (3.6)
Requirement already satisfied: urllib3<3,>=1.21.1 in ./ledger/lib/python3.11/site-packages (from requests->python-u2flib-host>=3.0.2->ledgerblue) (2.1.0)
Requirement already satisfied: certifi>=2017.4.17 in ./ledger/lib/python3.11/site-packages (from requests->python-u2flib-host>=3.0.2->ledgerblue) (2023.11.17)
Using cached bleak-0.21.1-py3-none-any.whl (137 kB)
Using cached pycryptodomex-3.19.1-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
Using cached python_gnupg-0.5.2-py2.py3-none-any.whl (20 kB)
Using cached websocket_client-1.7.0-py3-none-any.whl (58 kB)
Using cached dbus_fast-2.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB)
Using cached typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Using cached libusb1-3.1.0-py3-none-any.whl (62 kB)
Installing collected packages: python-gnupg, pyserial, pydes, ndeflib, libusb1, ecpy, websocket-client, typing-extensions, pycryptodomex, nfcpy, future, dbus-fast, python-u2flib-host, bleak, ledgerblue
Successfully installed bleak-0.21.1 dbus-fast-2.21.0 ecpy-1.2.5 future-0.18.3 ledgerblue-0.1.48 libusb1-3.1.0 ndeflib-0.3.3 nfcpy-1.0.4 pycryptodomex-3.19.1 pydes-2.0.1 pyserial-3.5 python-gnupg-0.5.2 python-u2flib-host-3.0.3 typing-extensions-4.9.0 websocket-client-1.7.0
[notice] A new release of pip is available: 23.3.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
cat: debug/app.map: Nie ma takiego pliku ani katalogu
cat: debug/app.map: Nie ma takiego pliku ani katalogu
nanosp
Prepare directories
[GLYPH] Compiling...
[CC] build/nanos2/obj/address.o
[CC] build/nanos2/obj/app_main.o
[CC] build/nanos2/obj/app_metadata.o
[CC] build/nanos2/obj/bagl.o
[CC] build/nanos2/obj/bagl_display.o
[CC] build/nanos2/obj/bagl_fonts.o
[CC] build/nanos2/obj/bagl_glyphs.o
[CC] build/nanos2/obj/base58.o
[CC] build/nanos2/obj/bip32.o
[CC] build/nanos2/obj/blake2b.o
[CC] build/nanos2/obj/buffer.o
[CC] build/nanos2/obj/cashaddr.o
[CC] build/nanos2/obj/checks.o
[CC] build/nanos2/obj/crypto.o
[CC] build/nanos2/obj/crypto_helpers.o
[AS] build/nanos2/obj/cx_stubs.o
[CC] build/nanos2/obj/cx_wrappers.o
[CC] build/nanos2/obj/debug.o
[CC] build/nanos2/obj/deserialize.o
[CC] build/nanos2/obj/dispatcher.o
[CC] build/nanos2/obj/format.o
[CC] build/nanos2/obj/format_local.o
[CC] build/nanos2/obj/get_app_name.o
[CC] build/nanos2/obj/get_public_key.o
[CC] build/nanos2/obj/get_version.o
[CC] build/nanos2/obj/glyphs.o
[CC] build/nanos2/obj/io.o
[CC] build/nanos2/obj/ledger_assert.o
[CC] build/nanos2/obj/ledger_protocol.o
[CC] build/nanos2/obj/main.o
[CC] build/nanos2/obj/menu_bagl.o
[CC] build/nanos2/obj/menu_nbgl.o
[CC] build/nanos2/obj/nbgl_display_address.o
[CC] build/nanos2/obj/nbgl_display_message.o
[CC] build/nanos2/obj/nbgl_display_transaction.o
[CC] build/nanos2/obj/os.o
[CC] build/nanos2/obj/os_io_seproxyhal.o
[CC] build/nanos2/obj/os_io_task.o
[CC] build/nanos2/obj/os_io_usb.o
[CC] build/nanos2/obj/os_printf.o
[CC] build/nanos2/obj/parser.o
[CC] build/nanos2/obj/personal_message.o
[CC] build/nanos2/obj/pic.o
[CC] build/nanos2/obj/read.o
[CC] build/nanos2/obj/send_reponse.o
[CC] build/nanos2/obj/serialize.o
[CC] build/nanos2/obj/sighash.o
[CC] build/nanos2/obj/sign_msg.o
[CC] build/nanos2/obj/sign_tx.o
[CC] build/nanos2/obj/stack_protector.o
[AS] build/nanos2/obj/stack_protector_init.o
[AS] build/nanos2/obj/svc_call.o
[AS] build/nanos2/obj/svc_cx_call.o
[CC] build/nanos2/obj/swap_utils.o
[CC] build/nanos2/obj/syscalls.o
[CC] build/nanos2/obj/tx_validate.o
[CC] build/nanos2/obj/u2f_impl.o
[CC] build/nanos2/obj/u2f_io.o
[CC] build/nanos2/obj/usbd_ccid_cmd.o
[CC] build/nanos2/obj/usbd_ccid_core.o
[CC] build/nanos2/obj/usbd_ccid_if.o
[CC] build/nanos2/obj/usbd_conf.o
[CC] build/nanos2/obj/usbd_core.o
[CC] build/nanos2/obj/usbd_ctlreq.o
[CC] build/nanos2/obj/usbd_hid.o
[CC] build/nanos2/obj/usbd_impl.o
[CC] build/nanos2/obj/usbd_ioreq.o
[CC] build/nanos2/obj/utils.o
[CC] build/nanos2/obj/ux_flow_engine.o
[CC] build/nanos2/obj/ux_layout_bb.o
[CC] build/nanos2/obj/ux_layout_bn.o
[CC] build/nanos2/obj/ux_layout_bnn.o
[CC] build/nanos2/obj/ux_layout_bnnn.o
[CC] build/nanos2/obj/ux_layout_nn.o
[CC] build/nanos2/obj/ux_layout_nnbnn.o
[CC] build/nanos2/obj/ux_layout_nnn.o
[CC] build/nanos2/obj/ux_layout_nnnn.o
[CC] build/nanos2/obj/ux_layout_pages.o
[CC] build/nanos2/obj/ux_layout_paging.o
[CC] build/nanos2/obj/ux_layout_paging_compute.o
[CC] build/nanos2/obj/ux_layout_pb.o
[CC] build/nanos2/obj/ux_layout_pbb.o
[CC] build/nanos2/obj/ux_layout_pbn.o
[CC] build/nanos2/obj/ux_layout_pn.o
[CC] build/nanos2/obj/ux_layout_pnn.o
[CC] build/nanos2/obj/ux_layout_utils.o
[CC] build/nanos2/obj/ux_legacy.o
[CC] build/nanos2/obj/ux_menulist.o
[CC] build/nanos2/obj/ux_stack.o
[CC] build/nanos2/obj/validate.o
[CC] build/nanos2/obj/varint.o
[CC] build/nanos2/obj/write.o
[LINK] build/nanos2/bin/app.elf
[CP] build/nanos2/bin/app.elf => bin/app.elf
[CP] build/nanos2/bin/app.hex => bin/app.hex
[CP] build/nanos2/dbg/app.map => debug/app.map
[CP] build/nanos2/bin/app.apdu => bin/app.apdu
[CP] build/nanos2/bin/app.sha256 => bin/app.sha256
[CP] build/nanos2/dbg/app.asm => debug/app.asm
Generated random root public key : b'0452f677d4f20234a61d2f57df9be70a6d932d2ae6c17de4ed68907ca4d494a1577af4bfaba98cffe3e74bf2423c936ef07fd4cfd2aeb12fa33d6f04e91f3e9890'
Using test master key b'0452f677d4f20234a61d2f57df9be70a6d932d2ae6c17de4ed68907ca4d494a1577af4bfaba98cffe3e74bf2423c936ef07fd4cfd2aeb12fa33d6f04e91f3e9890'
Using ephemeral key b'040aef479f0705a0482e319ec0bb71d08205c98321d0dfa03f524534bfd189c776e6b214f89575920f6a942f680bf5d94062d4b50ef7fb48abb10b10a044cbfc8f'
Broken certificate chain - loading from user key
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/patryk/scripts/kaspa-ledger/app-kaspa/ledger/lib/python3.11/site-packages/ledgerblue/loadApp.py", line 253, in <module>
loader.createApp(code_length, args.apiLevel, args.dataSize, paramsSize, args.appFlags, args.bootAddr|1)
File "/home/patryk/scripts/kaspa-ledger/app-kaspa/ledger/lib/python3.11/site-packages/ledgerblue/hexLoader.py", line 374, in createApp
self.exchange(self.cla, 0x00, 0x00, 0x00, data)
File "/home/patryk/scripts/kaspa-ledger/app-kaspa/ledger/lib/python3.11/site-packages/ledgerblue/hexLoader.py", line 207, in exchange
return self.scpUnwrap(bytes(self.card.exchange(apdu)))
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/patryk/scripts/kaspa-ledger/app-kaspa/ledger/lib/python3.11/site-packages/ledgerblue/comm.py", line 157, in exchange
raise CommException("Invalid status %04x (%s)" % (sw, possibleCause), sw, response)
ledgerblue.commException.CommException: Exception : Invalid status 511f (Unknown reason)
Can someone tell me why after I allow install from unsafe manager the installation crashes with Exception?
Aim is to avoid having to load an extra blake2b_s
into the stack (241 bytes).
For context, a Nano S stack is only 1024 bytes.
"serialize" was used to make sure that the data we deserialized can be serialized back to the original data.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.