Skip to content

Commit d749ba3

Browse files
authored
Merge pull request #166 from bsv-blockchain/bsva-master
update changelog
2 parents 375c065 + 4c38a7a commit d749ba3

File tree

1 file changed

+337
-0
lines changed

1 file changed

+337
-0
lines changed

CHANGELOG.md

Lines changed: 337 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ All notable changes to this project will be documented in this file. The format
44

55
## Table of Contents
66

7+
- [1.1.25 - 2025-05-09](#1124---2025-05-09)
78
- [1.1.24 - 2025-04-24](#1123---2025-04-29)
89
- [1.1.23 - 2025-04-23](#1123---2025-04-23)
910
- [1.1.22 - 2025-03-14](#1122---2025-03-14)
@@ -31,6 +32,342 @@ All notable changes to this project will be documented in this file. The format
3132
- [1.1.0 - 2024-08-19](#110---2024-08-19)
3233
- [1.0.0 - 2024-06-06](#100---2024-06-06)
3334

35+
## [1.1.25] - 2025-05-09
36+
### Fix
37+
- nill pointer
38+
39+
## [1.1.24] - 2025-04-29
40+
### Added
41+
- `transaction.NewBeef`
42+
43+
## [1.1.23] - 2025-04-23
44+
### Added
45+
- `NewBeefFromAtomicBytes`
46+
- `ParseBeef`
47+
- `NewBeefFromTransaction`
48+
- `Beef.FindTransaction`
49+
### Fixed
50+
- Missing nil checks in `beef.go`
51+
- Fix issues with handling of `TxidOnly` in `beef.go`
52+
53+
## [1.1.22] - 2025-03-14
54+
### Updated
55+
- update package to use `github.com/bsv-blockchain/go-sdk` path
56+
57+
## [1.1.21] - 2025-03-12
58+
### Changed
59+
- Add support for AtomicBEEF to `NewTransactionFromBEEF`
60+
61+
## [1.1.20] - 2025-03-05
62+
### Fixed
63+
- Beef transaction ordering
64+
65+
## [1.1.19] - 2025-03-04
66+
### Added
67+
- Dependabot
68+
- Mergify
69+
### Changed
70+
- Parse Beef V1 into a Beef struct
71+
- Fix memory allocation in script interpreter
72+
- Fix Message encryption
73+
- Update golangci-lint configuration and bump version
74+
- Bump go and golangci-lint versions for github actions
75+
76+
## [1.1.18] - 2025-01-28
77+
### Changed
78+
- Added support for BEEF v2 and AtomicBEEF
79+
- Update golang.org/x/crypto from v0.21.0 to v0.31.0
80+
- Update README to highlight examples and improve documentation
81+
- Update golangci-lint configuration to handle mixed receiver types
82+
- Update issue templates
83+
- Improved test coverage
84+
85+
## [1.1.17] - 2024-12-24
86+
### Added
87+
- `ScriptNumber` type
88+
89+
## [1.1.16] - 2024-12-01
90+
### Added
91+
- ArcBroadcaster Status
92+
93+
## [1.1.15] - 2024-11-26
94+
### Changed
95+
- ensure BUMP ordering in BEEF
96+
- Fix arc broadcaster to handle script failures
97+
- support new headers in arc broadcaster
98+
99+
## [1.1.14] - 2024-11-01
100+
### Changed
101+
- Update examples and documentation to reflect `tx.Sign` using script templates
102+
103+
## [1.1.13] - 2024-11-01
104+
### Changed
105+
- Broadcaster examples
106+
107+
### Added
108+
- WOC Broadcaster
109+
- TAAL Broadcaster
110+
- Tests for woc, taal, and arc broadcasters
111+
112+
## [1.1.12] - 2024-10-31
113+
### Fixed
114+
- fix `spv.Verify()` to work with source output (separate fix from 1.1.11)
115+
116+
## [1.1.11] - 2024-10-23
117+
### Fixed
118+
- fix `spv.Verify()` to work with source output
119+
120+
## [1.1.10] - 2024-10-20
121+
Big thanks for contributions from @wregulski
122+
123+
### Changed
124+
- `pubKey.ToDER()` now returns bytes
125+
- `pubKey.ToHash()` is now `pubKey.Hash()`
126+
- `pubKey.SerializeCompressed()` is now `pubKey.Compressed()`
127+
- `pubKey.SerializeUncompressed()` is now `pubKey.Uncompressed()`
128+
- `pubKey.SerializeHybrid()` is now `pubKey.Hybrid()`
129+
- updated `merklepath.go` to use new helper functions from `transaction.merkletreeparent.go`
130+
131+
### Added
132+
- files `spv/verify.go`, `spv/verify_test.go` - chain tracker for whatsonchain.com
133+
- `spv.Verify()` ensures transaction scripts, merkle paths and fees are valid
134+
- `spv.VerifyScripts()` ensures transaction scripts are valid
135+
- file `docs/examples/verify_transaction/verify_transaction.go`
136+
- `publickey.ToDERHex()` returns a hex encoded public key
137+
- `script.Chunks()` helper method for `DecodeScript(scriptBytes)`
138+
- `script.PubKey()` returns a `*ec.PublicKey`
139+
- `script.PubKeyHex()` returns a hex string
140+
- `script.Address()` and `script.Addresses()` helpers
141+
- file `transaction.merkletreeparent.go` which contains helper functions
142+
- `transaction.MerkleTreeParentStr()`
143+
- `transaction.MerkleTreeParentBytes()`
144+
- `transaction.MerkleTreeParents()`
145+
- file `transaction/chaintracker/whatsonchain.go`, `whatsonchain_test.go` - chain tracker for whatsonchain.com
146+
- `chaintracker.NewWhatsOnChain` chaintracker
147+
148+
## [1.1.9] - 2024-10-01
149+
### Changed
150+
- Updated readme
151+
- Improved test coverage
152+
- Update golangci-lint version in sonar workflow
153+
154+
## [1.1.8] - 2024-09-17
155+
### Changed
156+
- Restore Transaction `Clone` to its previous state, and add `ShallowClone` as a more efficient alternative
157+
- Fix the version number bytes in `message`
158+
- Rename `merkleproof.ToHex()` to `Hex()`
159+
- Update golangci-lint version and rules
160+
161+
### Added
162+
- `transaction.ShallowClone`
163+
- `transaction.Hex`
164+
165+
## [1.1.7] - 2024-09-10
166+
- Rework `tx.Clone()` to be more efficient
167+
- Introduce SignUnsigned to sign only inputs that have not already been signed
168+
- Added tests
169+
- Other minor performance improvements.
170+
171+
### Added
172+
- New method `Transaction.SignUnsigned()`
173+
174+
### Changed
175+
- `Transaction.Clone()` does not reconstitute the source transaction from bytes. Creates a new transaction.
176+
177+
## [1.1.6] - 2024-09-09
178+
- Optimize handling of source transaction inputs. Avoid mocking up entire transaction when adding source inputs.
179+
- Minor alignment in ECIES helper function
180+
181+
### Added
182+
- New method `TransactionInput.SourceTxOutput()`
183+
184+
### Changed
185+
- `SetSourceTxFromOutput` changed to be `SetSourceTxOutput`
186+
- Default behavior of `EncryptSingle` uses ephemeral key. Updated test.
187+
188+
## [1.1.5] - 2024-09-06
189+
- Add test for ephemeral private key in electrum encrypt ecies
190+
- Add support for compression for backward compatibility and alignment with ts
191+
192+
### Added
193+
- `NewAddressFromPublicKeyWithCompression`, to `script/address.go` and `SignMessageWithCompression` to `bsm/sign.go`
194+
- Additional tests
195+
196+
## [1.1.4] - 2024-09-05
197+
198+
- Update ECIES implementation to align with the typescript library
199+
200+
### Added
201+
- `primitives/aescbc` directory
202+
- `AESCBCEncrypt`, `AESCBCDecrypt`, `PKCS7Padd`, `PKCS7Unpad`
203+
- `compat/ecies`
204+
- `EncryptSingle`, `DecryptSingle`, `EncryptShared` and `DecryptShared` convenience functions that deal with strings, uses Electrum ECIES and typical defaults
205+
- `ElectrumEncrypt`, `ElectrumDecrypt`, `BitcoreEncrypt`, `BitcoreDecrypt`
206+
- `docs/examples`
207+
- `ecies_shared`, `ecies_single`, `ecies_electrum_binary`
208+
- Tests for different ECIES encryption implementations
209+
210+
### Removed
211+
- Previous ecies implementation
212+
- Outdated ecies example
213+
- encryption.go for vanilla AES encryption (to align with typescript library)
214+
215+
### Changed
216+
- Renamed `message` example to `encrypt_message` for clarity
217+
- Change vanilla `aes` example to use existing encrypt/decrypt functions from `aesgcm` directory
218+
219+
## [1.1.3] - 2024-09-04
220+
221+
- Add shamir key splitting
222+
- Added PublicKey.ToHash() - sha256 hash, then ripemd160 of the public key (matching ts implementation)`
223+
- Added new KeyShares and polynomial primitives, and polynomial operations to support key splitting
224+
- Tests for all new keyshare, private key, and polynomial operations
225+
- added recommended vscode plugin and extension settings for this repo in .vscode directory
226+
- handle base58 decode errors
227+
- additional tests for script/address.go
228+
229+
### Added
230+
- `PrivateKey.ToKeyShares`
231+
- `PrivateKey.ToPolynomial`
232+
- `PrivateKey.ToBackupShares`
233+
- `PrivateKeyFromKeyShares`
234+
- `PrivateKeyFromBackupShares`
235+
- `PublicKey.ToHash()`
236+
- New tests for the new `PrivateKey` methods
237+
- new primitive `keyshares`
238+
- `NewKeyShares` returns a new `KeyShares` struct
239+
- `NewKeySharesFromBackupFormat`
240+
- `KeyShares.ToBackupFormat`
241+
- `polonomial.go` and tests for core functionality used by `KeyShares` and `PrivateKey`
242+
- `util.Umod` in `util` package `big.go`
243+
- `util.NewRandomBigInt` in `util` package `big.go`
244+
245+
### Changed
246+
- `base58.Decode` now returns an error in the case of invalid characters
247+
248+
## [1.1.2] - 2024-09-02
249+
- Fix OP_BIN2NUM to copy bytes and prevent stack corruption & add corresponding test
250+
251+
### Changed
252+
- `opcodeBin2num` now copies value before minimally encoding
253+
254+
## [1.1.1] - 2024-08-28
255+
- Fix OP_RETURN data & add corresponding test
256+
- update release instructions
257+
258+
### Added
259+
- add additional test transaction
260+
- add additional script tests, fix test code
261+
262+
### Changed
263+
- `opcodeReturn` now includes any `parsedOp.Data` present after `OP_RETURN`
264+
- Changed RELEASE.md instructions
265+
266+
## [1.1.0] - 2024-08-19
267+
- porting in all optimizations by Teranode team to their active go-bt fork
268+
- introducing chainhash to remove type coercion on tx hashes through the project
269+
- remove ByteStringLE (replaced by chainhash)
270+
- update opRshift and opLshift modeled after C code in node software and tested against failing vectors
271+
- add tests and vectors for txs using opRshift that were previously failing to verify
272+
- update examples
273+
- lint - change international spellings to match codebase standards, use require instead of assert, etc
274+
- add additional test vectors from known failing transactions
275+
276+
### Added
277+
- `MerkePath.ComputeRootHex`
278+
- `MerklePath.VerifyHex`
279+
280+
### Changed
281+
- `SourceTXID` on `TransactionInput` is now a `ChainHash` instead of `[]byte`
282+
- `IsValidRootForHeight` on `ChainTracker` now takes a `ChainHash` instead of `[]byte`
283+
- `MerklePath.ComputeRoot` now takes a `ChainHash` instead of a hex `string`.
284+
- `MerklePath.Verify` now takes a `ChainHash` instead of hex `string`.
285+
- `Transaction.TxID` now returns a `ChainHash` instead of a hex `string`
286+
- `Transaction.PreviousOutHash` was renamed to `SourceOutHash`, and returns a `ChainHash` instead of `[]byte`
287+
- The `TxID` field of the `UTXO` struct in the `transaction` package is now a `ChainHash` instead of `[]byte`
288+
- Renamed `TransactionInput.SetPrevTxFromOutput` to `SetSourceTxFromOutput`
289+
290+
### Removed
291+
- `TransactionInput.PreviousTxIDStr`
292+
- `Transaction.TxIDBytes`
293+
- `UTXO.TxIDStr` in favor of `UTXO.TxID.String()`
294+
295+
### Fixed
296+
- `opcodeRShift` and `opcodeLShift` was fixed to match node logic and properly execute scripts using `OP_RSHIFT` and `OP_LSHIFT`.
297+
298+
---
299+
300+
## [1.0.0] - 2024-06-06
301+
302+
### Added
303+
- Initial release
304+
305+
---
306+
307+
### Template for New Releases:
308+
309+
Replace `X.X.X` with the new version number and `YYYY-MM-DD` with the release date:
310+
311+
```
312+
## [X.X.X] - YYYY-MM-DD
313+
314+
### Added
315+
-
316+
317+
### Changed
318+
-
319+
320+
### Deprecated
321+
-
322+
323+
### Removed
324+
-
325+
326+
### Fixed
327+
-
328+
329+
### Security
330+
-
331+
```
332+
333+
Use this template as the starting point for each new version. Always update the "Unreleased" section with changes as they're implemented, and then move them under the new version header when that version is released.# CHANGELOG
334+
335+
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
336+
337+
## Table of Contents
338+
339+
- [1.1.25 - 2025-05-09](#1124---2025-05-09)
340+
- [1.1.24 - 2025-04-24](#1123---2025-04-29)
341+
- [1.1.23 - 2025-04-23](#1123---2025-04-23)
342+
- [1.1.22 - 2025-03-14](#1122---2025-03-14)
343+
- [1.1.21 - 2025-03-12](#1121---2025-03-12)
344+
- [1.1.20 - 2025-03-05](#1120---2025-03-05)
345+
- [1.1.19 - 2025-03-04](#1119---2025-03-04)
346+
- [1.1.18 - 2025-01-28](#1118---2025-01-28)
347+
- [1.1.17 - 2024-12-24](#1117---2024-12-24)
348+
- [1.1.16 - 2024-12-01](#1116---2024-12-01)
349+
- [1.1.15 - 2024-11-26](#1115---2024-11-26)
350+
- [1.1.14 - 2024-11-01](#1114---2024-11-01)
351+
- [1.1.13 - 2024-11-01](#1113---2024-11-01)
352+
- [1.1.12 - 2024-10-31](#1112---2024-10-31)
353+
- [1.1.11 - 2024-10-23](#1111---2024-10-23)
354+
- [1.1.10 - 2024-10-20](#1110---2024-10-20)
355+
- [1.1.9 - 2024-10-01](#119---2024-10-01)
356+
- [1.1.8 - 2024-09-17](#118---2024-09-17)
357+
- [1.1.7 - 2024-09-10](#117---2024-09-10)
358+
- [1.1.6 - 2024-09-09](#116---2024-09-09)
359+
- [1.1.5 - 2024-09-06](#115---2024-09-06)
360+
- [1.1.4 - 2024-09-05](#114---2024-09-05)
361+
- [1.1.3 - 2024-09-04](#113---2024-09-04)
362+
- [1.1.2 - 2024-09-02](#112---2024-09-02)
363+
- [1.1.1 - 2024-08-28](#111---2024-08-28)
364+
- [1.1.0 - 2024-08-19](#110---2024-08-19)
365+
- [1.0.0 - 2024-06-06](#100---2024-06-06)
366+
367+
## [1.1.25] - 2025-05-09
368+
### Fix
369+
- nill pointer
370+
34371
## [1.1.24] - 2025-04-29
35372
### Added
36373
- `transaction.NewBeef`

0 commit comments

Comments
 (0)