{"id":8059,"date":"2025-02-02T10:27:09","date_gmt":"2025-02-02T09:27:09","guid":{"rendered":"https:\/\/wsj-crypto.com\/?p=8059"},"modified":"2025-02-02T10:27:09","modified_gmt":"2025-02-02T09:27:09","slug":"unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs","status":"publish","type":"post","link":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/","title":{"rendered":"Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs"},"content":{"rendered":"<p><\/p>\n<div id=\"\">\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"solidity-storage-array-bug-announcement\">Announcement of Solidity Storage Array Bug<!-- --><\/h2>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">This article discusses two distinct bugs related to storage arrays which are otherwise not linked. Both have lingered in the compiler for an extended period and were only uncovered recently, despite a contract that encompasses them likely demonstrating issues during tests.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\"><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/www.linkedin.com\/in\/daenamkim\/\">Daenam Kim<!-- --><\/a>, assisted by <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/www.linkedin.com\/in\/nguyen-pham-635748161\/\">Nguyen Pham<!-- --><\/a>, both associated with <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/www.curvegrid.com\/\">Curvegrid<!-- --><\/a>, identified a problem where erroneous data is recorded in relation to arrays of signed integers.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">This issue has existed since Solidity version 0.4.7 and is regarded as the more critical of the two. If these arrays incorporate negative integers in particular scenarios, it will result in data corruption, thereby making the bug relatively easy to identify.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Through the Ethereum bug bounty initiative, we received a notification regarding a vulnerability in the new experimental ABI encoder (denoted as ABIEncoderV2). The new ABI encoder is still categorized as experimental, but we believe this warrants a significant announcement as it is already utilized on mainnet.<br \/>\nAcknowledgments go to Ming Chuan Lin (from <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/www.secondstate.io\">https:\/\/www.secondstate.io<!-- --><\/a>) for both uncovering and rectifying the bug!<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/github.com\/ethereum\/solidity\/releases\/tag\/v0.5.10\">0.5.10 release<!-- --><\/a> includes the resolutions for the bugs.<br \/>\nCurrently, we do not intend to release a fix for the legacy 0.4.x series of Solidity, although we may consider it if there is considerable demand.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Both bugs should be easily discernible in tests that involve the relevant code paths.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Further details regarding the two bugs can be found below.<!-- --><\/p>\n<p><!-- --><\/p>\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"signed-integer-array-bug\">Signed Integer Array Bug<!-- --><\/h2>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"who-should-be-concerned\">Who needs to be cautious<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Should you have deployed contracts utilizing signed integer arrays in storage and either directly assign<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">a literal array containing at least one negative element (<!-- --><span class=\"chakra-text css-ons8vw\">x = [-1, -2, -3];<\/span>) or<!-- --><\/li>\n<li class=\"css-cvpopp\">an existing array of a <!-- --><em class=\"chakra-text css-0\">different<!-- --><\/em> signed integer type<!-- --><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">to it, this will result in data corruption within the storage array.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Contracts that solely assign individual array components (for example, <!-- --><span class=\"chakra-text css-ons8vw\">x[2] = -1;<\/span>) remain unaffected.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"how-to-check-if-contract-is-vulnerable\">How to ascertain if the contract is susceptible<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">If you are utilizing signed integer arrays in storage, attempt to execute tests incorporating negative values. The expected outcome should be that the actual value recorded is positive instead of negative.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">If you possess a contract that meets these criteria and wish to confirm whether it is truly susceptible, you can contact us via <!-- --><a class=\"chakra-link css-ug8vf0\" href=\"https:\/\/blog.ethereum.org\/en\/2019\/06\/25\/mailto:security@ethereum.org\">security@ethereum.org<!-- --><\/a>.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"technical-details\">Technical specifics<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Storage arrays can accept assignments from arrays of varying types. During this transfer and assignment operation, a type conversion occurs for each of the elements. In addition to the conversion, particularly if the signed integer type is less than 256 bits, certain bits of the value need to be cleared in preparation to store multiple values within the same storage slot.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The bits to clear were incorrectly decided from the source rather than the target type. This results in an excessive number of bits being cleared. Specifically, the sign bit will be cleared, causing the value to appear positive.<!-- --><\/p>\n<p><!-- --><\/p>\n<h2 class=\"chakra-heading css-1w54o5f\" id=\"abiencoderv2-array-bug\">ABIEncoderV2 Array Bug<!-- --><\/h2>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"who-should-be-concerned-1\">Who should exercise caution<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">If you have deployed contracts employing the experimental ABI encoder V2, those may be at risk. This indicates that only contracts utilizing the subsequent directive within the source code can be influenced:<!-- --><\/p>\n<p><!-- --><\/p>\n<div class=\"chakra-stack css-1uyok63\">\n<pre><pre style=\"color:white;font-family:Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;padding:1em;margin:0.5em 0;overflow:auto;background:#011627\"><code class=\"language-bash\" style=\"color:#d6deeb;font-family:Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none\"><span>pragma experimental ABIEncoderV2<!-- --><\/span><span class=\"token\" style=\"color:rgb(199, 146, 234)\">;<!-- --><\/span><span>\n<!-- --><\/span><\/code><\/pre>\n<\/div>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Moreover, various conditions must be fulfilled for the bug to be activated. Refer to the technical specifics further down for additional information.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"how-to-check-if-contract-is-vulnerable-1\">How to check if the contract is vulnerable<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The bug only presents itself if all of the following conditions are satisfied:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">Storage data involving arrays or structs is sent directly to an external function call, to <!-- --><span class=\"chakra-text css-ons8vw\">abi.encode<\/span> or to event data without previously assigning it to a local (memory) variable AND<!-- --><\/li>\n<li class=\"css-cvpopp\">this data either includes an array of structs or an array of statically-sized arrays (i.e. at least two-dimensional).<!-- --><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Additionally, in the following scenario, your code is NOT impacted:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">if you solely return such data and refrain from using it in <!-- --><span class=\"chakra-text css-ons8vw\">abi.encode<\/span>, external calls, or event data.<!-- --><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"possible-consequences\">Potential ramifications<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Naturally, any bug can have significantly different consequences based on the program\u2019s control flow, but we foresee that this is more prone to cause operational dysfunction than exploitation.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Upon triggering, the bug will, under specific circumstances, send corrupted parameters on method calls to other contracts.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"technical-details-1\">Technical specifics<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">During the encoding phase, the experimental ABI encoder fails to advance correctly to the subsequent element in an array when the elements occupy more than a single storage slot.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">This issue is exclusive to elements that are structs or statically-sized arrays. Arrays of dynamically-sized arrays or of fundamental data types are unaffected.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The specific impact you will observe is that data appears &#8220;shifted&#8221; in the encoded array: If you have an array of type <!-- --><span class=\"chakra-text css-ons8vw\">uint[2][]<\/span> and it comprises the data<br \/>\n<!-- --><span class=\"chakra-text css-ons8vw\">[[1, 2], [3, 4], [5, 6]]<\/span>, then it will be encoded as <!-- --><span class=\"chakra-text css-ons8vw\">[[1, 2], [2, 3], [3, 4]]<\/span> as the encoder only progresses by one slot between elements instead of two.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">This article was collaboratively written by @axic, @chriseth, @holiman<!-- --><\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.ethereum.org\/en\/2019\/06\/25\/solidity-storage-array-bugs\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Announcement of Solidity Storage Array Bug This article discusses two distinct bugs related to storage arrays which are otherwise not linked. Both have lingered in the compiler for an extended period and were only uncovered recently, despite a contract that encompasses them likely demonstrating issues during tests. Daenam Kim, assisted by Nguyen Pham, both associated<\/p>\n","protected":false},"author":3,"featured_media":7155,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[1113],"class_list":["post-8059","post","type-post","status-publish","format-standard","has-post-thumbnail","category-ethereum","tag-return-a-list-of-comma-separated-tags-from-this-title-solidity-storage-array-bugs-ethereum-foundation-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs - WSJ-Crypto<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs - WSJ-Crypto\" \/>\n<meta property=\"og:description\" content=\"Announcement of Solidity Storage Array Bug This article discusses two distinct bugs related to storage arrays which are otherwise not linked. Both have lingered in the compiler for an extended period and were only uncovered recently, despite a contract that encompasses them likely demonstrating issues during tests. Daenam Kim, assisted by Nguyen Pham, both associated\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/\" \/>\n<meta property=\"og:site_name\" content=\"WSJ-Crypto\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-02T09:27:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/eth-org.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2100\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"wsjcrypto\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"wsjcrypto\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/\",\"url\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/\",\"name\":\"Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs - WSJ-Crypto\",\"isPartOf\":{\"@id\":\"https:\/\/wsj-crypto.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/eth-org.jpeg\",\"datePublished\":\"2025-02-02T09:27:09+00:00\",\"author\":{\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#primaryimage\",\"url\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/eth-org.jpeg\",\"contentUrl\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/eth-org.jpeg\",\"width\":2100,\"height\":900},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wsj-crypto.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wsj-crypto.com\/#website\",\"url\":\"https:\/\/wsj-crypto.com\/\",\"name\":\"WSJ-Crypto\",\"description\":\"Just Another Crypto News Website\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wsj-crypto.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7\",\"name\":\"wsjcrypto\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g\",\"caption\":\"wsjcrypto\"},\"url\":\"https:\/\/wsj-crypto.com\/index.php\/author\/wsjcrypto\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs - WSJ-Crypto","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/","og_locale":"it_IT","og_type":"article","og_title":"Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs - WSJ-Crypto","og_description":"Announcement of Solidity Storage Array Bug This article discusses two distinct bugs related to storage arrays which are otherwise not linked. Both have lingered in the compiler for an extended period and were only uncovered recently, despite a contract that encompasses them likely demonstrating issues during tests. Daenam Kim, assisted by Nguyen Pham, both associated","og_url":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/","og_site_name":"WSJ-Crypto","article_published_time":"2025-02-02T09:27:09+00:00","og_image":[{"width":2100,"height":900,"url":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/eth-org.jpeg","type":"image\/jpeg"}],"author":"wsjcrypto","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"wsjcrypto","Tempo di lettura stimato":"4 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/","url":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/","name":"Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs - WSJ-Crypto","isPartOf":{"@id":"https:\/\/wsj-crypto.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#primaryimage"},"image":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#primaryimage"},"thumbnailUrl":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/eth-org.jpeg","datePublished":"2025-02-02T09:27:09+00:00","author":{"@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7"},"breadcrumb":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#primaryimage","url":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/eth-org.jpeg","contentUrl":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/01\/eth-org.jpeg","width":2100,"height":900},{"@type":"BreadcrumbList","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/02\/02\/unveiling-the-pitfalls-of-solidity-storage-arrays-a-deep-dive-into-common-bugs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wsj-crypto.com\/"},{"@type":"ListItem","position":2,"name":"Unveiling the Pitfalls of Solidity Storage Arrays: A Deep Dive into Common Bugs"}]},{"@type":"WebSite","@id":"https:\/\/wsj-crypto.com\/#website","url":"https:\/\/wsj-crypto.com\/","name":"WSJ-Crypto","description":"Just Another Crypto News Website","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wsj-crypto.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7","name":"wsjcrypto","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g","caption":"wsjcrypto"},"url":"https:\/\/wsj-crypto.com\/index.php\/author\/wsjcrypto\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/8059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/comments?post=8059"}],"version-history":[{"count":2,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/8059\/revisions"}],"predecessor-version":[{"id":8061,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/8059\/revisions\/8061"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/media\/7155"}],"wp:attachment":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/media?parent=8059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/categories?post=8059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/tags?post=8059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}