-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release/v1.0.1 #226
Release/v1.0.1 #226
Conversation
Release/nexus 1.0.0
feat:add coverage report
fix/readme cleanup
…ernal-dep Stacked/7739 validator base as external dep
fix:code updates init for ERC7739 updates
feat: add defi safety score
…ection Sig malleability protection for erc1271 only
fix tests-sync 1.0.1
Fix/package json
Revert to last audited commit (9f1c23f6)
Add links to deploy script
🤖 Slither Analysis Report 🔎Slither report
# Slither report
_This comment was automatically generated by the GitHub Actions workflow._
THIS CHECKLIST IS NOT COMPLETE. Use
locked-ether🟡 Impact: Medium
utils/NexusBootstrap.sol#L33-L165 constable-statesImpact: Optimization
|
Release/v1.0.1
🚨 Report Summary
For more details view the full report in OpenZeppelin Code Inspector |
@@ -39,6 +38,7 @@ contract Nexus is INexus, BaseAccount, ExecutionHelper, ModuleManager, UUPSUpgra | |||
using ModeLib for ExecutionMode; | |||
using ExecLib for bytes; | |||
using NonceLib for uint256; | |||
using SentinelListLib for SentinelListLib.SentinelList; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't we be using the SentinelList4337 ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in this case it is not needed as the list is in the account storage itself
// Handle potential ERC7739 support detection request | ||
if (signature.length == 0) { | ||
// Forces the compiler to optimize for smaller bytecode size. | ||
if (uint256(hash) == (~signature.length / 0xffff) * 0x7739) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wow. what's this doing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use the same code that's already built into this function here
https://github.com/erc7579/erc7739Validator/blob/d1e38493f58f28e62e12e41773086a90e8f60840/src/ERC7739Validator.sol#L44
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it is to check that this is the 7739 support request
and no, we can not because we should identify that this is the request at SA level
while (next != ZERO_ADDRESS && next != SENTINEL) { | ||
bytes4 support = IValidator(next).isValidSignatureWithSender(msg.sender, hash, signature); | ||
if (bytes2(support) == bytes2(SUPPORTS_ERC7739) && support > result) { | ||
result = support; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couldn't we break the loop in the case of result = support?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we want to find the latest supported version, so no, we can't
Release v 1.0.1
PR-Codex overview
This PR focuses on updating the
Nexus
smart contract and related modules to support theERC7739
standard, enhancing signature validation, and refining the deployment scripts. It also includes version updates and improvements in the testing framework.Detailed summary
IERC7739
interface andERC7739Validator
base contract.ERC7739
andERC7739_V1
constants inConstants.sol
.K1Validator
to return version1.0.1
.ERC7739
support detection.README.md
for deployment instructions and contract addresses.package.json
tobcnmy-nexus
and version to1.0.1
.