Files

32 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

# Orgchain (branch `orgchain`)
Super Testnet restyled for lineage, served at https://lineage.yolopreneur.lol/orgchain/.
- Same lab and chain as `main`, plus the tree (below). The rest of the difference is a skin and copy: `src/lineage.css` (loads after `style.css` and
points its tokens at lineage's), a rehearsal guide and lineage branding in `index.html`, the lineage favicon,
relative paths (`vite.config.js` `base: './'`, the recursive preview, license links), the theme following the system
setting under its own storage key, and Inscriboor downloads linking to supertestnet.lol (the extension only connects
there, so the local test wallet is the path here).
- Build: `npm ci && npm run build`, then copy `dist/` to `ventures/lineage/orgchain/` on `teahubxyz/time` `gh-pages`.
Headers (CSP and the rest, matching supertestnet.lol's) come from `ventures/lineage/_headers`, scoped to
`/orgchain/*`.
- Keep in step with `main`: rebase this branch onto `main`, rebuild, recopy.
## The tree (lineage lab keys)
- `src/adapters/lineage-keys.js`: a 24-word lab root; each org's seed is BIP-85 from its parent
(`m/83696968'/39'/0'/24'/<index>'`); each node's wallet is BIP-86 `m/86'/1'/<account>'/0/0`; its npub is NIP-06
`m/44'/1237'/<account>'/0/0`. Orgs use account 0; seats are accounts 1..n of their org's seed. Tested against the
BIP-85, BIP-86 and NIP-06 spec vectors (`tests/lineage.test.js`).
- Lab simplification: like every wallet in this lab, the derived key is used directly as the Taproot output key
(no BIP-86 tweak), so addresses differ from a real BIP-86 wallet's.
- `src/adapters/keyring.js`: the drawing in teahub `docs/lineage.md` as nodes. Indices are never reused. Graduation
retires a leaf org on a derived edge and adds an adopted node with a fresh root.
- `src/adapters/handoff.js`: the bound handoff (OpenOrdex's buy-order direction). The recipient builds a 2-in/2-out
transaction and signs its fee input; the holder countersigns the inscription input. Both are default signatures, so
`chain.js` is unchanged. Not yet: closing (burns), paid handoffs (a third output), open sell orders
(`SIGHASH_SINGLE|ANYONECANPAY` would need the chain to accept 65-byte signatures).
- `src/tree.js` is the panel. The keyring and open claims are saved with the lab (same storage key, optional fields).
- Tests: `npm test` (unit) and `npx playwright test` (`tests/tree.spec.js` rehearses a full graduation;
`tests/flow.spec.js` follows this branch's copy and theme).