plans: names move from failed checks the register

This commit is contained in:
shum committed 2026-10-22 05:26:09 +00:00
1 parent a806dac53a
commit f8ae0bfa80
1 file changed
+2 -1
+2 -1
View File
@@ -421,7 +421,7 @@ Both take the read limit. Errors: `404 not_found`, `429 rate_limited`.
| `registering` | the register sent | `registered`, `taken` or `failed` |
| `registered` | the name is the owner's, `confirmations` blocks after the receipt | final |
| `taken` | someone registered the name first | paid: `queued` after `/name`, or `code_issued` after `/code`. A code order ends here, its code released |
| `failed` | the service's retries gave up, or the commitment lapsed | `queued` or `registered` after `/retry`; `queued` after `/name`. A code order keeps its code reserved for 30 days (section 4) |
| `failed` | the service's retries gave up once none of its register transactions can still be mined (each mined, or its nonce taken by another mined transaction), or the commitment lapsed | `queued` or `registered` after `/retry`; `queued` after `/name`. A code order keeps its code reserved for 30 days (section 4) |
| `code_issued` | a paid taken order turned into a prepaid code | final |
The page follows `taken` and `failed` too, since another browser can move them on.
@@ -475,6 +475,7 @@ Finds a name code's orders. Used by Check your code (the name code's verdict and
- Message: `simplex.domains name <registrationId> <labelHash> <length> <duration> <commitment> <sha256(sealed)> <timestamp>`. An `owner` in the body is ignored.
- A body whose fields equal the registration's current ones is a repeat: it answers the view unchanged and counts no move.
- Allowed only (manager's ruling, 2026-10-21): for a paid registration in `taken`; for any registration in `failed`; and for any registration in `committed` whose reveal was refused for its links (`invalid_link`, recorded by the reveal). Never from a `committed` registration that has had no such refusal. Else `bad_request`. The new name may be the same name with other links.
- From `failed`, `/name` first runs `/retry`'s check 1 (section 9) on the current name: a register that went through makes the order `registered`, and `/name` answers `409 registration_changed` with that view, so one payment never registers two names.
- At most `max_order_moves` (3) successful moves per order over its life, counted on success; past that, `409 {"error": "move_limit", "registration": {…the current view}}`. The order stays as it is (`failed`, `taken`, or `committed` with its links refused); the page shows its state with a line to contact SimpleX support and the order's reference, and support settles it by hand, refunding a paid order.
- The order checks run on the new fields: formats, `invalid_name`, existing live orders for the new commitment or this owner and the new hash, other than this registration (`409 order_exists`), the duration for the registration's `years`, `name_taken`, `name_check_unavailable`.
- A paid order: the new name's chain price for the registration's `years` must be at most its `price`, else `409 {"error": "price_too_high", "price": <cents>}`. A cheaper name refunds nothing, which the page says before the buyer chooses.