Skip to content

Commit ed9b2c8

Browse files
committed
update changelog, license year, docs and bump version to v0.7.3
1 parent b239f46 commit ed9b2c8

7 files changed

Lines changed: 38 additions & 20 deletions

File tree

changelog.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
## 0.?.?
1+
## 0.7.3
2+
3+
## Compiler
4+
5+
- Bug fix: `@#name` syntax did not work with names of a single char
26

37
### Tools
48

@@ -8,6 +12,14 @@
812
- Optimized `make_delegate_key_lock`: saved 13 bytes (98-85)
913
- Optimized `make_delegate_key_chain_lock`: saved 13 bytes (128-115)
1014
- Corrected `make_graftap_lock`: added sigflags passthrough parameter
15+
- REPL:
16+
- Changed sigfield macros `~s[1-8]` to `~sf[1-8]`
17+
- Added new `~s` helper that decodes top stack item as utf-8 string
18+
19+
### Misc
20+
21+
- Clarified in docstrings for `int_to_bytes` and `uint_to_bytes` that only the
22+
former is correct for encoding stack values; deprecated `uint_to_bytes`
1123

1224
## 0.7.2
1325

docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1406,7 +1406,7 @@ the committed script to be executed.
14061406
Returns a locking Script for non-native taproot. This Script exists primarily to
14071407
compare against the native taproot lock and the nonnative graftroot lock.
14081408

1409-
## `make_graftap_lock(pubkey: bytes | VerifyKey): -> Script`
1409+
## `make_graftap_lock(pubkey: bytes | VerifyKey, sigflags: str = 00): -> Script`
14101410

14111411
Make a taproot lock committing to the (internal) pubkey and a graftroot lock.
14121412

language_spec.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,9 @@ arguments to ops, e.g. `OP_MERKLEVAL @root` will not work. To see the number of
286286
items held in a cache location, you can use `rcz s"name"` or `@#name`; this will
287287
put the number of items onto the stack as an encoded signed int.
288288

289+
Note that reading and writing multiple values with either this or the assembly
290+
syntax will reverse the order of items.
291+
289292
### Comptime
290293

291294
Version 0.6.0 added two comptime features: inline compilation and inline

license

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
ISC License
22

3-
Copyleft (c) 2025 Jonathan Voss (k98kurz)
3+
Copyright (c) 2026 Jonathan Voss (k98kurz)
44

55
Permission to use, copy, modify, and/or distribute this software
66
for any purpose with or without fee is hereby granted, provided
7-
that the above copyleft notice and this permission notice appear in
7+
that the above copyright notice and this permission notice appear in
88
all copies.
99

1010
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "tapescript"
7-
version = "0.7.3-dev"
7+
version = "0.7.3"
88
authors = [
99
{ name="k98kurz", email="k98kurz@gmail.com" },
1010
]

readme.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ or plugins.
5353
### Write, compile, decompile
5454

