add docs (text only)

This commit is contained in:
bot
2026-06-20 09:50:02 -04:00
parent c5a19577a0
commit 443096abae
5 changed files with 1234 additions and 0 deletions

View File

@@ -0,0 +1,145 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1180" height="900" viewBox="0 0 1180 900" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<defs>
<marker id="arr" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L8,3 L0,6 Z" fill="#9da7b3"/>
</marker>
<style>
.bg{fill:#0d1117}
.edge{stroke:#9da7b3;stroke-width:1.6;fill:none;marker-end:url(#arr)}
.lbl{fill:#9da7b3;font-size:12px}
.start{fill:#1f6feb;stroke:#388bfd}
.dec{fill:#21262d;stroke:#8b949e}
.rebuild{fill:#143d2b;stroke:#2ea043}
.inval{fill:#4a1d22;stroke:#e83845}
.ok{fill:#1c2a3a;stroke:#2bc8ed}
.term{fill:#2d333b;stroke:#8b949e}
text{fill:#e6edf3;font-size:13px}
.ttl{font-size:13px;font-weight:600}
.sub{font-size:11px;fill:#9da7b3}
.leg{font-size:12px}
</style>
</defs>
<rect class="bg" x="0" y="0" width="1180" height="900"/>
<!-- Title -->
<text x="24" y="34" font-size="20" font-weight="700">BAL — Inheritance change decision flow</text>
<text x="24" y="56" class="sub">What happens to your pre-signed transactions when you change the will (v0.3.3)</text>
<!-- Legend -->
<g transform="translate(760,76)">
<rect class="rebuild" x="0" y="0" width="18" height="14" rx="3"/><text x="24" y="12" class="leg">Rebuild (no on-chain fee)</text>
<rect class="inval" x="0" y="22" width="18" height="14" rx="3"/><text x="24" y="34" class="leg">Invalidate on-chain (real fee)</text>
<rect class="dec" x="0" y="44" width="18" height="14" rx="3"/><text x="24" y="56" class="leg">Decision</text>
<rect class="ok" x="0" y="66" width="18" height="14" rx="3"/><text x="24" y="78" class="leg">Coherent / final</text>
</g>
<!-- A start -->
<rect class="start" x="430" y="80" width="320" height="44" rx="22"/>
<text x="590" y="107" text-anchor="middle" class="ttl">Change something → press Prepare / Check</text>
<!-- B heirs defined -->
<polygon class="dec" points="590,140 720,170 590,200 460,170"/>
<text x="590" y="174" text-anchor="middle">Heirs defined?</text>
<path class="edge" d="M590,124 L590,140"/>
<!-- C threshold future -->
<polygon class="dec" points="590,222 760,256 590,290 420,256"/>
<text x="590" y="254" text-anchor="middle">Check-Alive threshold</text>
<text x="590" y="270" text-anchor="middle" class="sub">in the future?</text>
<path class="edge" d="M590,200 L590,222"/>
<text x="600" y="216" class="lbl">Yes</text>
<!-- B No -> stop -->
<rect class="term" x="120" y="148" width="200" height="44" rx="8"/>
<text x="220" y="168" text-anchor="middle">Heirs not defined</text>
<text x="220" y="184" text-anchor="middle" class="sub">stop</text>
<path class="edge" d="M460,170 L320,170"/>
<text x="388" y="162" class="lbl">No</text>
<!-- C No -> INV1 -->
<rect class="inval" x="60" y="234" width="240" height="48" rx="8"/>
<text x="180" y="254" text-anchor="middle" class="ttl">Invalidate on-chain</text>
<text x="180" y="270" text-anchor="middle" class="sub">CheckAliveError (threshold passed)</text>
<path class="edge" d="M420,256 L300,256"/>
<text x="330" y="250" class="lbl">No</text>
<!-- D earlier? -->
<polygon class="dec" points="590,312 800,350 590,388 380,350"/>
<text x="590" y="346" text-anchor="middle">VALID tx with locktime</text>
<text x="590" y="362" text-anchor="middle" class="sub">earlier than the new date? (anticipate)</text>
<path class="edge" d="M590,290 L590,312"/>
<!-- D Yes -> E -->
<polygon class="dec" points="930,312 1110,350 930,388 750,350"/>
<text x="930" y="346" text-anchor="middle">Already signed</text>
<text x="930" y="362" text-anchor="middle" class="sub">or sent?</text>
<path class="edge" d="M800,350 L750,350"/>
<text x="772" y="344" class="lbl">Yes (earlier)</text>
<!-- E No -> R1 rebuild -->
<rect class="rebuild" x="820" y="410" width="220" height="48" rx="8"/>
<text x="930" y="430" text-anchor="middle" class="ttl">Rebuild only</text>
<text x="930" y="446" text-anchor="middle" class="sub">no on-chain cost</text>
<path class="edge" d="M930,388 L930,410"/>
<text x="940" y="402" class="lbl">Not signed</text>
<!-- E Yes -> INV2 -->
<rect class="inval" x="820" y="476" width="240" height="48" rx="8"/>
<text x="940" y="496" text-anchor="middle" class="ttl">Invalidate on-chain FIRST</text>
<text x="940" y="512" text-anchor="middle" class="sub">WillExpired</text>
<path class="edge" d="M1010,386 C1090,430 1080,460 1010,476"/>
<text x="1058" y="430" class="lbl">Signed</text>
<!-- D No -> F -->
<polygon class="dec" points="430,420 620,458 430,496 240,458"/>
<text x="430" y="452" text-anchor="middle">Executor / fee /</text>
<text x="430" y="468" text-anchor="middle" class="sub">heirs unchanged?</text>
<path class="edge" d="M520,380 C470,400 450,408 440,420"/>
<text x="500" y="404" class="lbl">No</text>
<!-- F Nothing changed -> OK -->
<rect class="ok" x="40" y="436" width="180" height="44" rx="8"/>
<text x="130" y="456" text-anchor="middle" class="ttl">Do nothing</text>
<text x="130" y="472" text-anchor="middle" class="sub">still coherent</text>
<path class="edge" d="M240,458 L220,458"/>
<text x="226" y="452" class="lbl">Same</text>
<!-- F fee/exec/heir -> G -->
<polygon class="dec" points="430,524 640,562 430,600 220,562"/>
<text x="430" y="556" text-anchor="middle">POSTPONE of an</text>
<text x="430" y="572" text-anchor="middle" class="sub">already signed/sent tx?</text>
<path class="edge" d="M430,496 L430,524"/>
<text x="440" y="516" class="lbl">Changed (fee / executor / heir / %)</text>
<!-- G No -> R4 rebuild -->
<rect class="rebuild" x="40" y="620" width="300" height="48" rx="8"/>
<text x="190" y="640" text-anchor="middle" class="ttl">Rebuild only</text>
<text x="190" y="656" text-anchor="middle" class="sub">HeirNotFound / HeirChange / TxFees / Executor</text>
<path class="edge" d="M340,580 C250,600 220,608 200,620"/>
<text x="250" y="600" class="lbl">No (never signed / pure heir change)</text>
<!-- G Yes -> INV3 -->
<rect class="inval" x="430" y="620" width="300" height="48" rx="8"/>
<text x="580" y="640" text-anchor="middle" class="ttl">Invalidate FIRST, then rebuild</text>
<text x="580" y="656" text-anchor="middle" class="sub">WillPostponed</text>
<path class="edge" d="M520,580 C560,600 570,608 580,620"/>
<text x="560" y="600" class="lbl">Yes (date later + signed)</text>
<!-- SIGN -->
<rect class="start" x="700" y="700" width="260" height="44" rx="22"/>
<text x="830" y="727" text-anchor="middle" class="ttl">Re-sign → Broadcast to executors</text>
<path class="edge" d="M930,458 C1000,560 980,650 920,700"/>
<path class="edge" d="M340,644 C520,700 600,710 700,722"/>
<!-- SB invalidation -->
<rect class="inval" x="120" y="760" width="360" height="48" rx="8"/>
<text x="300" y="780" text-anchor="middle" class="ttl">Sign &amp; broadcast the INVALIDATION tx</text>
<text x="300" y="796" text-anchor="middle" class="sub">on-chain, then Prepare again → rebuild</text>
<path class="edge" d="M180,282 C60,420 40,650 130,760"/>
<path class="edge" d="M940,524 C1000,640 760,740 480,786"/>
<path class="edge" d="M580,668 L420,760"/>
<!-- SB -> SIGN loop -->
<path class="edge" d="M480,784 C620,760 660,740 700,728"/>
<text x="560" y="745" class="lbl">once confirmed</text>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB