-
Notifications
You must be signed in to change notification settings - Fork 498
/
CHANGES
300 lines (231 loc) · 8.92 KB
/
CHANGES
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
0.92.20230326
-------------
* fixed https://github.com/richardkiss/pycoin/issues/361
0.92.20220529
-------------
* support ubuntu-22 with python implementation of ripemd160
0.92.20220213
-------------
* fix disassembly bug for `OP_X` for X>1
* fix litecoin testnet p2sh addresses
0.92.20220212
-------------
* add (beta) support for pay-to-taproot (P2TR)
* add support for Groestlcoin testnet and regtest
0.91.20210515
-------------
* add support for BIP49 ("ypub") and BIP88 ("zpub")
* change how `override_network` is implemented
0.90.20201031
-------------
* made sqlite3 optional
Version 0.90.20200322
---------------------
* fix crasher due to openssl version on Mac OS
* fix problem with blockcypher provider
* add support for keywords sig_hash_types_to_try, signature_hints_for_public_pair to solver
* add support for generating Digibyte addresses
* update to modern LTC address
* build with pyproject.toml
Version 0.90.20190728
---------------------
* fix problem with recid > 1 (probably, hard to test)
* fix problem on Windows
* add Chaucha, STRAT
* fix Dogecoin bip32 prefix
* add documentation for pycoin.networks.Contract.Contract class
Version 0.90.20190630
---------------------
* all API moved under pycoin.symbols.*.network
* rewrite of ecdsa package
* change how ScriptNullData works (arbitrary data now allowed after OP_RETURN)
* first crack at documentation
* added b58, coinc, keychain command-line tools
* removed obsolete genwallet, spend, and bu tools
* "netcode" renamed to "symbol"
* many, many other changes, big and small
Version 0.80
------------
* remove support for (now obsolete) blockr.io
* change intbytes to use six-style names
* add BlockchainInfoProvider.tx_for_tx_hash
* add BECH32 segwit address support (including to ku)
* add msg tool (to generate and verify signatures)
* remove fetch_unspents tool (use tx -i)
* remove cache_tx tool (use tx -C)
* remove BlockHeader (functionality has been rolled into Block)
Version 0.77
------------
* tx cmd will no longer use split pools unless an output is manually specified
* more refactoring of vm classes
* first crack at Sphinx documentation
* fix https://github.com/richardkiss/pycoin/issues/224
* fix https://github.com/richardkiss/pycoin/issues/225
* fixed recipes
Version 0.76
------------
* respin build to fixing a problem with "vm.py" being named "VM.py" in
the 0.75 tar.gz file on pypi
Version 0.75
------------
* add tx --db option to include source transactions
* add pycoin.contrib.who_signed module
* use latest version of tests from bitcoind (script_tests.json, tx_invalid.json,
and tx_valid.json)
* add CHECKSEQUENCEVERIFY working
* add initial support for segregated witness ("segwit")
* rename scripts module to cmds to eliminate confusion with bitcoin script module
* remove obsolete commands genwallet, bitcoin_utils and spend
* changed to more standard "M of N" for multisig
* move networks.py to networks module
* add network/registry.py to allow dynamic registration of non-bitcoin networks
* move messages.py to messages module
* add electrum key support to ku tool
* add bloomfilter.py
* add recipes for multisig
Version 0.70
------------
* major overhaul of the VM and scripting system to make it more compatible with bitcoind
including added over 1000 tests from bitcoind
* added a framework to trace transaction script
* removed chain.com service provider, as they've disabled their API
* removed biteasy service provider, as many transactions were not being returned properly
and there are many other good alternatives
* deprecate PYCOIN_SERVICE_PROVIDERS in favor of PYCOIN_BTC_PROVIDERS
* add Peter Gray's message signing code to pycoin/contrib
* add experimental bitcoind_disk code to read blocks from bitcoind disk database
* deprecate Tx.tx_from_hex (instead use Tx.from_hex)
Version 0.61
------------
* fix a problem creating and parsing scripts with blobs of size >= 256
Version 0.60
------------
* more tests
* prototype support for using native OpenSSL methods to speed up some slow operations.
Set (and export) environment variable PYCOIN_NATIVE=openssl to activate.
* moved intbytes to pycoin.intbytes
* support signing pay-to-scripthash in tx utility
* abolish support for negative numbers in BIP32 key paths
* more networks
* changed how Spendable streams to text and to dicts to put transaction hashes in the
more conventional order. ** WARNING **: if you have built databases of Spendable objects
using these methods, you will need to convert them
* make spend.py script obsolete
* first crack at Insight service, chain.so service, chain.com service
* deprecate Tx.tx_from_hex in favor of Tx.from_hex
* a zillion other minor fixes
Version 0.52
------------
* more networks
* moved some (untested) network code from pycoinnet
* fix a bug in Key which affected ku, and add a unit test (thanks to Michael Perklin for the report)
Version 0.51
------------
* add pycoin.blockchain (which was in github but not setup.py)
Version 0.50
------------
* use tox for testing (see TESTING.txt for more info)
* move blockchain utilities from pycoinnet to pycoin
* completely rework how scripts are identified and solved in an easier-to-extend way
* add fields to Spendable that will work better with wallets (coming soon)
* add Tx.blanked_hash to assist in identifying transactions subject to malleability
* can now sign M of N transactions
* signing just one signature in an M of N transaction supported
* VM improved so multisig validation now supported
* pay-to-script validation now supported
* pay-to-script signing now supported
Version 0.42
------------
* switch TxOut.bitcoin_address to taking netcode, sorry for API thrash
* get pay-to-script addresses recognized in existing transactions
* still can't create or sign them
Version 0.41
------------
* fix version number in setup.py so this is actually the latest version sent by pypi
* allow alternate networks when parsing WIFs
* move to three or four letter netcodes, like BTC
* add pycoin/key/validate.py for methods that validate addresses (including pay-to-script addresses)
NOTE: we can't yet create or parse transactions with pay-to-script addresses
* get block script working
* fix a few other bugs
Version 0.40
------------
This is a pretty major overhaul... sorry for broken API!
* added MANIFEST.in
* initial support for Litecoin and Dogecoin addresses
New Scripts:
* ku (keys & BIP32 manipulation), replaces bu/bitcoin_utils and genwallet
* tx (transaction manipulation), replaces spend
* fetch_unspent command-line tool
* cache_tx to add a transaction to local cache
* block (to dump contents of a block)
Keys:
* added Key class with alt coin support
* renamed Wallet.py to bip32.py
Tx:
* massive overhaul of Tx class
* remove UnsignedTx class, folding functionality into Tx
* partial signing supported by Tx
* added Spendable class
* Tx objects can now optionally be augmented with data about source coins ("unspents")
* if this data is set, many new methods can be called related to signing or verifying
* easy integration with TxDB class to set unspents
* deterministic signing of TxIn according to RFC6979
* limit S values in preparation for version 3 transactions
* tx_utils helper to make it dead simple to create new, signed transactions
* create_tx and create_signed_tx
Services:
* new support for blockr.io and biteasy.com
* services now integrated with environment variables:
* PYCOIN_SERVICE_PROVIDERS
* PYCOIN_CACHE_DIR
* a new TxDB class
* looks like a dictionary
* transparently uses configured services
* caches fetched transactions
Version 0.26
------------
* fixed Block.repr
* more testnet support
Version 0.25
------------
* improve display in satoshi_to_btc
* add TxOut.bitcoin_address
* allow UnsignedTx to be streamed and parsed
Version 0.24
------------
* add some support for testnet
* add support for ripemd160 in Google App Engine
* add a BIP32 wallet subkey cache
Version 0.23
------------
* fixed two bugs specific to Python 2.7 (thanks to Peter D. Gray)
Version 0.22
------------
* now works with Python 3.2
* added "bu" command-line utility
* improvements to "spend" command-line utility
* added some blockchain.info utilities
* first crack at transaction fee conventions
* rename public_pair_from_sec to sec_to_public_pair
Version 0.20
------------
* transaction signing is much easier to use now
* massive refactoring of script package
Version 0.14
------------
* a few speed-ups
* fix genwallet script
Version 0.13
------------
* first crack at support for Python 2.7
* rename ripemd160_sha256 to hash160
* add a bunch of pydoc comments
* first crack at genwallet.py utility (need a better name)
* very preliminary crack at spend.py utility
* reduce Tx database that's required to be passed to the "sign" method
to include bare minimum of data (the output script for a given hash/index)
* change ":pub" keypath suffix to ".pub" (still not sure about this)
* lots of refactoring, parameter renaming, moving things around
related to signing and verifying transactions. Better, but still
not perfect.