@@ -53,8 +53,8 @@ or plugins.
5353### Write, compile, decompile
5454
5555See 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
5858for syntax, operation specifics, and thorough tool documentation.
5959
6060Once you have a script written, use the ` compile_script(code: str) -> bytes `
@@ -74,7 +74,6 @@ values are case-sensitive.
7474The 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.
369368However, delegating access after the lock is set still makes sense, and for this
370369purpose 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
518520The general idea behind an HTLC is that the main branch can be unlocked with the
519521combination 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
521523matching the ` refund_pubkey ` only after a timeout has expired. The PTLC by
522524comparison 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
707710the signature must be passed in via the ` cache_vals ` dict at keys "sigfield[ 1-8] ".
708711In the case where ` OP_CHECK_TRANSFER ` or ` OP_INVOKE ` might be called, the
709712contracts 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 )
711714and
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 )
713716sections 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
10231026python 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,
10271030compiler, decompiler, and script running functions. This includes 3 e2e tests
10281031for a proof-of-concept implementation of the eltoo payment channel protocol, and
10291032e2e tests combining the anonymous multi-hop lock (AMHL) system with adapter
10301033signatures, 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
10471050Permission to use, copy, modify, and/or distribute this software
10481051for 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
10501053all copies.
10511054
10521055THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
0 commit comments