Skip to content

Artifacts

DISCLAIMER // NFA // DYOR

This analysis is based on observations of the contract behavior. We are not smart contract security experts. This document aims to explain what the contract appears to do based on the code. It should not be considered a comprehensive security audit or financial advice. Always verify critical information independently and consult with blockchain security professionals for important decisions.

⊙ generated by robots | curated by humans

METADATA
Contract Address 0x8d33666c83f7f17a1b8dc0e950d8ff2e7e37c563 (etherscan)
Network Ethereum Mainnet
Analysis Date 2025-12-26

Runtime Bytecode

The deployed contract bytecode fetched from the blockchain.

Source: Etherscan - Contract Code

Command:

export ETH_RPC_URL=https://eth.llamarpc.com
cast code 0x8d33666c83f7f17a1b8dc0e950d8ff2e7e37c563

Size: 12,329 bytes

Artifact: See /artifacts/8d33666c...37c563/bytecode.txt


Creation Bytecode

The full bytecode used to deploy the contract, including constructor code and arguments.

Source: Etherscan - Creation TX

Command:

export ETH_RPC_URL=https://eth.llamarpc.com
cast tx 0x2cdc2c5f3a0b2f0b85e6692b32cb791337fe9a6938785138ee0f409261b535d7 input

Constructor Arguments (decoded):

PARAMETER TYPE VALUE
beneficiary address 0xbc6921A5C7e2f88E5fBC8f5ec100b13Dd0bD01fe

Artifact: See /artifacts/8d33666c...37c563/creation_bytecode.txt


Reconstructed Source Code

Solidity source code reconstructed from bytecode analysis. This is an approximation based on function selectors, storage layout, and error messages found in the bytecode.

Not Verified Source

This is a reconstruction based on bytecode analysis and may not exactly match the original source code. It is provided for educational and analysis purposes only.

Source: Reconstructed from bytecode analysis using function selectors, storage slots, and error message strings.

Artifact: See /artifacts/8d33666c...37c563/SentinelPresale_reconstructed.sol

Key Components Identified:

COMPONENT CONFIDENCE NOTES
Ownable pattern High Standard OpenZeppelin implementation
ReentrancyGuard High Slot 1 mutex pattern
Storage layout High Verified via direct reads
Function signatures High Matched against bytecode
Internal logic Medium Inferred from error messages

Error Messages

Error strings extracted from the bytecode, useful for understanding function behavior.

ERROR MESSAGE LIKELY FUNCTION MEANING
"Presale has ended" buySentinelWithEth, buySentinelWithToken Presale inactive
"Array length mismatch" addSupportedTokens Input array sizes don't match
"Rate must be greater than 0" addSupportedTokens Invalid rate value
"Sentinel already initialized" initializeSentinel One-time function already called
"Invalid address" initializeSentinel Address validation failed
"Token not supported" buySentinelWithToken, removeSupportedTokens Token not in whitelist
"Rate not set" buySentinelWithToken, buySentinelWithEth Token rate not configured
"Amount must be greater than 0" buySentinelWithEth, buySentinelWithToken Zero amount provided
"Use buySentinelWithEth for ETH" buySentinelWithToken Wrong function for ETH
"Sentinel amount too small" buySentinelWithEth, buySentinelWithToken Calculation resulted in 0
"Presale is already active" startPresale Cannot start twice
"Use withdrawEth()" withdrawToken Wrong withdraw function
"Failed to send Ether" withdrawEth, buySentinelWithEth ETH transfer failed
"Presale already ended" endPresale Cannot end twice
"Use buy/stake with ETH" receive() Direct ETH sends rejected
"Function/method ID is not found" fallback() Unknown function called

Function Selectors

All function selectors extracted from the bytecode dispatcher.

SELECTOR SIGNATURE CATEGORY
0x09069443 addSupportedTokens(address[],uint8[],uint256[]) Admin
0x09dac061 initializeSentinel(address) Admin
0x12efb3f4 SupportedTokens(address) View
0x1803751f mySentinelBought() View
0x22aa67e6 buySentinelWithToken(address,uint256) User
0x2575cdaa totalSentinelBought() View
0x2f48ab7d usdt() View
0x3246c689 TokenDecimals(address) View
0x3417fa5f TokenRates(address) View
0x38af3eed beneficiary() View
0x40c4cdb0 sentinelBoughtOf(address) View
0x54f63ee5 startPresale() Admin
0x60d938dc isPresaleActive() View
0x715018a6 renounceOwnership() Admin
0x7299a729 sentinelToken() View
0x8a5f1822 totalSentinelRaisedInUsdWei() View
0x8da5cb5b owner() View
0x9e281a98 withdrawToken(address,uint256) Admin
0x9f1166a0 buySentinelWithEth() User
0xa0ef91df withdrawEth() Admin
0xa43be57b endPresale() Admin
0xa80a50b9 removeSupportedTokens(address[]) Admin
0xb34a385f calculateSentinelAmount(address,uint256) View
0xb373fb9d totalSentinelRaised() View
0xc35fb403 SentinelBoughtTotal(address) View
0xc6290df0 lastTotalSentinelRaised() View
0xdc070657 setBeneficiary(address) Admin
0xeacd36ed getPresaleStats() View
0xf2fde38b transferOwnership(address) Admin

Storage Snapshot

Current storage values at time of analysis.

SLOT RAW VALUE DECODED
0 0x0000000000000000000000008758ca21d08c9bda75d6114614dce373bfd76968 owner
1 0x0000000000000000000000000000000000000000000000000000000000000001 reentrancyLock = 1
2 0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7 usdt
3 0x000000000000000000000000853319c1ebebd1e7ed38747e14e7affe255145c6 beneficiary
4 0x0000000000000000000000000000000000000000000000000000000000000000 sentinelToken
5 0x00000000000000000000000000000000000000000000000000000000d0267088 totalSentinelBought
6 0x00000000000000000000000000000000000000000000000000000000d0267088 totalSentinelRaised
7 0x0000000000000000000000000000000000000000000000000000000000000000 totalUsdWei = 0
8 0x0000000000000000000000000000000000000000000000000000000074b5aa70 lastRaised
9 0x0000000000000000000000000000000000000000000000000000000000120000 packed state

ADDRESS TYPE ROLE NOTES
0x8758Ca21d08c9bdA75D6114614DCE373bFD76968 EOA Owner Contract creator, high activity
0x853319C1eBebD1e7eD38747e14e7affe255145c6 EOA Beneficiary Current funds recipient, ~1,048 ETH
0xbc6921A5C7e2f88E5fBC8f5ec100b13Dd0bD01fe EOA Original Beneficiary Constructor argument, 0.001 ETH
0xdAC17F958D2ee523a2206206994597C13D831ec7 Contract USDT Tether USD on mainnet