5555
See the
56-
[langauge_spec.md](https://github.com/k98kurz/tapescript/blob/v0.7.2/language_spec.md)
57-
and [docs.md](https://github.com/k98kurz/tapescript/blob/v0.7.2/docs.md) files
56+
[langauge_spec.md](https://github.com/k98kurz/tapescript/blob/v0.7.3/language_spec.md)
57+
and [docs.md](https://github.com/k98kurz/tapescript/blob/v0.7.3/docs.md) files
5858
for syntax, operation specifics, and thorough tool documentation.
5959

6060
Once you have a script written, use the `compile_script(code: str) -> bytes`
@@ -74,7 +74,6 @@ values are case-sensitive.
7474
The following functions are also available for VM-compatible serialization:
7575
- `bytes_to_int`
7676
- `int_to_bytes`
77-
- `uint_to_bytes`
7877
- `bytes_to_bool`
7978
- `bytes_to_float`
8079
- `float_to_bytes`
@@ -369,8 +368,8 @@ seemed a bit too much.
369368
However, delegating access after the lock is set still makes sense, and for this
370369
purpose I have included some tooling around delegating access:
371370

372-
- `make_delegate_key_lock` - 98 bytes
373-
- `make_delegate_key_chain_lock` - 128 bytes
371+
- `make_delegate_key_lock` - 85 bytes
372+
- `make_delegate_key_chain_lock` - 115 bytes
374373
- `make_delegate_key_cert` - 105 bytes
375374
- `make_delegate_key_witness` - 173 bytes
376375
- `make_delegate_key_chain_witness` - 66 bytes + 108 bytes per cert
@@ -514,13 +513,17 @@ witnesses for HTLCs and PTLCs:
514513
- `make_ptlc_lock`
515514
- `make_ptlc_witness`
516515
- `make_ptlc_refund_witness`
516+
- `make_timestamp_after_lock`
517+
- `make_timestamp_before_lock`
518+
- `make_timestamp_between_lock`
517519

518520
The general idea behind an HTLC is that the main branch can be unlocked with the
519521
combination of a preimage matching a specific hash and a signature matching the
520522
`receiver_pubkey`, while the refund branch can be unlocked with a signature
521523
matching the `refund_pubkey` only after a timeout has expired. The PTLC by
522524
comparison drops the hash lock and instead locks to a point on the ed25519
523-
curve, i.e. it simply uses a `check_sig` lock.
525+
curve, i.e. it simply uses a `check_sig` lock. 3 additional timestamp lock
526+
generation tools are provided for custom lock composition using time locks.
524527

525528
<details>
526529
<summary>Example</summary>
@@ -707,9 +710,9 @@ In the case where a signature is expected to be validated, the message parts for
707710
the signature must be passed in via the `cache_vals` dict at keys "sigfield[1-8]".
708711
In the case where `OP_CHECK_TRANSFER` or `OP_INVOKE` might be called, the
709712
contracts must be passed in via the `contracts` dict. See the
710-
[check_transfer](https://github.com/k98kurz/tapescript/blob/v0.7.2/language_spec.md#op_check_transfer)
713+
[check_transfer](https://github.com/k98kurz/tapescript/blob/v0.7.3/language_spec.md#op_check_transfer)
711714
and
712-
[invoke](https://github.com/k98kurz/tapescript/blob/v0.7.2/language_spec.md#op_invoke)
715+
[invoke](https://github.com/k98kurz/tapescript/blob/v0.7.3/language_spec.md#op_invoke)
713716
sections in the language_spec.md file for more informaiton about these two ops.
714717

715718
#### Changing flags
@@ -1023,14 +1026,14 @@ python tests/test_e2e_eltoo.py
10231026
python tests/test_e2e_extensions.py
10241027
```
10251028

1026-
There are currently 267 tests and 107 test vectors used for validating the ops,
1029+
There are currently 270 tests and 107 test vectors used for validating the ops,
10271030
compiler, decompiler, and script running functions. This includes 3 e2e tests
10281031
for a proof-of-concept implementation of the eltoo payment channel protocol, and
10291032
e2e tests combining the anonymous multi-hop lock (AMHL) system with adapter
10301033
signatures, as well as tests for the contract system, signature extension
1031-
plugins, hard-forks, and the soft-fork system. There are an additional 8
1032-
security tests, including a test proving the one-way homomorphic quality of
1033-
ed25519 and a test proving that all symmetric script trees share the same root.
1034+
plugins, hard-forks, and the soft-fork system. There are also 8 security tests,
1035+
including a test proving the one-way homomorphic quality of ed25519 and a test
1036+
proving that all symmetric script trees share the same root.
10341037

10351038
## Contributing
10361039

@@ -1042,11 +1045,11 @@ Github.
10421045

10431046
## ISC License
10441047

1045-
Copyleft (c) 2025 Jonathan Voss (k98kurz)
1048+
Copyright (c) 2026 Jonathan Voss (k98kurz)
10461049

10471050
Permission to use, copy, modify, and/or distribute this software
10481051
for any purpose with or without fee is hereby granted, provided
1049-
that the above copyleft notice and this permission notice appear in
1052+
that the above copyright notice and this permission notice appear in
10501053
all copies.
10511054

10521055
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL

tapescript/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
__version__ = '0.7.3-dev'
2+
__version__ = '0.7.3'
33

44
def version() -> str:
55
"""Get the version of the tapescript library."""

0 commit comments

Comments
 (0)