Back to Home

Contract 0x035df4043a85...ff53e09d1908

Utility
0x035df4043a85...ff53e09d1908
FrontierContract #2,458DecompiledEdit this contract
Deployed October 23, 2015 (10 years ago)Block 426,950

An Oraclize callback counter: it looks up the current Oraclize address and counts only the calls that arrive from it.

Frontier Era

Historical Significance

Contracts cannot reach outside the chain, so anything that depends on the outside world depends on an oracle and, with it, on recognising the oracle when it calls back. This contract is that check on its own, with the counter as the only output: proof that the callback arrived and came from the right place. Oraclize was the service almost every early contract needing external data used, and the resolver indirection here is what let it move its own address without breaking them.

Context

Deployed in October 2015, when Oraclize was effectively the only way for a contract to obtain data from outside the chain. The design in use, a resolver contract giving out the current callback address, is a workaround for the fact that a deployed contract cannot be edited when a dependency moves.

Key Facts
Deployment Block
426,950
Deployment Date
Oct 23, 2015, 11:08 AM
Code Size
1.1 KB
Gas at Deploy
280,516

Description

A small contract for testing an oracle callback. It holds the address of the Oraclize address resolver and asks it for the current callback address on every incoming call, incrementing a public counter only when the caller matches. myid() reads back the identifier of the query it is tracking and kill() destroys the contract.

kill() is gated on a single hardcoded address rather than on a stored owner, so the right to destroy the contract was fixed when it was compiled and cannot be moved.

Resolving the callback address at call time rather than storing it is the pattern Oraclize asked integrators to use, so that a change of service address would not strand the contracts depending on it.

Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: Utility
Contains SELFDESTRUCT opcode

Bytecode Overview

Opcodes1,117
Unique Opcodes132
Jump Instructions42
Storage Operations17

External Links

Related contracts