Oraclize's second address resolver, October 2015, deployed 47 seconds after the first. Its getAddress() still always returns 0x0.
Historical Significance
An early version of the Oraclize address resolver pattern, which the 0x1d11e5ea resolver later carried into Oraclize's public API. Source reconstructed from bytecode; exact runtime and creation match with solc v0.1.6, verified on Etherscan and Sourcify.
Context
Deployed on 24 October 2015 by the Oraclize operator account, 47 seconds after the first resolver at 0xed51ae5e42bba55d8316b5c38a8f14c149a32adc. That one had a hardcoded owner and connector; this one takes msg.sender as owner and renames changeAddr to setAddr, but keeps the getAddress() bug. The StopLoss test deployed half an hour later looked up Oraclize through this resolver. A corrected resolver followed at 16:00 at 0x3ae1631cf21fa7000ae72dd2f5daca8ed49b3529, and 0x1d11e5eae3112dbd44f99266872ff1d07c77dce8 at 17:30.
Key Facts
Description
An address resolver lets oracle-using contracts look up the current Oraclize connector instead of hardcoding it. The owner stores the connector with setAddr(), and addr() returns it. getAddress(), the function client contracts were meant to call, returns its own named return variable oaddr without ever assigning it, so it always answers 0x0. Onchain today addr() returns 0xbbbdca2d2973601d973bc0452252178fb992978f while getAddress() returns zero.
Source Verified
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
contract OraclizeAddrResolver {
function OraclizeAddrResolver(){
owner = msg.sender;
}
address public addr;
function getAddress() returns (address oaddr){
return oaddr;
}
function setAddr(address newaddr){
if (msg.sender != owner) throw;
addr = newaddr;
}
address owner;
}External Links
Related contracts
Target
Same deployerTarget contract.
0x9e0ae8...c9428eSeptember 17, 2015GetSet
Same deployerA minimal getter/setter proxy from the Oraclize team. set() forwards calls to a hardcoded target contract, get() returns constant 255.
0x77beac...7e96c2September 17, 2015SimpleStorage
Same deployerThe storage example rewired to send a wei and return a constant
0x7aa73b...46473bSeptember 17, 2015Controller
Same deployerController contract.
0x3c9492...e332e5September 17, 2015GetSet
Same deployerA 57-byte test contract: set() stores the transaction's ether value into storage slot 0, and get() reads it back.
0xe595e8...423530September 17, 2015GetSet
Same deployerA 57-byte test contract: set() stores the transaction's ether value into storage slot 0, and get() reads it back.
0xd17e9b...03b76aSeptember 17, 2015