forked from karask/python-bitcoin-utils
-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO
55 lines (45 loc) · 2.58 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
SHORT-TERM
- create Address object that covers all addresses and can convert from one to another
- python-ecdsa is vulnerable to minerva timing attacks
. https://github.com/karask/python-bitcoin-utils/security/dependabot/2
. investigate the consequences (how critical) this is for the library
. find a python ecdsa implementation that solves this
. change the code to use the new library
. there are a couple of places where we extend the library for bitcoin-specific calculations; also update using the new library!
- investigate taproot op_addchecksig and add to opcodes?
. other tapscript changes?
. think: differentiate tapscript in code?
SEGWIT-related
- A '00' byte needs to be added for non-witness inputs in between witness (inputs-witnesses are 1-1!) automatically?
. currently adding it manually works fine (see 3 inputs 1 output example)
. think of clean way of automating this (auto-magically adding them could confuse users!)
- segwit v0 and v1 address object instantiates from address, witness program and script
. are all used? test?
- add annex to signature hash (easy, just add in bytes or hex in the method and include)
CLEAN UP
- transaction (input, output, etc) .from_raw code
- segwit examples and get_transaction_segwit_digest
TYPING
- use stubs for mypy to get type hints for external libraries that don't support hints (for now using # type: ignore for external libs)
- python.analysis.useLibraryCodeForTypes is set to false for pyright to not auto-deduce types for external libraries that do not use hint stubs / mypy)
IMPROVE
- test proxy object extensively, students reports it fails sometimes
- make a new proxy object from scratch (test with at least 2/3 of bitcoin core RPC)
DOC-related
- add explicit documentation for each module before members...
- commit docs/usage/proxy.rst
- segwit in documentation
- create jupyter notebooks instead of above documentation?
tests-related
- improve test structure - similar to Bitcoin core
SECURITY
- check https://github.com/advisories/GHSA-wj6h-64fc-37mp and if/how it applies
OTHERLIBS-related
- create HD wallet implementation - very simple - similar to the hdwallet lib that I wrap
- create block object and impl. .from_raw(..) instantiation
OTHER
- create script: clean-less-than-sats 100000 bc1q86gsg4t32...
- create test with 260 outputs (inputs too much trouble) - file: test_extreme_txs.py
- create test with script of 260 and another with 66000 commands
- maybe make RBF the default from now on (like Bitcoin Core)
. will need to change all the tests, unless I add minor hack that uses RBF by default only for taproot