Generated 2026-10-30 16:30 UTC | 215 findings
High
3
Medium
56
Low
95
Informational
59
| 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 |
| 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 |
| 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 |
| 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 |