-
Notifications
You must be signed in to change notification settings - Fork 1
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
fix: check for zero address in setConnected #47
Conversation
📝 WalkthroughWalkthroughThe pull request introduces enhanced error handling in two similar contracts: Changes
Sequence DiagramsequenceDiagram
participant Caller
participant UniversalContract
participant AddressValidator
Caller->>UniversalContract: setConnected(zrc20, contractAddress)
UniversalContract->>AddressValidator: Validate zrc20
AddressValidator-->>UniversalContract: Check if not zero address
UniversalContract->>AddressValidator: Validate contractAddress
AddressValidator-->>UniversalContract: Check if not zero address
alt Addresses are valid
UniversalContract->>UniversalContract: Set connection
else Invalid Address
UniversalContract-->>Caller: Revert with InvalidAddress error
end
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
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.
Actionable comments posted: 0
🧹 Nitpick comments (2)
contracts/token/contracts/zetachain/UniversalTokenCore.sol (1)
105-106
: LGTM! Consider combining the checks for better gas efficiency.The zero address validation is correctly implemented for both parameters. However, we can optimize gas usage by combining the checks.
- if (zrc20 == address(0)) revert InvalidAddress(); - if (contractAddress == address(0)) revert InvalidAddress(); + if (zrc20 == address(0) || contractAddress == address(0)) revert InvalidAddress();contracts/nft/contracts/zetachain/UniversalNFTCore.sol (1)
107-108
: Apply the same optimization as in UniversalTokenCore.For consistency with UniversalTokenCore and better gas efficiency, combine the zero address checks.
- if (zrc20 == address(0)) revert InvalidAddress(); - if (contractAddress == address(0)) revert InvalidAddress(); + if (zrc20 == address(0) || contractAddress == address(0)) revert InvalidAddress();
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
contracts/nft/contracts/zetachain/UniversalNFTCore.sol
(1 hunks)contracts/token/contracts/zetachain/UniversalTokenCore.sol
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (4)
- GitHub Check: test (contracts/token)
- GitHub Check: test (contracts/nft)
- GitHub Check: slither (contracts/token, token.sarif)
- GitHub Check: slither (contracts/nft, nft.sarif)
Summary by CodeRabbit
Bug Fixes
setConnected
functions for both NFT and Token core contractsSecurity