File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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" ,
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}
Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ import {
3434 cnsTld ,
3535} from "./setup" ;
3636import { getBatchInfo } from "./helpers" ;
37+ import reservedHashes from "./reservedHashes" ;
3738
3839const app = express ( ) ;
3940app . 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 ) => {
You can’t perform that action at this time.
0 commit comments