| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
account, tell names.coinos.io which v3 identity may claim it (MIGRATE_TOKEN), with retries; without the grant the registrar squat guard refused every migrated claim
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
|
| |
|
|
|
|
|
|
|
|
| |
"Move my balance and address to coinos v3" wrapped on a phone; the
paragraph above already says what happens, so the button is just
"Migrate". The destination row went with it — it only ever said "your
coinos v3 wallet".
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
|
| |
|
|
|
|
|
|
|
|
| |
Renaming to <name>v2 was a hack for freeing the username, and v3/v4/v9
fallbacks made it worse. The page now sweeps the balance and sets the
new `migrated` flag: the registrar takes over receiving for the name
while the old account keeps working here, unchanged.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
|
| |
|
|
|
|
|
|
|
|
| |
The server enforces /^[\p{L}\p{N}]{2,24}$/u, so <name>_v2 was rejected
outright. Candidates are <name>v2, v3, … each trimmed to fit the 24-char
limit (so a long username still lands inside it), and the rename walks
to the next one if a retired name is already taken.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
|
| |
|
|
|
|
|
|
|
|
| |
It's an npub-shaped placeholder, and the whole point of the page is that
the user keeps their real username — seeing "[email protected]" as the
destination just reads as a mistake. The row says "your coinos v3
wallet" instead.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two fixes from the first live test:
The POST went out from the browser, where $lib/utils' base is "" — so
it hit the SvelteKit page route and came back "POST method not allowed".
Payments in this app all run server-side with auth(cookies), because
that's where the session token is usable; /migrate is a form action now
like the rest of the send flows.
And the routing reserve is gone: the ASP's node has two direct channels
to ln.coinos.io, so a sweep is one hop and costs nothing. It sends the
full balance, only retrying 0.5% lighter if a payment actually comes
back short.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
|
| | |
|
|
|
coinos v3 links here with ?to=<the user's new payment address>&back=<url>.
The user is already signed in on this site, so no password or key has to
travel anywhere: we fetch an invoice from the v3 registrar for the
balance (less a small routing reserve), pay it, then rename the account
to <username>_v2 — which releases the username so v3's registrar will
let them claim it. Old account stays, renamed, and stops receiving.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
|