aboutsummaryrefslogtreecommitdiffstats
path: root/names
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-08 22:06:49 -0700
committerAdam Soltys <[email protected]>2026-10-08 22:06:49 -0700
commit3a11c993baa2fc3a3b0bb754e19d783f5b684912 (patch)
tree223c3960c15eeb1b0ea7537ab1a6087f1f1e4fa3 /names
parent408395bf05c2bb8a129a19392afa356798d98a87 (diff)
downloadcoinosv3-3a11c993baa2fc3a3b0bb754e19d783f5b684912.tar.gz
coinosv3-3a11c993baa2fc3a3b0bb754e19d783f5b684912.zip
POS terminals ring up in the owner's currency: the app sends its currency when minting a terminal token (it sent none, so every terminal priced sales in USD and a $0.03 sale paid out as $0.04 CAD), and a new token retunes the terminals already paired to that name
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'names')
-rw-r--r--names/server.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/names/server.js b/names/server.js
index 9b57ce7..6cd82a1 100644
--- a/names/server.js
+++ b/names/server.js
@@ -938,7 +938,12 @@ Bun.serve({
return json({ ok: true, revoked: n });
}
const token = posMintToken(key, body.currency);
- return json({ token, name, domain, currency: posTokens()[token].currency });
+ // Currency is the merchant's, not the token's: a new token in CAD moves
+ // the terminals already paired to this name to CAD as well.
+ const { currency } = posTokens()[token];
+ for (const v of Object.values(posTokens())) if (v.key === key) v.currency = currency;
+ persist();
+ return json({ token, name, domain, currency });
}
// Operator bootstrap: mint a terminal token for any name.
if (url.pathname === '/admin/pos/token' && req.method === 'POST') {