Back to Home

Collector

0x9e4648beaff1...03be237bdb8b
ByzantiumExact Bytecode MatchEdit this contract
Deployed February 6, 2018 (8 years ago)Block 5,039,372

Unoptimized collector that pushes ether and ERC-20 balances to a fixed wallet.

Byzantium EraVerified Source

Historical Significance

A clear example of why 'anyone can call it' is not automatically a vulnerability: the only reachable effect is moving funds to an address baked in at deployment. It also shows how much larger unoptimized 0.4.x output is. The optimizer would have cut this contract down substantially.

Key Facts
Deployment Block
5,039,372
Deployment Date
Feb 6, 2018, 05:35 AM
Code Size
692.0 B
Transactions by Year
20187

Description

A small collector with one stored address, exposed as the public getter wallet(). Its payable fallback accepts ether. collect(uint256) sends a caller-chosen amount of the contract's ether to the stored wallet using send() and reverts if that fails, while doTransfer(address,uint256) calls transfer on a caller-supplied ERC-20 contract to move tokens to the same wallet. Neither function has an access check, so anyone may trigger a payout. That is harmless only because the destination is fixed at deployment and cannot be changed. Compiled with the optimizer disabled, which is visible in the bytecode as full-width address masks rather than the compact form the optimizer emits. The runtime code matches the deployed bytecode byte for byte; only the trailing swarm metadata hash differs, because the EthereumHistory attribution comment changes the source text. Sourcify records this as a partial match and Etherscan shows it as verified.

Source Verified

SolidityExact bytecode match(692 bytes)
Compiler: v0.4.18

Bytecode Overview

Opcodes692
Unique Opcodes97
Jump Instructions27
Storage Operations5

External Links