Skip to content

Commit 1954fdb

Browse files
author
Alex Sedighi
authored
feat(clk-gateway): keep set of names reserved (#71)
2 parents 443d99c + 6825e68 commit 1954fdb

5 files changed

Lines changed: 2532 additions & 3 deletions

File tree

clk-gateway/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
"firebase": "^11.0.2",
1414
"firebase-admin": "^13.0.1",
1515
"typescript": "^5.7.2",
16+
"validator": "^13.12.0",
1617
"zksync-ethers": "^6.15.1"
1718
},
1819
"devDependencies": {
1920
"@types/cors": "^2.8.17",
2021
"@types/express": "^5.0.0",
2122
"@types/jest": "^29.5.14",
23+
"@types/validator": "^13.12.2",
2224
"jest": "^29.7.0",
2325
"nodemon": "^3.1.7",
2426
"prettier": "^3.3.3",
@@ -32,6 +34,7 @@
3234
"dev": "nodemon src/index.ts",
3335
"build": "tsc",
3436
"serve": "yarn build && yarn start",
35-
"createToken": "ts-node src/createToken.ts"
37+
"createToken": "ts-node src/createToken.ts",
38+
"createReservedNameHashes": "ts-node src/reservedNames.ts"
3639
}
3740
}

clk-gateway/src/index.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import {
3434
cnsTld,
3535
} from "./setup";
3636
import { getBatchInfo } from "./helpers";
37+
import reservedHashes from "./reservedHashes";
3738

3839
const app = express();
3940
app.use(express.json());
@@ -303,16 +304,24 @@ app.post(
303304
"/registerL2",
304305
[
305306
body("name")
307+
.isLowercase()
308+
.withMessage("Name must be a lowercase string")
306309
.isFQDN()
307310
.withMessage("Name must be a fully qualified domain name")
308311
.custom((name) => {
309312
const [sub, domain, tld] = name.split(".");
310313
if (domain !== cnsDomain || tld !== cnsTld) {
311314
return false;
312315
}
316+
317+
const subHash = keccak256(toUtf8Bytes(sub));
318+
if (reservedHashes.includes(subHash)) {
319+
return false;
320+
}
321+
313322
return true;
314323
})
315-
.withMessage("Invalid domain or tld"),
324+
.withMessage("Invalid domain or tld or reserved subdomain"),
316325
body("owner")
317326
.isString()
318327
.custom((owner) => {

0 commit comments

Comments
 (0)