Skip to content

Instantly share code, notes, and snippets.

@reardencode
Last active December 9, 2024 19:22
Show Gist options
  • Save reardencode/ae982ede45af12fe1ff7248fd6f1958c to your computer and use it in GitHub Desktop.
Save reardencode/ae982ede45af12fe1ff7248fd6f1958c to your computer and use it in GitHub Desktop.
Symmetry Scripts
CTV+CSFS+CCV Symmetry
166
update-script: 33+33+5+23 = 94
stack: 33+65+33 = 131 (or 0)
| (<settlement-n-hash> <sig> <update-n-tree> | )
DEPTH | (<settlement-n-hash> <sig> <update-n-tree> | ) <3|0>
<key> | (<settlement-n-hash> <sig> <update-n-tree> | ) <3|0> <key>
SWAP | (<settlement-n-hash> <sig> <update-n-tree> | ) <key> <3|0>
NOTIF | <key>
<settlement-i-hash> | <key> <settlement-i-hash>
CTV | <key> <settlement-i-hash>
-1 | <key> <settlement-i-hash> -1
ROT | <settlement-i-hash> -1 <key>
-1 | <settlement-i-hash> -1 <key> -1
-1 | <settlement-i-hash> -1 <key> -1 -1
CCV |
1 | 1
ELSE | <settlement-n-hash> <sig> <update-n-tree> <key>
3DUP | <settlement-n-hash> <sig> <update-n-tree> <key> <sig> <update-n-tree> <key>
CSFS | <settlement-n-hash> <sig> <update-n-tree> <key> <1|0>
VERIFY | <settlement-n-hash> <sig> <update-n-tree> <key>
ROT | <settlement-n-hash> <update-n-tree> <key> <sig>
DROP | <settlement-n-hash> <update-n-tree> <key>
-1 | <settlement-n-hash> <update-n-tree> <key> -1
SWAP | <settlement-n-hash> <update-n-tree> -1 <key>
ROT | <settlement-n-hash> -1 <key> <update-n-tree>
0 | <settlement-n-hash> -1 <key> <update-n-tree> 0
CCV |
<S+i+1> | <S+i+1>
CLTV | <S+i+1>
ENDIF | <1|S+i+1>
update-tree: H_TapLeaf(0xc0||cs(<update-script>)||<update-script>)
channel-script: 33+5+9 = 47
| <settlement-n-hash> <sig> <update-n-tree>
TUCK | <settlement-n-hash> <update-n-tree> <sig> <update-n-tree>
<key> | <settlement-n-hash> <update-n-tree> <sig> <update-n-tree> <key>
CSFS | <settlement-n-hash> <update-n-tree> <0|1>
VERIFY | <settlement-n-hash> <update-n-tree>
-1 | <settlement-n-hash> <update-n-tree> -1
-1 | <settlement-n-hash> <update-n-tree> -1 -1
ROT | <settlement-n-hash> -1 -1 <update-n-tree>
0 | <settlement-n-hash> -1 -1 <update-n-tree> 0
CCV |
<S+1> | <S+1>
CLTV | <S+1>
channel-script: TUCK <key> CSFS VERIFY -1 -1 ROT 0 CCV <S+1> CLTV
update-script: DEPTH <key> SWAP NOTIF <settlement-i-hash> CTV -1 ROT -1 -1 CCV 1 ELSE 3DUP CSFS VERIFY ROT DROP -1 SWAP ROT 0 CCV <S+i+1> CLTV ENDIF
CTV+CSFS+VAULT Symmetry
script-fragment: 24
| (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | ) <settlement-i-hash> <S+i+1> <key> <script-fragment>
DEPTH | (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | ) <settlement-i-hash> <S+i+1> <key> <script-fragment> <4|11>
4 | (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | ) <settlement-i-hash> <S+i+1> <key> <script-fragment> <4|11> 4
EQUAL | (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | ) <settlement-i-hash> <S+i+1> <key> <script-fragment> <0|1>
IF | <settlement-i-hash> <S+i+1> <key> <script-fragment>
DROP | <settlement-i-hash> <S+i+1> <key>
2DROP | <settlement-i-hash>
CTV | <settlement-i-hash>
ELSE | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <settlement-i-hash> <S+i+1> <key> <script-fragment>
2SWAP | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key> <script-fragment> <settlement-i-hash> <S+i+1>
CLTV | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key> <script-fragment> <settlement-i-hash> <S+i+1>
2DROP | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key> <script-fragment>
TOALT | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key>
3DUP | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key> <sig> <update-hash> <key>
TOALT | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key> <sig> <update-hash>
CTV | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key> <sig> <update-hash>
2DROP | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key>
CSFS | 0 -1 0 <settlement-n-hash> <S+n+1> <0|1>
VERIFY | 0 -1 0 <settlement-n-hash> <S+n+1>
FROMALT | 0 -1 0 <settlement-n-hash> <S+n+1> <key>
4 | 0 -1 0 <settlement-n-hash> <S+n+1> <key> 4
FROMALT | 0 -1 0 <settlement-n-hash> <S+n+1> <key> 4 <script-fragment>
DUP | 0 -1 0 <settlement-n-hash> <S+n+1> <key> 4 <script-fragment> <script-fragment>
ROT | 0 -1 0 <settlement-n-hash> <S+n+1> <key> <script-fragment> <script-fragment> 4
VAULT | 1
ENDIF |
script: 33+5+33+25+24 = 121
stack: 1+2+1+33+5+65+33 = 140 (or 0)
| (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | )
<settlement-i-hash> | (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | ) <settlement-i-hash>
<S+i+1> | (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | ) <settlement-i-hash> <S+i+1>
<key> | (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | ) <settlement-i-hash> <S+i+1> <key>
<script-fragment> | (0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> | ) <settlement-i-hash> <S+i+1> <key> <script-fragment>
$script-fragment | <1|settlement-i-hash>
channel-script: 12+5+33+25 = 76
| 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash>
<S+1> | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <S+1>
CLTV | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <S+1>
DROP | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash>
CTV | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash>
<key> | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key>
DUP | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key> <key>
TOALT | 0 -1 0 <settlement-n-hash> <S+n+1> <sig> <update-hash> <key>
CSFS | 0 -1 0 <settlement-n-hash> <S+n+1> <0|1>
VERIFY | 0 -1 0 <settlement-n-hash> <S+n+1>
FROMALT | 0 -1 0 <settlement-n-hash> <S+n+1> <key>
4 | 0 -1 0 <settlement-n-hash> <S+n+1> <key> 4
<script-fragment> | 0 -1 0 <settlement-n-hash> <S+n+1> <key> 4 <script-fragment>
DUP | 0 -1 0 <settlement-n-hash> <S+n+1> <key> 4 <script-fragment> <script-fragment>
ROT | 0 -1 0 <settlement-n-hash> <S+n+1> <key> <script-fragment> <script-fragment> 4
VAULT | 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment