TRONSCAN
TRX:Loading
  • Home
  • Blockchain
    NodesBlocksAccounts
    ContractsTransfersTransactions
  • Tokens
    Token Tracker
    Hot Tokens
    image
    TRX

    Official Token of TRON Protocol

    image
    USDT

    Tether USD

    image
    PROS

    Prospective

    image
    SUNDOG

    Sundog

    image
    PePe

    PePe

    image
    $Afro

    Afro

  • Data
    Charts
    TRX Total SupplyTotal Protocol RevenueActive AccountsTransaction TrendsMore
    Rankings
    Top AccountsTop TokensTop ContractsResource ConsumptionMore
    Analytics
    Account HoldingsStablecoin OverviewMore
  • Governance
    Super RepresentativesVotesTRX StakingParameters & Proposals
  • TRON Ecosystem
    DeFi
    JustLend DAO

    TRON's largest decentralized lending platform

    SUN

    TRON's first AMM exchange & mining platform

    SunPump

    TRON's first meme fair launch platform

    SunX

    TRON's first perpetual futures DEX

    JustStable

    A fixed-rate financial system pegged to TRX

    Infrastructure
    TronLink

    The most professional and secure wallet for TRON

    GasFree

    Cost-Effective Accessible Transfers For Everyone

    BTTC

    Cross-chain support for TRON / Ethereum / BSC

    BTFS

    A scalable decentralized storage system

    Decentralized Stablecoin
    USDD

    TRON's first decentralized and over-collateralized stablecoin

    RWA
    image
    stUSDT

    Unleash yields in Real-World Assets (RWA)

    AI
    BANK OF AI

    On-chain payments, identities, and DeFi for AI agents.

    AINFT

    AI infrastructure of TRON ecosystem

    For more projects in the TRON ecosystem, visitDefiLlama
  • Developers
    APIAPI
    Provide easy, efficient, and secure access to the TRON network, ushering in the future of decentralization. The security services enable you to customize the security strategy of your product.
    Dev Resources
    Developer HubGitHubJava-tronMCP & Skills
    Dev Tools
    TronGridTronBoxTronIDETronWebMore
    Community
    DiscordForumHackathonBug Bounty
  • More
    Tools
    Record TokenEncoding ConverterResource CalculatorMulti-Chain Address FinderSign & VerifyTRC-8004 SCAN
    Contract DeploymentContract VerificationBroadcast TransactionRent Energy
    Help Center
    How to set up a multisig account?How to update token information?How to report a scam?How to submit a project?More
    Need more help? Contact us
    Feedback
  • testnetNILE TESTNETSHASTA TESTNET
    All
    All
    tron

    The best blockchain explorer of TRON

    Preferences
    About Us
    • Privacy Policy
    • Terms of Service
    Services & Support
    • API Service
    • Advertise
    • Contact Us
    Resources
    • TRON ETF
    • TRON Architecture
    • TRON Whitepaper V2.1
    Copyright© 2017-2026 tronscan.org
    tron

    The best blockchain explorer of TRON

    About Us
    • Privacy Policy
    • Terms of Service
    Services & Support
    • API Service
    • Advertise
    • Contact Us
    Resources
    • TRON ETF
    • TRON Architecture
    • TRON Whitepaper V2.1
    Copyright© 2017-2026 tronscan.org
    All
    All

    Solidity Compiler Error Message

    Compiler Version:
    0.8.18
    Solidity Compiler Version existLostStorageArrayWriteOnSlotOverflow(low-severity),VerbatimInvalidDeduplication(low-severity),FullInlinerNonExpressionSplitArgumentEvaluationOrder(low-severity),MissingSideEffectsOnSelectorAccess(low-severity)There are 4 known compiler bugs.
    Bug NameDescriptionSeverity
    Bug Name
    Description
    Severity
    LostStorageArrayWriteOnSlotOverflow
    Operations that involve clearing or copying from arrays that straddle the end of storage could result in silent data retention.
    Solidity makes it possible to define variables that extend past the last (2**256-th) slot of storage, which results in wrap-around back to slot zero. Since EVM uses 256-bit integer arithmetic, most operations on such variables just work. The only situation which requires special attention is iteration against absolute slot addresses: the invariant that the last slot belonging to a variable has the highest address does not hold. When implemented incorrectly, a loop over an array will immediately terminate if the container spans the end of storage - due to the initial position already being greater than the end position. This affected storage array clearing loops generated by both evmasm and IR pipelines. Additionally, (only in the evmasm pipeline) copying operations whose source was an array straddling the end of storage were also affected. At the language level, the buggy code would be generated for array assignment, array initialization, delete operator, <array>.pop() and <array>.push(). Note that a clearing loop is inserted by the compiler not only for invocations of the delete operator, but also to zero storage when overwriting a longer array with a shorter one, popping an element or even pushing an empty element to a dynamic array. Since clearing is a separate loop, it is possible for the bug to only affect it and not the copy operation it follows (which is always the case in the IR pipeline). The bug is extremely unlikely to be triggered accidentally due to the probabilistic impossibility of a short dynamic array being allocated right at the storage boundary. On the other hand, scenarios in which a user may place a static array there intentionally do not seem realistic and are limited to unusual layouts, in which a contract does not place any storage variables at slot zero (otherwise they would overlap the array).
    low
    VerbatimInvalidDeduplication
    All ``verbatim`` blocks are considered identical by deduplicator and can incorrectly be unified when surrounded by identical opcodes.
    The block deduplicator is a step of the opcode-based optimizer which identifies equivalent assembly blocks and merges them into a single one. However, when blocks contained ``verbatim``, their comparison was performed incorrectly, leading to the collapse of assembly blocks which are identical except for the contents of the ``verbatim`` items. Since ``verbatim`` is only available in Yul, compilation of Solidity sources is not affected.
    low
    FullInlinerNonExpressionSplitArgumentEvaluationOrder
    Optimizer sequences containing FullInliner do not preserve the evaluation order of arguments of inlined function calls in code that is not in expression-split form.
    Function call arguments in Yul are evaluated right to left. This order matters when the argument expressions have side-effects, and changing it may change contract behavior. FullInliner is an optimizer step that can replace a function call with the body of that function. The transformation involves assigning argument expressions to temporary variables, which imposes an explicit evaluation order. FullInliner was written with the assumption that this order does not necessarily have to match usual argument evaluation order because the argument expressions have no side-effects. In most circumstances this assumption is true because the default optimization step sequence contains the ExpressionSplitter step. ExpressionSplitter ensures that the code is in *expression-split form*, which means that function calls cannot appear nested inside expressions, and all function call arguments have to be variables. The assumption is, however, not guaranteed to be true in general. Version 0.6.7 introduced a setting allowing users to specify an arbitrary optimization step sequence, making it possible for the FullInliner to actually encounter argument expressions with side-effects, which can result in behavior differences between optimized and unoptimized bytecode. Contracts compiled without optimization or with the default optimization sequence are not affected. To trigger the bug the user has to explicitly choose compiler settings that contain a sequence with FullInliner step not preceded by ExpressionSplitter.
    low
    MissingSideEffectsOnSelectorAccess
    Accessing the ``.selector`` member on complex expressions leaves the expression unevaluated in the legacy code generation.
    When accessing the ``.selector`` member on an expression with side-effects, like an assignment, a function call or a conditional, the expression would not be evaluated in the legacy code generation. This would happen in expressions where the functions used in the expression were all known at compilation time, regardless of whether the whole expression could be evaluated at compilation time or not. Note that the code generated by the IR pipeline was unaffected and would behave as expected.
    low