Orgchain v1.14.1: a belt counts only on its seat's own sat
Placement is now a rule of lineage/v0, not just how Orgchain inscribes:
an award counts only if it is inscribed on its recipient's own sat, so any
indexer can check that a belt is soulbound. The reducer compares sats
(satOf): the lab's sat numbers, ord's, or, without ord's sat index, its
satpoints, which two inscriptions share exactly when they share a sat. ord
events now carry the sat number when ord has one. Belts inscribed anywhere
else, as before v1.14, are rejected.
A promotion is another reinscription on the same sat, over the belt before
it: each badge keeps its skill's earlier belts, and Inspect shows the
ladder ("re-inscribed over white (beat 5)"). The sample's sol now goes
white, then green. An award and its recipient's own close no longer
conflict within a block, since both spend the recipient's inscription.
Rehearsed again on Bitcoin Core regtest from height 178: sixteen beats and
133 transactions; ord shows sol's sat carrying sol, its white belt and its
green belt, in order, each belt charmed reinscription and vindicated, and
the compare matches. The fixture is re-recorded.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
This commit is contained in:
1 parent
c8c18b073e
commit
5a7f11e49d
17 files changed
+122
-67
No files matched your search
@@ -40,11 +40,12 @@ transactions and mines one regtest block. `--compare` checks that every event la
|
||||
metadata and parent, that every inscription sits on the same sat (ord's satpoint) with the charms the lab expects (a
|
||||
belt's are ♻️ reinscription and ❤️🔥 vindicated), and that both fold into the same trees. Within a block the miner may
|
||||
order independent events differently from the lab, a join and its adoption included; that changes nothing (`SPEC.md`,
|
||||
sections 2 and 5). Beats 5 and 9 award three belts, each by a three-input reveal that puts it on its seat's own sat. The
|
||||
last four beats sell whole trees: time with its six below it, on an offer whose inputs are the seven coins their nine
|
||||
inscriptions sit in, and acme whole, on an ask that signs one output holding fourteen inscriptions on eleven sats; each
|
||||
tree then splits back at its buyer's keys, one inscribed sat to an output, and ord puts every inscription where the lab
|
||||
does, each belt still on its seat's sat (`SPEC.md`, section 7).
|
||||
sections 2 and 5). Beats 4, 5 and 9 award four belts, each by a three-input reveal that puts it on its seat's own sat:
|
||||
sol's launch belt goes white, then green, two reinscriptions on sol's sat. The last four beats sell whole trees: time
|
||||
with its six below it, on an offer whose inputs are the seven coins their ten inscriptions sit in, and acme whole, on an
|
||||
ask that signs one output holding fifteen inscriptions on eleven sats; each tree then splits back at its buyer's keys,
|
||||
one inscribed sat to an output, and ord puts every inscription where the lab does, each belt still on its seat's sat
|
||||
(`SPEC.md`, section 7).
|
||||
|
||||
`out/` holds the lab backup, test keys included, and is not committed.
|
||||
|
||||
|
||||
@@ -81,7 +81,8 @@ act(lab, 'birth', time, { name: 'astra', kind: 'agent' });
|
||||
await beat('two sends and five births');
|
||||
send(lab, wk, lineage, 2 * SAT);
|
||||
const [docscope] = ['docscope', 'dollhouse', 'doodleloop', 'hearthframe'].map(name => act(lab, 'birth', time, { name, kind: 'org' }));
|
||||
await beat("time's ventures");
|
||||
act(lab, 'award', time, { to: sol, skill: 'launch', belt: 'white' }); // green next beat, re-inscribed over it on sol's sat
|
||||
await beat("time's ventures, and sol's white belt");
|
||||
send(lab, time, sol, SAT);
|
||||
send(lab, time, luna, 0.5 * SAT);
|
||||
act(lab, 'award', time, { to: sol, skill: 'launch', belt: 'green' });
|
||||
|
||||
Reference in new issue
Block a user