<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>OpenZeppelin Blog</title>
    <link>https://blog.openzeppelin.com</link>
    <description />
    <language>en</language>
    <pubDate>Mon, 23 Dec 2024 18:02:09 GMT</pubDate>
    <dc:date>2024-12-23T18:02:09Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Add Tests To Your Stylus Contracts</title>
      <link>https://blog.openzeppelin.com/test-your-stylus-contracts-with-motsu</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/test-your-stylus-contracts-with-motsu" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Stylus%20Contracts.png" alt="Add Tests To Your Stylus Contracts" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: 18px;"&gt;Y&lt;/span&gt;ou’r&lt;/span&gt;e likely already familiar with our &lt;a href="https://hubs.li/Q02-BQ260"&gt;&lt;span&gt;Contracts Library for Stylus&lt;/span&gt;&lt;/a&gt;, released in October 2024. While Arbitrum Stylus delivers faster execution and lower gas fees, tools for unit testing smart contracts are limited. Testing is essential to ensure smart contracts function as intended and to minimize the risk of exploits. The immutable nature of blockchain technology requires rigorous security measures, making thorough testing a vital part of the development process.&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/test-your-stylus-contracts-with-motsu" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Stylus%20Contracts.png" alt="Add Tests To Your Stylus Contracts" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size: 18px;"&gt;Y&lt;/span&gt;ou’r&lt;/span&gt;e likely already familiar with our &lt;a href="https://hubs.li/Q02-BQ260"&gt;&lt;span&gt;Contracts Library for Stylus&lt;/span&gt;&lt;/a&gt;, released in October 2024. While Arbitrum Stylus delivers faster execution and lower gas fees, tools for unit testing smart contracts are limited. Testing is essential to ensure smart contracts function as intended and to minimize the risk of exploits. The immutable nature of blockchain technology requires rigorous security measures, making thorough testing a vital part of the development process.&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Ftest-your-stylus-contracts-with-motsu&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>L2's</category>
      <category>Rust</category>
      <category>Ecosystem</category>
      <pubDate>Mon, 23 Dec 2024 18:02:09 GMT</pubDate>
      <author>sebastian.perez@openzeppelin.com (Sebastian Perez)</author>
      <guid>https://blog.openzeppelin.com/test-your-stylus-contracts-with-motsu</guid>
      <dc:date>2024-12-23T18:02:09Z</dc:date>
    </item>
    <item>
      <title>Strengthening DeFi: OpenZeppelin and Compound's Security Partnership in 2024</title>
      <link>https://blog.openzeppelin.com/strengthening-defi-openzeppelin-and-compounds-security-partnership-in-2024</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/strengthening-defi-openzeppelin-and-compounds-security-partnership-in-2024" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Case_study-compound.webp" alt="Strengthening DeFi: OpenZeppelin and Compound's Security Partnership in 2024" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p style="font-size: 20px;"&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;TL;DR&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/strengthening-defi-openzeppelin-and-compounds-security-partnership-in-2024" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Case_study-compound.webp" alt="Strengthening DeFi: OpenZeppelin and Compound's Security Partnership in 2024" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p style="font-size: 20px;"&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;TL;DR&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Fstrengthening-defi-openzeppelin-and-compounds-security-partnership-in-2024&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Insights</category>
      <category>Case Study</category>
      <pubDate>Wed, 18 Dec 2024 16:10:56 GMT</pubDate>
      <author>khizer.arshad@openzeppelin.com (Khizer Arshad)</author>
      <guid>https://blog.openzeppelin.com/strengthening-defi-openzeppelin-and-compounds-security-partnership-in-2024</guid>
      <dc:date>2024-12-18T16:10:56Z</dc:date>
    </item>
    <item>
      <title>Origin OUSD Audit</title>
      <link>https://blog.openzeppelin.com/origin-ousd-audit</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/origin-ousd-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Group%201000003816-1.png" alt="Origin OUSD Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#yield-delegation"&gt;Yield Delegation&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#security-model-and-trust-assumptions"&gt;Security Model and Trust Assumptions&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles"&gt;Privileged Roles&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#users-lack-control-over-yield-delegation"&gt;Users Lack Control Over Yield Delegation&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-docstrings"&gt;Missing Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#floating-pragma"&gt;Floating Pragma&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#redundant-code"&gt;Redundant Code&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incomplete-docstrings"&gt;Incomplete Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-named-parameters-in-mappings"&gt;Missing Named Parameters in Mappings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#multiple-optimizable-storage-operations"&gt;Multiple Optimizable Storage Operations&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#typographical-errors"&gt;Typographical Errors&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/origin-ousd-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Group%201000003816-1.png" alt="Origin OUSD Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#yield-delegation"&gt;Yield Delegation&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#security-model-and-trust-assumptions"&gt;Security Model and Trust Assumptions&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles"&gt;Privileged Roles&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#users-lack-control-over-yield-delegation"&gt;Users Lack Control Over Yield Delegation&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-docstrings"&gt;Missing Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#floating-pragma"&gt;Floating Pragma&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#redundant-code"&gt;Redundant Code&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incomplete-docstrings"&gt;Incomplete Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-named-parameters-in-mappings"&gt;Missing Named Parameters in Mappings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#multiple-optimizable-storage-operations"&gt;Multiple Optimizable Storage Operations&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#typographical-errors"&gt;Typographical Errors&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Forigin-ousd-audit&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Audits</category>
      <category>Solidity</category>
      <pubDate>Wed, 18 Dec 2024 15:59:29 GMT</pubDate>
      <guid>https://blog.openzeppelin.com/origin-ousd-audit</guid>
      <dc:date>2024-12-18T15:59:29Z</dc:date>
      <dc:creator>OpenZeppelin Security</dc:creator>
    </item>
    <item>
      <title>Sonic Gateway Audit</title>
      <link>https://blog.openzeppelin.com/sonic-gateway-audit</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/sonic-gateway-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Group%201000003816.png" alt="Sonic Gateway&amp;nbsp;Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles-and-trust-assumptions"&gt;Privileged Roles and Trust Assumptions&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#security-model"&gt;Security Model&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#high-severity"&gt;High Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#incorrect-update-order-in-updatemanager"&gt;Incorrect Update Order in UpdateManager&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#medium-severity"&gt;Medium Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#user-provided-deposit-and-withdraw-ids-can-cause-collisions"&gt;User-Provided Deposit and Withdraw IDs Can Cause Collisions&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#users-with-account-abstraction-wallets-may-lose-bridged-funds-due-to-address-mismatch"&gt;Users with Account Abstraction Wallets May Lose Bridged Funds Due to Address Mismatch&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#payfastlane-could-be-continuously-blocked-by-exploiting-selfdestruct"&gt;payFastLane Could Be Continuously Blocked by Exploiting selfdestruct&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#lack-of-deregistration-mechanism-for-tokenpairs"&gt;Lack of Deregistration Mechanism for TokenPairs&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#floating-pragma"&gt;Floating Pragma&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-zero-address-checks"&gt;Missing Zero-Address Checks&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#possible-precision-loss-due-to-division-before-multiplication"&gt;Possible Precision Loss Due to Division Before Multiplication&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#extendvalidatorsarray-can-create-gaps-in-validatoraddress-array"&gt;extendValidatorsArray Can Create Gaps in validatorAddress Array&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#infinite-loop-in-subscription-retry-mechanism"&gt;Infinite Loop in Subscription Retry Mechanism&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#quorum-calculation-rounds-down-allowing-insufficient-validator-approval"&gt;Quorum Calculation Rounds Down, Allowing Insufficient Validator Approval&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#updating-too-many-validator-in-a-single-update-may-cause-out-of-gas-error"&gt;Updating Too Many Validator in a Single Update May Cause Out-of-Gas Error&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#lack-of-length-check-on-proof-items-in-mptproofverifier"&gt;Lack of Length Check on Proof Items in MPTProofVerifier&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-length-check-for-public-key-in-sfcupdateverifier"&gt;Missing Length Check for Public Key in SFCUpdateVerifier&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#improper-node-id-handling-in-merkletrie-library"&gt;Improper Node ID Handling in MerkleTrie Library&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-docstrings"&gt;Missing Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#move-checks-to-fail-earlier"&gt;Move Checks to Fail Earlier&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-security-contact"&gt;Lack of Security Contact&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-named-parameters-in-mappings"&gt;Missing Named Parameters in Mappings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#non-explicit-imports"&gt;Non-Explicit Imports&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unnecessary-casts"&gt;Unnecessary Casts&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#variables-could-be-immutable"&gt;Variables Could Be immutable&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-indexed-event-parameters"&gt;Lack of Indexed Event Parameters&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#use-calldata-instead-of-memory"&gt;Use calldata Instead of memory&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#functions-updating-state-without-event-emissions"&gt;Functions Updating State Without Event Emissions&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/sonic-gateway-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Group%201000003816.png" alt="Sonic Gateway&amp;nbsp;Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles-and-trust-assumptions"&gt;Privileged Roles and Trust Assumptions&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#security-model"&gt;Security Model&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#high-severity"&gt;High Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#incorrect-update-order-in-updatemanager"&gt;Incorrect Update Order in UpdateManager&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#medium-severity"&gt;Medium Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#user-provided-deposit-and-withdraw-ids-can-cause-collisions"&gt;User-Provided Deposit and Withdraw IDs Can Cause Collisions&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#users-with-account-abstraction-wallets-may-lose-bridged-funds-due-to-address-mismatch"&gt;Users with Account Abstraction Wallets May Lose Bridged Funds Due to Address Mismatch&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#payfastlane-could-be-continuously-blocked-by-exploiting-selfdestruct"&gt;payFastLane Could Be Continuously Blocked by Exploiting selfdestruct&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#lack-of-deregistration-mechanism-for-tokenpairs"&gt;Lack of Deregistration Mechanism for TokenPairs&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#floating-pragma"&gt;Floating Pragma&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-zero-address-checks"&gt;Missing Zero-Address Checks&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#possible-precision-loss-due-to-division-before-multiplication"&gt;Possible Precision Loss Due to Division Before Multiplication&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#extendvalidatorsarray-can-create-gaps-in-validatoraddress-array"&gt;extendValidatorsArray Can Create Gaps in validatorAddress Array&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#infinite-loop-in-subscription-retry-mechanism"&gt;Infinite Loop in Subscription Retry Mechanism&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#quorum-calculation-rounds-down-allowing-insufficient-validator-approval"&gt;Quorum Calculation Rounds Down, Allowing Insufficient Validator Approval&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#updating-too-many-validator-in-a-single-update-may-cause-out-of-gas-error"&gt;Updating Too Many Validator in a Single Update May Cause Out-of-Gas Error&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#lack-of-length-check-on-proof-items-in-mptproofverifier"&gt;Lack of Length Check on Proof Items in MPTProofVerifier&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-length-check-for-public-key-in-sfcupdateverifier"&gt;Missing Length Check for Public Key in SFCUpdateVerifier&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#improper-node-id-handling-in-merkletrie-library"&gt;Improper Node ID Handling in MerkleTrie Library&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-docstrings"&gt;Missing Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#move-checks-to-fail-earlier"&gt;Move Checks to Fail Earlier&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-security-contact"&gt;Lack of Security Contact&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-named-parameters-in-mappings"&gt;Missing Named Parameters in Mappings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#non-explicit-imports"&gt;Non-Explicit Imports&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unnecessary-casts"&gt;Unnecessary Casts&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#variables-could-be-immutable"&gt;Variables Could Be immutable&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-indexed-event-parameters"&gt;Lack of Indexed Event Parameters&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#use-calldata-instead-of-memory"&gt;Use calldata Instead of memory&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#functions-updating-state-without-event-emissions"&gt;Functions Updating State Without Event Emissions&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Fsonic-gateway-audit&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Audits</category>
      <category>Solidity</category>
      <pubDate>Fri, 13 Dec 2024 18:52:41 GMT</pubDate>
      <guid>https://blog.openzeppelin.com/sonic-gateway-audit</guid>
      <dc:date>2024-12-13T18:52:41Z</dc:date>
      <dc:creator>OpenZeppelin Security</dc:creator>
    </item>
    <item>
      <title>Protocol Defense Audit</title>
      <link>https://blog.openzeppelin.com/protocol-defense-audit</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/protocol-defense-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Protocol%20Defense%20Audit.png" alt="Protocol Defense Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#misleading-errors"&gt;Misleading Errors&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#inconsistent-input-validation"&gt;Inconsistent Input Validation&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#getallhyperchains-function-reverts-due-to-invalid-key-access"&gt;getAllHyperchains Function Reverts Due to Invalid Key Access&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#standardize-custom-error-for-consistency"&gt;Standardize Custom Error for Consistency&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#typographical-errors"&gt;Typographical Errors&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#duplicate-error-import"&gt;Duplicate Error Import&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#risk-with-floating-pragma-and-yul-optimizer-bug"&gt;Risk with Floating Pragma and Yul Optimizer Bug&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-errors"&gt;Unused Errors&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#improved-organization-of-error-files"&gt;Improved Organization of Error Files&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#naming-issues"&gt;Naming Issues&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unnamed-error-parameters"&gt;Unnamed Error Parameters&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#misleading-use-of-i-prefix-in-abstract-contract"&gt;Misleading Use of "I" Prefix in Abstract Contract&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-enum"&gt;Unused Enum&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#file-and-contract-names-mismatch"&gt;File and Contract Names Mismatch&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#misplaced-error-declarations"&gt;Misplaced Error Declarations&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-named-return-variable"&gt;Unused Named Return Variable&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#constants-not-using-upper_case-format"&gt;Constants Not Using UPPER_CASE Format&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unnecessary-casts"&gt;Unnecessary Casts&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#risk-of-disabling-valid-warnings"&gt;Risk of Disabling Valid Warnings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unjustified-use-of-solhint-disable-comments"&gt;Unjustified Use of solhint-disable Comments&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#inconsistent-application-of-solhint-rule-gas-length-in-loops"&gt;Inconsistent Application of Solhint Rule gas-length-in-loops&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#duplicate-code"&gt;Duplicate Code&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#overly-exposed-state-variable"&gt;Overly Exposed State Variable&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#inconsistent-initialization-of-local-variables"&gt;Inconsistent Initialization of Local Variables&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#todo-comments-in-the-code"&gt;Todo Comments in the Code&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#misleading-documentation"&gt;Misleading Documentation&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-indexed-event-parameters"&gt;Lack of Indexed Event Parameters&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/protocol-defense-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Protocol%20Defense%20Audit.png" alt="Protocol Defense Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#misleading-errors"&gt;Misleading Errors&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#inconsistent-input-validation"&gt;Inconsistent Input Validation&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#getallhyperchains-function-reverts-due-to-invalid-key-access"&gt;getAllHyperchains Function Reverts Due to Invalid Key Access&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#standardize-custom-error-for-consistency"&gt;Standardize Custom Error for Consistency&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#typographical-errors"&gt;Typographical Errors&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#duplicate-error-import"&gt;Duplicate Error Import&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#risk-with-floating-pragma-and-yul-optimizer-bug"&gt;Risk with Floating Pragma and Yul Optimizer Bug&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-errors"&gt;Unused Errors&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#improved-organization-of-error-files"&gt;Improved Organization of Error Files&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#naming-issues"&gt;Naming Issues&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unnamed-error-parameters"&gt;Unnamed Error Parameters&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#misleading-use-of-i-prefix-in-abstract-contract"&gt;Misleading Use of "I" Prefix in Abstract Contract&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-enum"&gt;Unused Enum&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#file-and-contract-names-mismatch"&gt;File and Contract Names Mismatch&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#misplaced-error-declarations"&gt;Misplaced Error Declarations&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-named-return-variable"&gt;Unused Named Return Variable&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#constants-not-using-upper_case-format"&gt;Constants Not Using UPPER_CASE Format&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unnecessary-casts"&gt;Unnecessary Casts&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#risk-of-disabling-valid-warnings"&gt;Risk of Disabling Valid Warnings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unjustified-use-of-solhint-disable-comments"&gt;Unjustified Use of solhint-disable Comments&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#inconsistent-application-of-solhint-rule-gas-length-in-loops"&gt;Inconsistent Application of Solhint Rule gas-length-in-loops&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#duplicate-code"&gt;Duplicate Code&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#overly-exposed-state-variable"&gt;Overly Exposed State Variable&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#inconsistent-initialization-of-local-variables"&gt;Inconsistent Initialization of Local Variables&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#todo-comments-in-the-code"&gt;Todo Comments in the Code&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#misleading-documentation"&gt;Misleading Documentation&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-indexed-event-parameters"&gt;Lack of Indexed Event Parameters&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Fprotocol-defense-audit&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Audits</category>
      <category>L2's</category>
      <category>Solidity</category>
      <pubDate>Wed, 11 Dec 2024 14:45:44 GMT</pubDate>
      <guid>https://blog.openzeppelin.com/protocol-defense-audit</guid>
      <dc:date>2024-12-11T14:45:44Z</dc:date>
      <dc:creator>OpenZeppelin Security</dc:creator>
    </item>
    <item>
      <title>Sonic Opera Native Token Bridge Audit</title>
      <link>https://blog.openzeppelin.com/sonic-opera-native-token-bridge-audit</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/sonic-opera-native-token-bridge-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Sonic%20Opera%20Native%20Token%20Bridge%20Audit%20.png" alt="Sonic Opera Native Token Bridge Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#the-opera-bridge"&gt;The Opera Bridge&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#security-model-and-trust-assumptions"&gt;Security Model and Trust Assumptions&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles"&gt;Privileged Roles&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#deployment-script"&gt;Deployment Script&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#medium-severity"&gt;Medium Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#missing-chain-id-and-contract-address-in-message-hash"&gt;Missing Chain ID and Contract Address in Message Hash&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incorrect-chain-id-values-in-operats-and-paramsjson"&gt;Incorrect Chain ID Values in opera.ts and params.json&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#potential-impact-of-eip-7702-on-eoa-assumption"&gt;Potential Impact of EIP-7702 on EOA Assumption&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-verification-for-total-sum-of-user-withdrawals"&gt;Missing Verification for Total Sum of User Withdrawals&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#fee-can-change-during-deposit"&gt;Fee Can Change During Deposit&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#variable-could-be-immutable"&gt;Variable Could Be immutable&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-security-contact"&gt;Lack of Security Contact&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incorrect-order-of-modifiers"&gt;Incorrect Order of Modifiers&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#file-and-interface-name-mismatch"&gt;File and Interface Name Mismatch&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incomplete-docstrings"&gt;Incomplete Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#variable-name-suggestion"&gt;Variable Name Suggestion&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#inefficient-use-of-uint16-type"&gt;Inefficient Use of uint16 Type&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-error"&gt;Unused Error&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#functions-are-updating-the-state-without-event-emissions"&gt;Functions Are Updating the State Without Event Emissions&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/sonic-opera-native-token-bridge-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Sonic%20Opera%20Native%20Token%20Bridge%20Audit%20.png" alt="Sonic Opera Native Token Bridge Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#the-opera-bridge"&gt;The Opera Bridge&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#security-model-and-trust-assumptions"&gt;Security Model and Trust Assumptions&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles"&gt;Privileged Roles&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#deployment-script"&gt;Deployment Script&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#medium-severity"&gt;Medium Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#missing-chain-id-and-contract-address-in-message-hash"&gt;Missing Chain ID and Contract Address in Message Hash&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incorrect-chain-id-values-in-operats-and-paramsjson"&gt;Incorrect Chain ID Values in opera.ts and params.json&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#potential-impact-of-eip-7702-on-eoa-assumption"&gt;Potential Impact of EIP-7702 on EOA Assumption&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-verification-for-total-sum-of-user-withdrawals"&gt;Missing Verification for Total Sum of User Withdrawals&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#fee-can-change-during-deposit"&gt;Fee Can Change During Deposit&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#variable-could-be-immutable"&gt;Variable Could Be immutable&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-security-contact"&gt;Lack of Security Contact&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incorrect-order-of-modifiers"&gt;Incorrect Order of Modifiers&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#file-and-interface-name-mismatch"&gt;File and Interface Name Mismatch&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incomplete-docstrings"&gt;Incomplete Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#variable-name-suggestion"&gt;Variable Name Suggestion&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#inefficient-use-of-uint16-type"&gt;Inefficient Use of uint16 Type&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-error"&gt;Unused Error&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#functions-are-updating-the-state-without-event-emissions"&gt;Functions Are Updating the State Without Event Emissions&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Fsonic-opera-native-token-bridge-audit&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Audits</category>
      <category>Solidity</category>
      <pubDate>Mon, 09 Dec 2024 13:46:34 GMT</pubDate>
      <guid>https://blog.openzeppelin.com/sonic-opera-native-token-bridge-audit</guid>
      <dc:date>2024-12-09T13:46:34Z</dc:date>
      <dc:creator>OpenZeppelin Security</dc:creator>
    </item>
    <item>
      <title>LineaRollup and TokenBridge Role Upgrade</title>
      <link>https://blog.openzeppelin.com/linearollup-and-tokenbridge-role-upgrade</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/linearollup-and-tokenbridge-role-upgrade" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Linea%20audit-1.png" alt="LineaRollup and TokenBridge Role Upgrade" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;December 4, 2024&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/linearollup-and-tokenbridge-role-upgrade" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Linea%20audit-1.png" alt="LineaRollup and TokenBridge Role Upgrade" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;December 4, 2024&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Flinearollup-and-tokenbridge-role-upgrade&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Audits</category>
      <category>Solidity</category>
      <pubDate>Thu, 28 Nov 2024 14:55:36 GMT</pubDate>
      <guid>https://blog.openzeppelin.com/linearollup-and-tokenbridge-role-upgrade</guid>
      <dc:date>2024-11-28T14:55:36Z</dc:date>
      <dc:creator>OpenZeppelin Security</dc:creator>
    </item>
    <item>
      <title>Tesseract Protocol Audit</title>
      <link>https://blog.openzeppelin.com/tesseract-protocol-audit</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/tesseract-protocol-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Tesseract%20audit.png" alt="Tesseract Protocol Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#security-model-and-trust-assumptions"&gt;Security Model and Trust Assumptions&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles"&gt;Privileged Roles&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#compatibility"&gt;Compatibility&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#high-severity"&gt;High Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#native-token-bridge-functionality-is-unsupported"&gt;Native Token Bridge Functionality is Unsupported&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#cross-function-reentrancy-in-yakswapcell"&gt;Cross-Function Reentrancy in YakSwapCell&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#medium-severity"&gt;Medium Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#zero-fee-in-yakswapcell_swap-causes-revert-when-fee-is-enabled"&gt;Zero Fee in YakSwapCell._swap Causes Revert When Fee Is Enabled&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incompatibility-with-tokens-that-implement-approval-race-protection"&gt;Incompatibility with Tokens That Implement Approval Race Protection&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#abi-decode-might-produce-unexpected-reverts"&gt;ABI Decode Might Produce Unexpected Reverts&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#fixed-gas-limit-in-single-hop-transfers"&gt;Fixed Gas Limit in Single-Hop Transfers&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#incorrect-handling-of-secondaryfee-for-single-hops"&gt;Incorrect Handling of secondaryFee for Single Hops&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unrestricted-access-to-the-receivetokens"&gt;Unrestricted Access to the receiveTokens&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-input-validation"&gt;Lack of Input Validation&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#swapfailed-event-redundancy"&gt;SwapFailed Event Redundancy&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#use-of-custom-errors"&gt;Use of Custom Errors&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#non-explicit-import-are-used"&gt;Non Explicit Import Are Used&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-validation-for-hop-index"&gt;Missing Validation for Hop Index&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-import"&gt;Unused Import&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#redundant-indexing-of-amount-in-rollback-event"&gt;Redundant Indexing of amount in Rollback Event&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#excessive-data-in-multihop-payload-transmission"&gt;Excessive Data in Multihop Payload Transmission&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#excessive-complexity-of-the-cell-contract"&gt;Excessive Complexity of the Cell Contract&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#redundant-value-returned-by-route-function-in-yakswapcell-contract"&gt;Redundant Value Returned by route Function in YakSwapCell Contract&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#potential-panic-error-in-yakswapcell-contracts-route-function"&gt;Potential Panic Error in YakSwapCell Contract's route Function&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#appendix"&gt;Appendix&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#out-of-scope-issues"&gt;Out of Scope Issues&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/tesseract-protocol-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Tesseract%20audit.png" alt="Tesseract Protocol Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#security-model-and-trust-assumptions"&gt;Security Model and Trust Assumptions&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles"&gt;Privileged Roles&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#compatibility"&gt;Compatibility&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#high-severity"&gt;High Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#native-token-bridge-functionality-is-unsupported"&gt;Native Token Bridge Functionality is Unsupported&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#cross-function-reentrancy-in-yakswapcell"&gt;Cross-Function Reentrancy in YakSwapCell&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#medium-severity"&gt;Medium Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#zero-fee-in-yakswapcell_swap-causes-revert-when-fee-is-enabled"&gt;Zero Fee in YakSwapCell._swap Causes Revert When Fee Is Enabled&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incompatibility-with-tokens-that-implement-approval-race-protection"&gt;Incompatibility with Tokens That Implement Approval Race Protection&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#abi-decode-might-produce-unexpected-reverts"&gt;ABI Decode Might Produce Unexpected Reverts&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#fixed-gas-limit-in-single-hop-transfers"&gt;Fixed Gas Limit in Single-Hop Transfers&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#incorrect-handling-of-secondaryfee-for-single-hops"&gt;Incorrect Handling of secondaryFee for Single Hops&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unrestricted-access-to-the-receivetokens"&gt;Unrestricted Access to the receiveTokens&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-input-validation"&gt;Lack of Input Validation&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#swapfailed-event-redundancy"&gt;SwapFailed Event Redundancy&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#use-of-custom-errors"&gt;Use of Custom Errors&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#non-explicit-import-are-used"&gt;Non Explicit Import Are Used&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#missing-validation-for-hop-index"&gt;Missing Validation for Hop Index&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-import"&gt;Unused Import&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#redundant-indexing-of-amount-in-rollback-event"&gt;Redundant Indexing of amount in Rollback Event&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#excessive-data-in-multihop-payload-transmission"&gt;Excessive Data in Multihop Payload Transmission&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#excessive-complexity-of-the-cell-contract"&gt;Excessive Complexity of the Cell Contract&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#redundant-value-returned-by-route-function-in-yakswapcell-contract"&gt;Redundant Value Returned by route Function in YakSwapCell Contract&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#potential-panic-error-in-yakswapcell-contracts-route-function"&gt;Potential Panic Error in YakSwapCell Contract's route Function&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#appendix"&gt;Appendix&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#out-of-scope-issues"&gt;Out of Scope Issues&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Ftesseract-protocol-audit&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Audits</category>
      <category>Solidity</category>
      <pubDate>Thu, 28 Nov 2024 14:23:34 GMT</pubDate>
      <guid>https://blog.openzeppelin.com/tesseract-protocol-audit</guid>
      <dc:date>2024-11-28T14:23:34Z</dc:date>
      <dc:creator>OpenZeppelin Security</dc:creator>
    </item>
    <item>
      <title>Cross Chain Swaps Audit</title>
      <link>https://blog.openzeppelin.com/cross-chain-swaps-audit</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/cross-chain-swaps-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Cross%20Chain%20Swaps%20Audit.png" alt="Cross Chain Swaps Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles"&gt;Privileged Roles&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#security-model-and-trust-assumptions"&gt;Security Model and Trust Assumptions&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#general-recommendations"&gt;General Recommendations&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#missing-docstrings"&gt;Missing Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incomplete-docstrings"&gt;Incomplete Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#gas-optimization"&gt;Gas Optimization&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-sensitive-event-emission"&gt;Lack of Sensitive Event Emission&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#floating-pragma"&gt;Floating Pragma&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#publicwithdraw-can-happen-during-cancellation"&gt;publicWithdraw Can Happen During Cancellation&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/cross-chain-swaps-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Cross%20Chain%20Swaps%20Audit.png" alt="Cross Chain Swaps Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#privileged-roles"&gt;Privileged Roles&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#security-model-and-trust-assumptions"&gt;Security Model and Trust Assumptions&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#general-recommendations"&gt;General Recommendations&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#low-severity"&gt;Low Severity&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#missing-docstrings"&gt;Missing Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#incomplete-docstrings"&gt;Incomplete Docstrings&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#gas-optimization"&gt;Gas Optimization&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#lack-of-sensitive-event-emission"&gt;Lack of Sensitive Event Emission&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#floating-pragma"&gt;Floating Pragma&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#publicwithdraw-can-happen-during-cancellation"&gt;publicWithdraw Can Happen During Cancellation&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Fcross-chain-swaps-audit&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Audits</category>
      <category>Solidity</category>
      <pubDate>Thu, 14 Nov 2024 14:37:03 GMT</pubDate>
      <guid>https://blog.openzeppelin.com/cross-chain-swaps-audit</guid>
      <dc:date>2024-11-14T14:37:03Z</dc:date>
      <dc:creator>OpenZeppelin Security</dc:creator>
    </item>
    <item>
      <title>Dojo Namespace Diff Audit</title>
      <link>https://blog.openzeppelin.com/dojo-namespace-diff-audit</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/dojo-namespace-diff-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Dojo%20Audit.png" alt="Dojo Namespace Diff Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#incomplete-comment"&gt;Incomplete Comment&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#naming-suggestion"&gt;Naming Suggestion&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#todo-comments"&gt;TODO Comments&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#code-simplification"&gt;Code Simplification&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-code"&gt;Unused code&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#typographical-error"&gt;Typographical Error&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://blog.openzeppelin.com/dojo-namespace-diff-audit" title="" class="hs-featured-image-link"&gt; &lt;img src="https://blog.openzeppelin.com/hubfs/Dojo%20Audit.png" alt="Dojo Namespace Diff Audit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;div class="toc"&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href="#table-of-contents"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#scope"&gt;Scope&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#system-overview"&gt;System Overview&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href="#notes-additional-information"&gt;Notes &amp;amp; Additional Information&lt;/a&gt; 
   &lt;ul&gt; 
    &lt;li&gt;&lt;a href="#incomplete-comment"&gt;Incomplete Comment&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#naming-suggestion"&gt;Naming Suggestion&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#todo-comments"&gt;TODO Comments&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#code-simplification"&gt;Code Simplification&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#unused-code"&gt;Unused code&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href="#typographical-error"&gt;Typographical Error&lt;/a&gt;&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=7795250&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fblog.openzeppelin.com%2Fdojo-namespace-diff-audit&amp;amp;bu=https%253A%252F%252Fblog.openzeppelin.com&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Security Audits</category>
      <category>Gaming</category>
      <category>Cairo</category>
      <pubDate>Tue, 12 Nov 2024 14:22:19 GMT</pubDate>
      <guid>https://blog.openzeppelin.com/dojo-namespace-diff-audit</guid>
      <dc:date>2024-11-12T14:22:19Z</dc:date>
      <dc:creator>OpenZeppelin Security</dc:creator>
    </item>
  </channel>
</rss>
