dotNS Slither Report

Generated 2026-10-30 16:30 UTC | 215 findings

High

3

Medium

56

Low

95

Informational

59

High (3)

Check Description Location
arbitrary-send-eth DotnsRegistrarController._seedReleasePosition(address,uint256,address,uint256) (contracts/registrars/DotnsRegistrarContr contracts/registrars/DotnsRegistrarController.sol:498
arbitrary-send-eth Multicall3.aggregate3Value(Multicall3.Call3Value[]) (contracts/utils/Multicall3.sol#159-190) sends eth to arbitrary user contracts/utils/Multicall3.sol:159
uninitialized-state DotnsNameEscrow._entriesByRecipient (contracts/escrow/DotnsNameEscrow.sol#105) is never initialized. It is used in: - D contracts/escrow/DotnsNameEscrow.sol:105

Medium (56)

Check Description Location
incorrect-equality DotnsNameWhitelist._expiryOf(IDotnsNameWhitelist.NameRecord) (contracts/whitelist/DotnsNameWhitelist.sol#541-546) uses a contracts/whitelist/DotnsNameWhitelist.sol:541
incorrect-equality DotnsRegistrarController.commit(bytes32) (contracts/registrars/DotnsRegistrarController.sol#145-155) uses a dangerous st contracts/registrars/DotnsRegistrarController.sol:145
reentrancy-no-eth Reentrancy in DotnsPopController.reservePersonhoodName(IDotnsPopController.PersonhoodNameReservation) (contracts/registr contracts/registrars/DotnsPopController.sol:276
reentrancy-no-eth Reentrancy in DotnsPopController._issueDeviceNameWithReservation(IDotnsPopController.DeviceNameIssuanceWithReservation,b contracts/registrars/DotnsPopController.sol:307
reentrancy-no-eth Reentrancy in DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool) (contracts/regist contracts/registrars/DotnsPopController.sol:369
reentrancy-no-eth Reentrancy in DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool) (contracts/regist contracts/registrars/DotnsPopController.sol:369
reentrancy-no-eth Reentrancy in DotnsRegistrar.register(uint256,address,string) (contracts/registrars/DotnsRegistrar.sol#130-161): Extern contracts/registrars/DotnsRegistrar.sol:130
reentrancy-no-eth Reentrancy in DotnsPopController.reservePersonhoodName(IDotnsPopController.PersonhoodNameReservation) (contracts/registr contracts/registrars/DotnsPopController.sol:276
reentrancy-no-eth Reentrancy in DotnsPopController._issueDeviceNameWithReservation(IDotnsPopController.DeviceNameIssuanceWithReservation,b contracts/registrars/DotnsPopController.sol:307
reentrancy-no-eth Reentrancy in DotnsPopController._releasePopRulesSlot(DotnsPopController.Deps,bytes32) (contracts/registrars/DotnsPopCon contracts/registrars/DotnsPopController.sol:1351
uninitialized-local DotnsPopLens._pageNames(address,uint256,uint256).filled (contracts/registrars/DotnsPopLens.sol#171) is a local variable contracts/registrars/DotnsPopLens.sol:171
uninitialized-local DotnsPopController._settlePending(address,uint256).deps (contracts/registrars/DotnsPopController.sol#558) is a local var contracts/registrars/DotnsPopController.sol:558
uninitialized-local DotnsPopController._issueDeviceNameWithReservation(IDotnsPopController.DeviceNameIssuanceWithReservation,bool).deps (con contracts/registrars/DotnsPopController.sol:313
uninitialized-local DotnsPopController.revokeName(string).deps (contracts/registrars/DotnsPopController.sol#449) is a local variable never i contracts/registrars/DotnsPopController.sol:449
uninitialized-local DotnsPopController.isReservedForClaim(string).deps (contracts/registrars/DotnsPopController.sol#624) is a local variable contracts/registrars/DotnsPopController.sol:624
uninitialized-local DotnsPopController.issueDeviceName(IDotnsPopController.DeviceNameIssuance).deps (contracts/registrars/DotnsPopController contracts/registrars/DotnsPopController.sol:247
uninitialized-local DotnsPopController._issueDeviceNameWithReservation(IDotnsPopController.DeviceNameIssuanceWithReservation,bool).reservedH contracts/registrars/DotnsPopController.sol:314
uninitialized-local DotnsRegistrarController.register(IDotnsRegistrarController.Registration).reverse (contracts/registrars/DotnsRegistrarCo contracts/registrars/DotnsRegistrarController.sol:220
uninitialized-local DotnsRegistrarController.registerReserved(IDotnsRegistrarController.Registration).whitelist (contracts/registrars/DotnsR contracts/registrars/DotnsRegistrarController.sol:256
uninitialized-local DotnsPopController.reserveLiteName(IDotnsPopController.DeviceNameIssuance).deps (contracts/registrars/DotnsPopController contracts/registrars/DotnsPopController.sol:253
uninitialized-local DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool).isClaim (contracts/registrars/D contracts/registrars/DotnsPopController.sol:387
uninitialized-local DotnsPopController.prepareDeviceContainer(string).deps (contracts/registrars/DotnsPopController.sol#512) is a local vari contracts/registrars/DotnsPopController.sol:512
uninitialized-local DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool).deviceLabelhash (contracts/regi contracts/registrars/DotnsPopController.sol:412
uninitialized-local DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool).deps (contracts/registrars/Dotn contracts/registrars/DotnsPopController.sol:374
uninitialized-local DotnsPopController._advanceExpiredHead(DotnsPopController.Deps,bytes32,uint256,bool,address).activeHead (contracts/regis contracts/registrars/DotnsPopController.sol:1013
uninitialized-local DotnsPopController.evictReservation(address).deps (contracts/registrars/DotnsPopController.sol#492) is a local variable contracts/registrars/DotnsPopController.sol:492
uninitialized-local DotnsPopLens._pageNames(address,uint256,uint256).seen (contracts/registrars/DotnsPopLens.sol#172) is a local variable ne contracts/registrars/DotnsPopLens.sol:172
uninitialized-local DotnsPopController.evictReservations(string).deps (contracts/registrars/DotnsPopController.sol#477) is a local variable contracts/registrars/DotnsPopController.sol:477
uninitialized-local DotnsPopController.relinquishReservation().deps (contracts/registrars/DotnsPopController.sol#525) is a local variable ne contracts/registrars/DotnsPopController.sol:525
uninitialized-local DotnsPopController.expireReservation(string).deps (contracts/registrars/DotnsPopController.sol#499) is a local variable contracts/registrars/DotnsPopController.sol:499
uninitialized-local DotnsPopController.reservePersonhoodName(IDotnsPopController.PersonhoodNameReservation).deps (contracts/registrars/Dotns contracts/registrars/DotnsPopController.sol:281
uninitialized-local DotnsRegistrarController.register(IDotnsRegistrarController.Registration).setReverseRecord (contracts/registrars/DotnsRe contracts/registrars/DotnsRegistrarController.sol:221
uninitialized-local StringUtils.isNamePath(string).start (contracts/utils/StringUtils.sol#254) is a local variable never initialized contracts/utils/StringUtils.sol:254
unused-return DotnsRegistrarController._clearStaleReservation(IPopRules,address,uint256,string) (contracts/registrars/DotnsRegistrarCo contracts/registrars/DotnsRegistrarController.sol:445
unused-return DotnsRegistry._writeSubnodeToStore(address,bytes32,string) (contracts/registry/DotnsRegistry.sol#370-379) ignores return contracts/registry/DotnsRegistry.sol:370
unused-return DotnsRegistrarController.register(IDotnsRegistrarController.Registration) (contracts/registrars/DotnsRegistrarController contracts/registrars/DotnsRegistrarController.sol:167
unused-return DotnsPopLens._detail(bytes32,string) (contracts/registrars/DotnsPopLens.sol#227-269) ignores return value by (tier) = _p contracts/registrars/DotnsPopLens.sol:227
unused-return DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool) (contracts/registrars/DotnsPopC contracts/registrars/DotnsPopController.sol:369
unused-return DotnsResolver.setAddress(bytes32,address) (contracts/resolvers/DotnsResolver.sol#77-90) ignores return value by (None,cu contracts/resolvers/DotnsResolver.sol:77
unused-return DotnsRegistrar._syncRecipientStore(IStoreFactory,address,address,uint256) (contracts/registrars/DotnsRegistrar.sol#313-3 contracts/registrars/DotnsRegistrar.sol:313
unused-return DotnsNameWhitelist._deactivate(bytes32) (contracts/whitelist/DotnsNameWhitelist.sol#591-597) ignores return value by _ac contracts/whitelist/DotnsNameWhitelist.sol:591
unused-return StoreFactory.initialize(address,address) (contracts/store/StoreFactory.sol#91-102) ignores return value by IDotnsProtoco contracts/store/StoreFactory.sol:91
unused-return DotnsPopController._settlePending(address,uint256) (contracts/registrars/DotnsPopController.sol#551-581) ignores return contracts/registrars/DotnsPopController.sol:551
unused-return DotnsContentResolver._requireNodeOwnerOrOperator(bytes32) (contracts/resolvers/DotnsContentResolver.sol#172-185) ignores contracts/resolvers/DotnsContentResolver.sol:172
unused-return DotnsNameWhitelist.reject(string,address) (contracts/whitelist/DotnsNameWhitelist.sol#251-266) ignores return value by _ contracts/whitelist/DotnsNameWhitelist.sol:251
unused-return StoreFactory.upgradeLabelStoreImplementation(address) (contracts/store/StoreFactory.sol#147-156) ignores return value by contracts/store/StoreFactory.sol:147
unused-return DotnsRegistrar._writeOwnerLabel(address,uint256,string) (contracts/registrars/DotnsRegistrar.sol#380-383) ignores return contracts/registrars/DotnsRegistrar.sol:380
unused-return DotnsPopController._stashPendingClaim(address,string,bytes32) (contracts/registrars/DotnsPopController.sol#870-877) igno contracts/registrars/DotnsPopController.sol:870
unused-return DotnsPopController._validateReservablePersonhoodLabel(DotnsPopController.Deps,string,bool) (contracts/registrars/DotnsPo contracts/registrars/DotnsPopController.sol:1170
unused-return DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool) (contracts/registrars/DotnsPopC contracts/registrars/DotnsPopController.sol:369
unused-return DotnsNameWhitelist._nodeOf(string) (contracts/whitelist/DotnsNameWhitelist.sol#602-604) ignores return value by (None,no contracts/whitelist/DotnsNameWhitelist.sol:602
unused-return DotnsPopController._issueDeviceName(DotnsPopController.Deps,IDotnsPopController.DeviceNameIssuance,bool) (contracts/regi contracts/registrars/DotnsPopController.sol:341
unused-return DotnsNameWhitelist.requestName(string,string,address) (contracts/whitelist/DotnsNameWhitelist.sol#212-240) ignores retur contracts/whitelist/DotnsNameWhitelist.sol:212
unused-return DotnsNameWhitelist._clearClaimants(bytes32,address,string) (contracts/whitelist/DotnsNameWhitelist.sol#566-576) ignores contracts/whitelist/DotnsNameWhitelist.sol:566
unused-return StoreFactory.upgradeUserStoreImplementation(address) (contracts/store/StoreFactory.sol#199-204) ignores return value by contracts/store/StoreFactory.sol:199
unused-return DotnsNameWhitelist._activate(bytes32,string) (contracts/whitelist/DotnsNameWhitelist.sol#581-587) ignores return value b contracts/whitelist/DotnsNameWhitelist.sol:581

Low (95)

Check Description Location
shadowing-local IDotnsPopResolver.setChatKey(bytes32,bytes).chatKey (contracts/resolvers/IDotnsPopResolver.sol#56) shadows: - IDotnsPop contracts/resolvers/IDotnsPopResolver.sol:56
shadowing-local IDotnsPopResolver.chatKey(bytes32).chatKey (contracts/resolvers/IDotnsPopResolver.sol#74) shadows: - IDotnsPopResolver. contracts/resolvers/IDotnsPopResolver.sol:74
calls-loop DotnsPopLens._ownedBy(bytes32,address) (contracts/registrars/DotnsPopLens.sol#213-215) has external calls inside a loop: contracts/registrars/DotnsPopLens.sol:213
calls-loop DotnsPopLens._countNames(address) (contracts/registrars/DotnsPopLens.sol#121-148) has external calls inside a loop: node contracts/registrars/DotnsPopLens.sol:121
calls-loop DotnsPopLens._pageNames(address,uint256,uint256) (contracts/registrars/DotnsPopLens.sol#155-207) has external calls insi contracts/registrars/DotnsPopLens.sol:155
calls-loop DotnsPopLens._nodeOf(string) (contracts/registrars/DotnsPopLens.sol#302-308) has external calls inside a loop: tldNode = contracts/registrars/DotnsPopLens.sol:302
calls-loop Multicall3.aggregate3(Multicall3.Call3[]) (contracts/utils/Multicall3.sol#128-153) has external calls inside a loop: (re contracts/utils/Multicall3.sol:128
calls-loop DotnsNameWhitelist._nodeOf(string) (contracts/whitelist/DotnsNameWhitelist.sol#602-604) has external calls inside a loop contracts/whitelist/DotnsNameWhitelist.sol:602
calls-loop DotnsPopLens._ownedBy(bytes32,address) (contracts/registrars/DotnsPopLens.sol#213-215) has external calls inside a loop: contracts/registrars/DotnsPopLens.sol:213
calls-loop DotnsPopController._registry() (contracts/registrars/DotnsPopController.sol#1252-1254) has external calls inside a loop: contracts/registrars/DotnsPopController.sol:1252
calls-loop Multicall3.tryAggregate(bool,Multicall3.Call[]) (contracts/utils/Multicall3.sol#67-89) has external calls inside a loop: contracts/utils/Multicall3.sol:67
calls-loop Multicall3.aggregate3Value(Multicall3.Call3Value[]) (contracts/utils/Multicall3.sol#159-190) has external calls inside a contracts/utils/Multicall3.sol:159
calls-loop DotnsPopController._settlePendingLabel(DotnsPopController.Deps,IStoreFactory,address,address,string) (contracts/registra contracts/registrars/DotnsPopController.sol:587
calls-loop DotnsPopController._writeRecord(address,bytes32,string) (contracts/registrars/DotnsPopController.sol#852-863) has extern contracts/registrars/DotnsPopController.sol:852
calls-loop DotnsNameEscrow._clearName(uint256,bool) (contracts/escrow/DotnsNameEscrow.sol#783-797) has external calls inside a loop contracts/escrow/DotnsNameEscrow.sol:783
calls-loop DotnsPopLens._pageNames(address,uint256,uint256) (contracts/registrars/DotnsPopLens.sol#155-207) has external calls insi contracts/registrars/DotnsPopLens.sol:155
calls-loop DotnsPopLens._controller() (contracts/registrars/DotnsPopLens.sol#283-285) has external calls inside a loop: IDotnsPopCo contracts/registrars/DotnsPopLens.sol:283
calls-loop DotnsPopController._tldNodeOf(DotnsPopController.Deps) (contracts/registrars/DotnsPopController.sol#1294-1297) has exter contracts/registrars/DotnsPopController.sol:1294
calls-loop DotnsPopController._writeRecord(address,bytes32,string) (contracts/registrars/DotnsPopController.sol#852-863) has extern contracts/registrars/DotnsPopController.sol:852
calls-loop DotnsPopLens._countNames(address) (contracts/registrars/DotnsPopLens.sol#121-148) has external calls inside a loop: labe contracts/registrars/DotnsPopLens.sol:121
calls-loop DotnsPopController._writeRecord(address,bytes32,string) (contracts/registrars/DotnsPopController.sol#852-863) has extern contracts/registrars/DotnsPopController.sol:852
calls-loop DotnsNameEscrow._clearName(uint256,bool) (contracts/escrow/DotnsNameEscrow.sol#783-797) has external calls inside a loop contracts/escrow/DotnsNameEscrow.sol:783
calls-loop DotnsPopController._tldNodeOf(DotnsPopController.Deps) (contracts/registrars/DotnsPopController.sol#1294-1297) has exter contracts/registrars/DotnsPopController.sol:1294
calls-loop DotnsPopController._settlePendingLabel(DotnsPopController.Deps,IStoreFactory,address,address,string) (contracts/registra contracts/registrars/DotnsPopController.sol:587
calls-loop DotnsPopController._registry() (contracts/registrars/DotnsPopController.sol#1252-1254) has external calls inside a loop: contracts/registrars/DotnsPopController.sol:1252
calls-loop DotnsPopLens._nodeOf(string) (contracts/registrars/DotnsPopLens.sol#302-308) has external calls inside a loop: tldNode = contracts/registrars/DotnsPopLens.sol:302
calls-loop DotnsPopController._settlePendingLabel(DotnsPopController.Deps,IStoreFactory,address,address,string) (contracts/registra contracts/registrars/DotnsPopController.sol:587
calls-loop DotnsNameEscrow._clearName(uint256,bool) (contracts/escrow/DotnsNameEscrow.sol#783-797) has external calls inside a loop contracts/escrow/DotnsNameEscrow.sol:783
calls-loop DotnsPopLens._countNames(address) (contracts/registrars/DotnsPopLens.sol#121-148) has external calls inside a loop: stor contracts/registrars/DotnsPopLens.sol:121
calls-loop Multicall3.aggregate(Multicall3.Call[]) (contracts/utils/Multicall3.sol#42-60) has external calls inside a loop: (succes contracts/utils/Multicall3.sol:42
calls-loop DotnsPopLens._belongsToListing(string) (contracts/registrars/DotnsPopLens.sol#111-114) has external calls inside a loop: contracts/registrars/DotnsPopLens.sol:111
calls-loop Multicall3.tryAggregate(bool,Multicall3.Call[]) (contracts/utils/Multicall3.sol#67-89) has external calls inside a loop: contracts/utils/Multicall3.sol:67
calls-loop DotnsPopLens._controller() (contracts/registrars/DotnsPopLens.sol#283-285) has external calls inside a loop: IDotnsPopCo contracts/registrars/DotnsPopLens.sol:283
calls-loop DotnsPopLens._registry() (contracts/registrars/DotnsPopLens.sol#293-295) has external calls inside a loop: IDotnsRegistr contracts/registrars/DotnsPopLens.sol:293
calls-loop DotnsNameEscrow._clearName(uint256,bool) (contracts/escrow/DotnsNameEscrow.sol#783-797) has external calls inside a loop contracts/escrow/DotnsNameEscrow.sol:783
calls-loop DotnsPopLens._registry() (contracts/registrars/DotnsPopLens.sol#293-295) has external calls inside a loop: IDotnsRegistr contracts/registrars/DotnsPopLens.sol:293
calls-loop DotnsPopController._writeRecord(address,bytes32,string) (contracts/registrars/DotnsPopController.sol#852-863) has extern contracts/registrars/DotnsPopController.sol:852
calls-loop DotnsNameEscrow._clearName(uint256,bool) (contracts/escrow/DotnsNameEscrow.sol#783-797) has external calls inside a loop contracts/escrow/DotnsNameEscrow.sol:783
calls-loop DotnsPopLens._belongsToListing(string) (contracts/registrars/DotnsPopLens.sol#111-114) has external calls inside a loop: contracts/registrars/DotnsPopLens.sol:111
calls-loop Multicall3.tryAggregate(bool,Multicall3.Call[]) (contracts/utils/Multicall3.sol#67-89) has external calls inside a loop: contracts/utils/Multicall3.sol:67
calls-loop DotnsPopController._settlePendingLabel(DotnsPopController.Deps,IStoreFactory,address,address,string) (contracts/registra contracts/registrars/DotnsPopController.sol:587
calls-loop DotnsNameEscrow._clearName(uint256,bool) (contracts/escrow/DotnsNameEscrow.sol#783-797) has external calls inside a loop contracts/escrow/DotnsNameEscrow.sol:783
calls-loop DotnsNameEscrow._clearName(uint256,bool) (contracts/escrow/DotnsNameEscrow.sol#783-797) has external calls inside a loop contracts/escrow/DotnsNameEscrow.sol:783
calls-loop DotnsPopLens._pageNames(address,uint256,uint256) (contracts/registrars/DotnsPopLens.sol#155-207) has external calls insi contracts/registrars/DotnsPopLens.sol:155
reentrancy-benign Reentrancy in DotnsNameEscrow.release(uint256) (contracts/escrow/DotnsNameEscrow.sol#324-382): External calls: - regis contracts/escrow/DotnsNameEscrow.sol:324
reentrancy-benign Reentrancy in DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool) (contracts/regist contracts/registrars/DotnsPopController.sol:369
reentrancy-benign Reentrancy in DotnsPopController._completeGatewayRegistration(DotnsPopController.Deps,address,string,bytes32,bytes32,byt contracts/registrars/DotnsPopController.sol:788
reentrancy-benign Reentrancy in DotnsRegistrar._revoke(uint256) (contracts/registrars/DotnsRegistrar.sol#187-205): External calls: - rec contracts/registrars/DotnsRegistrar.sol:187
reentrancy-benign Reentrancy in DotnsPopController._ensureDeviceContainer(DotnsPopController.Deps,bytes32) (contracts/registrars/DotnsPopC contracts/registrars/DotnsPopController.sol:1333
reentrancy-events Reentrancy in DotnsPopController._issueDeviceNameWithReservation(IDotnsPopController.DeviceNameIssuanceWithReservation,b contracts/registrars/DotnsPopController.sol:307
reentrancy-events Reentrancy in DotnsPopController._enqueueReservation(DotnsPopController.Deps,bytes32,string,address,bool) (contracts/reg contracts/registrars/DotnsPopController.sol:890
reentrancy-events Reentrancy in DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool) (contracts/regist contracts/registrars/DotnsPopController.sol:369
reentrancy-events Reentrancy in DotnsPopController.evictReservations(string) (contracts/registrars/DotnsPopController.sol#476-485): Exter contracts/registrars/DotnsPopController.sol:476
reentrancy-events Reentrancy in StoreFactory.upgradeLabelStoreImplementation(address) (contracts/store/StoreFactory.sol#147-156): Externa contracts/store/StoreFactory.sol:147
reentrancy-events Reentrancy in DotnsPopController._settlePendingLabel(DotnsPopController.Deps,IStoreFactory,address,address,string) (cont contracts/registrars/DotnsPopController.sol:587
reentrancy-events Reentrancy in DotnsPopController._completeGatewayRegistration(DotnsPopController.Deps,address,string,bytes32,bytes32,byt contracts/registrars/DotnsPopController.sol:788
reentrancy-events Reentrancy in DotnsPopController._issueDeviceName(DotnsPopController.Deps,IDotnsPopController.DeviceNameIssuance,bool) ( contracts/registrars/DotnsPopController.sol:341
reentrancy-events Reentrancy in DotnsPopController._issueDeviceNameWithReservation(IDotnsPopController.DeviceNameIssuanceWithReservation,b contracts/registrars/DotnsPopController.sol:307
reentrancy-events Reentrancy in DotnsPopController._syncPopRulesToHead(DotnsPopController.Deps,bytes32,address) (contracts/registrars/Dotn contracts/registrars/DotnsPopController.sol:1344
reentrancy-events Reentrancy in DotnsPopController.reservePersonhoodName(IDotnsPopController.PersonhoodNameReservation) (contracts/registr contracts/registrars/DotnsPopController.sol:276
reentrancy-events Reentrancy in DotnsPopController._issueDeviceNameWithReservation(IDotnsPopController.DeviceNameIssuanceWithReservation,b contracts/registrars/DotnsPopController.sol:307
reentrancy-events Reentrancy in DotnsRegistrar.register(uint256,address,string) (contracts/registrars/DotnsRegistrar.sol#130-161): Extern contracts/registrars/DotnsRegistrar.sol:130
reentrancy-events Reentrancy in DotnsPopController.revokeName(string) (contracts/registrars/DotnsPopController.sol#444-473): External cal contracts/registrars/DotnsPopController.sol:444
reentrancy-events Reentrancy in DotnsPopController._completeGatewayRegistration(DotnsPopController.Deps,address,string,bytes32,bytes32,byt contracts/registrars/DotnsPopController.sol:788
reentrancy-events Reentrancy in DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool) (contracts/regist contracts/registrars/DotnsPopController.sol:369
reentrancy-events Reentrancy in DotnsRegistry.setSubnodeOwner(IDotnsRegistry.SubnodeRecord) (contracts/registry/DotnsRegistry.sol#108-182) contracts/registry/DotnsRegistry.sol:108
reentrancy-events Reentrancy in DotnsPopController.reservePersonhoodName(IDotnsPopController.PersonhoodNameReservation) (contracts/registr contracts/registrars/DotnsPopController.sol:276
reentrancy-events Reentrancy in StoreFactory.upgradeUserStoreImplementation(address) (contracts/store/StoreFactory.sol#199-204): External contracts/store/StoreFactory.sol:199
reentrancy-events Reentrancy in DotnsPopController._dropReservation(DotnsPopController.Deps,address,IDotnsPopController.UserReservation,ui contracts/registrars/DotnsPopController.sol:1053
timestamp DotnsNameEscrow.claimRefundsBatch(uint256[]) (contracts/escrow/DotnsNameEscrow.sol#508-533) uses timestamp for compariso contracts/escrow/DotnsNameEscrow.sol:508
timestamp DotnsNameWhitelist._grant(string,address) (contracts/whitelist/DotnsNameWhitelist.sol#492-499) uses timestamp for compar contracts/whitelist/DotnsNameWhitelist.sol:492
timestamp DotnsPopController._advanceExpiredHead(DotnsPopController.Deps,bytes32,uint256,bool,address) (contracts/registrars/Dotns contracts/registrars/DotnsPopController.sol:998
timestamp DotnsNameEscrow.rebindPosition(uint256,address) (contracts/escrow/DotnsNameEscrow.sol#305-321) uses timestamp for compar contracts/escrow/DotnsNameEscrow.sol:305
timestamp DotnsPopController._isExpired(uint64) (contracts/registrars/DotnsPopController.sol#880-882) uses timestamp for compariso contracts/registrars/DotnsPopController.sol:880
timestamp DotnsNameWhitelist._expiryOf(IDotnsNameWhitelist.NameRecord) (contracts/whitelist/DotnsNameWhitelist.sol#541-546) uses t contracts/whitelist/DotnsNameWhitelist.sol:541
timestamp PopRules._isLive(IPopRules.Reservation) (contracts/pop/PopRules.sol#400-402) uses timestamp for comparisons Dangerous c contracts/pop/PopRules.sol:400
timestamp DotnsRegistrarController._consumeCommitment(IDotnsRegistrarController.Registration) (contracts/registrars/DotnsRegistrar contracts/registrars/DotnsRegistrarController.sol:352
timestamp DotnsNameEscrow.deposit(IDotnsNameEscrow.DepositParams) (contracts/escrow/DotnsNameEscrow.sol#271-294) uses timestamp fo contracts/escrow/DotnsNameEscrow.sol:271
timestamp DotnsNameWhitelist.revokeName(string) (contracts/whitelist/DotnsNameWhitelist.sol#282-296) uses timestamp for comparison contracts/whitelist/DotnsNameWhitelist.sol:282
timestamp DotnsPopController._keepOrDropReservation(DotnsPopController.Deps,bytes32,address) (contracts/registrars/DotnsPopControl contracts/registrars/DotnsPopController.sol:965
timestamp DotnsNameWhitelist.consume(string,address) (contracts/whitelist/DotnsNameWhitelist.sol#320-332) uses timestamp for compa contracts/whitelist/DotnsNameWhitelist.sol:320
timestamp DotnsNameWhitelist.requestName(string,string,address) (contracts/whitelist/DotnsNameWhitelist.sol#212-240) uses timestam contracts/whitelist/DotnsNameWhitelist.sol:212
timestamp DotnsNameWhitelist._statusOf(IDotnsNameWhitelist.NameRecord) (contracts/whitelist/DotnsNameWhitelist.sol#525-530) uses t contracts/whitelist/DotnsNameWhitelist.sol:525
timestamp PopRules._writeReservation(string,address) (contracts/pop/PopRules.sol#611-632) uses timestamp for comparisons Dangerou contracts/pop/PopRules.sol:611
timestamp DotnsNameEscrow.onERC721Received(address,address,uint256,bytes) (contracts/escrow/DotnsNameEscrow.sol#734-751) uses time contracts/escrow/DotnsNameEscrow.sol:734
timestamp DotnsNameWhitelist.setReserved(string,bool) (contracts/whitelist/DotnsNameWhitelist.sol#299-317) uses timestamp for comp contracts/whitelist/DotnsNameWhitelist.sol:299
timestamp DotnsPopController._issuePersonhoodName(IDotnsPopController.PersonhoodNameIssuance,bool) (contracts/registrars/DotnsPopC contracts/registrars/DotnsPopController.sol:369
timestamp DotnsNameEscrow.isReclaimable(uint256) (contracts/escrow/DotnsNameEscrow.sol#684-703) uses timestamp for comparisons Da contracts/escrow/DotnsNameEscrow.sol:684
timestamp DotnsNameWhitelist.initializeGrantExpiry() (contracts/whitelist/DotnsNameWhitelist.sol#156-159) uses timestamp for compa contracts/whitelist/DotnsNameWhitelist.sol:156
timestamp DotnsNameWhitelist._isWindowOpen() (contracts/whitelist/DotnsNameWhitelist.sol#608-610) uses timestamp for comparisons contracts/whitelist/DotnsNameWhitelist.sol:608
timestamp DotnsNameEscrow.claimRefund(uint256) (contracts/escrow/DotnsNameEscrow.sol#487-505) uses timestamp for comparisons Dang contracts/escrow/DotnsNameEscrow.sol:487
timestamp DotnsNameEscrow.release(uint256) (contracts/escrow/DotnsNameEscrow.sol#324-382) uses timestamp for comparisons Dangerou contracts/escrow/DotnsNameEscrow.sol:324
timestamp DotnsNameEscrow.redeem(uint256) (contracts/escrow/DotnsNameEscrow.sol#706-731) uses timestamp for comparisons Dangerous contracts/escrow/DotnsNameEscrow.sol:706
timestamp DotnsRegistrarController.commit(bytes32) (contracts/registrars/DotnsRegistrarController.sol#145-155) uses timestamp for contracts/registrars/DotnsRegistrarController.sol:145
timestamp DotnsNameEscrow.withdraw(uint256) (contracts/escrow/DotnsNameEscrow.sol#406-418) uses timestamp for comparisons Dangero contracts/escrow/DotnsNameEscrow.sol:406

Informational (59)

Check Description Location
assembly LabelUtils.namehashUnder(bytes32,bytes32) (contracts/utils/LabelUtils.sol#53-64) uses assembly - INLINE ASM (contracts/ contracts/utils/LabelUtils.sol:53
assembly Multicall3.aggregate3Value(Multicall3.Call3Value[]) (contracts/utils/Multicall3.sol#159-190) uses assembly - INLINE ASM contracts/utils/Multicall3.sol:159
assembly LabelUtils.labelhashMemory(string) (contracts/utils/LabelUtils.sol#41-45) uses assembly - INLINE ASM (contracts/utils/L contracts/utils/LabelUtils.sol:41
assembly DotnsRegistry._parentNamehash(string) (contracts/registry/DotnsRegistry.sol#385-416) uses assembly - INLINE ASM (contra contracts/registry/DotnsRegistry.sol:385
assembly Multicall3.aggregate3(Multicall3.Call3[]) (contracts/utils/Multicall3.sol#128-153) uses assembly - INLINE ASM (contract contracts/utils/Multicall3.sol:128
assembly LabelUtils.labelhash(string) (contracts/utils/LabelUtils.sol#26-33) uses assembly - INLINE ASM (contracts/utils/LabelUt contracts/utils/LabelUtils.sol:26
costly-loop DotnsNameEscrow._removeRefundEntry(uint256,address) (contracts/escrow/DotnsNameEscrow.sol#610-628) has costly operations contracts/escrow/DotnsNameEscrow.sol:610
costly-loop DotnsNameEscrow._removeRefundEntry(uint256,address) (contracts/escrow/DotnsNameEscrow.sol#610-628) has costly operations contracts/escrow/DotnsNameEscrow.sol:610
cyclomatic-complexity DotnsPopLens._pageNames(address,uint256,uint256) (contracts/registrars/DotnsPopLens.sol#155-207) has a high cyclomatic c contracts/registrars/DotnsPopLens.sol:155
dead-code DotnsRegistrar._escrow() (contracts/registrars/DotnsRegistrar.sol#366-368) is never used and should be removed contracts/registrars/DotnsRegistrar.sol:366
low-level-calls Low level call in Multicall3.aggregate(Multicall3.Call[]) (contracts/utils/Multicall3.sol#42-60): - (success,returnData contracts/utils/Multicall3.sol:42
low-level-calls Low level call in Multicall3.aggregate3(Multicall3.Call3[]) (contracts/utils/Multicall3.sol#128-153): - (result.success contracts/utils/Multicall3.sol:128
low-level-calls Low level call in Multicall3.tryAggregate(bool,Multicall3.Call[]) (contracts/utils/Multicall3.sol#67-89): - (result.suc contracts/utils/Multicall3.sol:67
low-level-calls Low level call in Multicall3.aggregate3Value(Multicall3.Call3Value[]) (contracts/utils/Multicall3.sol#159-190): - (resu contracts/utils/Multicall3.sol:159
low-level-calls Low level call in DotnsRegistrarController.register(IDotnsRegistrarController.Registration) (contracts/registrars/DotnsR contracts/registrars/DotnsRegistrarController.sol:167
low-level-calls Low level call in DotnsNameEscrow.claimRefund(uint256) (contracts/escrow/DotnsNameEscrow.sol#487-505): - (ok,None) = ad contracts/escrow/DotnsNameEscrow.sol:487
low-level-calls Low level call in DotnsNameEscrow.claimWithdrawal() (contracts/escrow/DotnsNameEscrow.sol#466-479): - (ok,None) = addre contracts/escrow/DotnsNameEscrow.sol:466
low-level-calls Low level call in DotnsNameEscrow.claimRefundsBatch(uint256[]) (contracts/escrow/DotnsNameEscrow.sol#508-533): - (ok,No contracts/escrow/DotnsNameEscrow.sol:508
naming-convention Variable PopRules.__gap (contracts/pop/PopRules.sol#63) is not in mixedCase contracts/pop/PopRules.sol:63
naming-convention Variable DotnsNameEscrow.__gap (contracts/escrow/DotnsNameEscrow.sol#125) is not in mixedCase contracts/escrow/DotnsNameEscrow.sol:125
naming-convention Variable DotnsProtocolRegistry.__gap (contracts/registry/DotnsProtocolRegistry.sol#53) is not in mixedCase contracts/registry/DotnsProtocolRegistry.sol:53
naming-convention Variable StoreFactory.__gap (contracts/store/StoreFactory.sol#62) is not in mixedCase contracts/store/StoreFactory.sol:62
naming-convention Variable DotnsPopController.__gap (contracts/registrars/DotnsPopController.sol#184) is not in mixedCase contracts/registrars/DotnsPopController.sol:184
naming-convention Variable DotnsRegistrarController.__gap (contracts/registrars/DotnsRegistrarController.sol#77) is not in mixedCase contracts/registrars/DotnsRegistrarController.sol:77
naming-convention Variable DotnsRegistrar.__gap (contracts/registrars/DotnsRegistrar.sol#68) is not in mixedCase contracts/registrars/DotnsRegistrar.sol:68
naming-convention Parameter StringUtils.bytes32ToString(bytes32)._bytes32 (contracts/utils/StringUtils.sol#310) is not in mixedCase contracts/utils/StringUtils.sol:310
naming-convention Variable UserStore.__gap (contracts/store/UserStore.sol#46) is not in mixedCase contracts/store/UserStore.sol:46
naming-convention Variable DotnsResolver.__gap (contracts/resolvers/DotnsResolver.sol#42) is not in mixedCase contracts/resolvers/DotnsResolver.sol:42
naming-convention Variable DotnsPopResolver.__gap (contracts/resolvers/DotnsPopResolver.sol#55) is not in mixedCase contracts/resolvers/DotnsPopResolver.sol:55
naming-convention Variable DotnsContentResolver.__gap (contracts/resolvers/DotnsContentResolver.sol#53) is not in mixedCase contracts/resolvers/DotnsContentResolver.sol:53
naming-convention Variable DotnsRegistry.__gap (contracts/registry/DotnsRegistry.sol#69) is not in mixedCase contracts/registry/DotnsRegistry.sol:69
naming-convention Variable LabelStore.__gap (contracts/store/LabelStore.sol#47) is not in mixedCase contracts/store/LabelStore.sol:47
naming-convention Variable DotnsReverseResolver.__gap (contracts/resolvers/DotnsReverseResolver.sol#44) is not in mixedCase contracts/resolvers/DotnsReverseResolver.sol:44
naming-convention Variable DotnsNameWhitelist.__gap (contracts/whitelist/DotnsNameWhitelist.sol#97) is not in mixedCase contracts/whitelist/DotnsNameWhitelist.sol:97
too-many-digits Multicall3.aggregate3Value(Multicall3.Call3Value[]) (contracts/utils/Multicall3.sol#159-190) uses literals with too many contracts/utils/Multicall3.sol:159
too-many-digits Multicall3.aggregate3Value(Multicall3.Call3Value[]) (contracts/utils/Multicall3.sol#159-190) uses literals with too many contracts/utils/Multicall3.sol:159
too-many-digits Multicall3.aggregate3(Multicall3.Call3[]) (contracts/utils/Multicall3.sol#128-153) uses literals with too many digits: contracts/utils/Multicall3.sol:128
too-many-digits Multicall3.aggregate3(Multicall3.Call3[]) (contracts/utils/Multicall3.sol#128-153) uses literals with too many digits: contracts/utils/Multicall3.sol:128
too-many-digits Multicall3.aggregate3Value(Multicall3.Call3Value[]) (contracts/utils/Multicall3.sol#159-190) uses literals with too many contracts/utils/Multicall3.sol:159
too-many-digits Multicall3.aggregate3Value(Multicall3.Call3Value[]) (contracts/utils/Multicall3.sol#159-190) uses literals with too many contracts/utils/Multicall3.sol:159
too-many-digits Multicall3.aggregate3(Multicall3.Call3[]) (contracts/utils/Multicall3.sol#128-153) uses literals with too many digits: contracts/utils/Multicall3.sol:128
too-many-digits Multicall3.aggregate3(Multicall3.Call3[]) (contracts/utils/Multicall3.sol#128-153) uses literals with too many digits: contracts/utils/Multicall3.sol:128
unimplemented-functions DotnsRegistrar (contracts/registrars/DotnsRegistrar.sol#37-387) does not implement functions: - IDotnsRegistrar.control contracts/registrars/DotnsRegistrar.sol:37
unused-state DotnsNameEscrow.__gap (contracts/escrow/DotnsNameEscrow.sol#125) is never used in DotnsNameEscrow (contracts/escrow/Dotn contracts/escrow/DotnsNameEscrow.sol:125
unused-state DotnsRegistry.__gap (contracts/registry/DotnsRegistry.sol#69) is never used in DotnsRegistry (contracts/registry/DotnsRe contracts/registry/DotnsRegistry.sol:69
unused-state DotnsNameWhitelist.__gap (contracts/whitelist/DotnsNameWhitelist.sol#97) is never used in DotnsNameWhitelist (contracts/ contracts/whitelist/DotnsNameWhitelist.sol:97
unused-state DotnsRegistrarController.__gap (contracts/registrars/DotnsRegistrarController.sol#77) is never used in DotnsRegistrarCon contracts/registrars/DotnsRegistrarController.sol:77
unused-state DotnsProtocolRegistry.__gap (contracts/registry/DotnsProtocolRegistry.sol#53) is never used in DotnsProtocolRegistry (co contracts/registry/DotnsProtocolRegistry.sol:53
unused-state DotnsNameEscrow._nextEntryId (contracts/escrow/DotnsNameEscrow.sol#113) is never used in DotnsNameEscrow (contracts/escr contracts/escrow/DotnsNameEscrow.sol:113
unused-state UserStore.__gap (contracts/store/UserStore.sol#46) is never used in UserStore (contracts/store/UserStore.sol#23-204) contracts/store/UserStore.sol:46
unused-state DotnsContentResolver.__gap (contracts/resolvers/DotnsContentResolver.sol#53) is never used in DotnsContentResolver (cont contracts/resolvers/DotnsContentResolver.sol:53
unused-state DotnsPopResolver.__gap (contracts/resolvers/DotnsPopResolver.sol#55) is never used in DotnsPopResolver (contracts/resolv contracts/resolvers/DotnsPopResolver.sol:55
unused-state PopRules.__gap (contracts/pop/PopRules.sol#63) is never used in PopRules (contracts/pop/PopRules.sol#40-633) contracts/pop/PopRules.sol:63
unused-state DotnsResolver.__gap (contracts/resolvers/DotnsResolver.sol#42) is never used in DotnsResolver (contracts/resolvers/Dotns contracts/resolvers/DotnsResolver.sol:42
unused-state DotnsRegistrar.__gap (contracts/registrars/DotnsRegistrar.sol#68) is never used in DotnsRegistrar (contracts/registrars/ contracts/registrars/DotnsRegistrar.sol:68
unused-state LabelStore.__gap (contracts/store/LabelStore.sol#47) is never used in LabelStore (contracts/store/LabelStore.sol#27-190) contracts/store/LabelStore.sol:47
unused-state DotnsReverseResolver.__gap (contracts/resolvers/DotnsReverseResolver.sol#44) is never used in DotnsReverseResolver (cont contracts/resolvers/DotnsReverseResolver.sol:44
unused-state DotnsPopController.__gap (contracts/registrars/DotnsPopController.sol#184) is never used in DotnsPopController (contract contracts/registrars/DotnsPopController.sol:184
unused-state StoreFactory.__gap (contracts/store/StoreFactory.sol#62) is never used in StoreFactory (contracts/store/StoreFactory.sol contracts/store/StoreFactory.sol:62