Back to Home

OwnedWallet

0x447cb0cdcd05...91ed86279ef9
ByzantiumSource VerifiedEdit this contract
Deployed October 31, 2017 (8 years ago)Block 4,466,329

Minimal single owner execution wallet from late 2017: one owner, one execute call that can send ether and arbitrary calldata anywhere.

Byzantium EraVerified Source

Historical Significance

In late 2017 the standard way to hold value at an address other than your own key was to deploy one of these, and the standard way to write it was to start from the published multi signature wallet and delete. What survives here is the wallet as an interface rather than as a policy: a single execute, a single owner, no limits, no daily allowance, no confirmations. Account abstraction arguments that came years later are arguments about what to put back.

The operator that deployed this fleet kept ownership of every wallet and used the earliest of them to receive an EOS token distribution and forward it onward. Most of the rest were deployed and never used, which is its own piece of evidence about the period: addresses were cheap, and holding a supply of them in advance was a normal thing to do.

Token Information
Decimals
0
Key Facts
Deployment Block
4,466,329
Deployment Date
Oct 31, 2017, 09:27 PM
Code Size
584.0 B

Description

Two functions and one storage slot. owner is set to whoever deployed the contract and never changes, since there is no transfer of ownership here. execute takes a destination, an ether amount and a calldata blob, checks that the caller is the owner, forwards the call with the value attached, and reverts if it fails.

The return value is the detail that gives away its lineage. execute returns keccak256 of msg.data and block.number, which is the transaction identifier the multi signature wallet in ethereum/dapp-bin hands back when a proposed operation still needs confirmations. Here there is nobody to confirm anything: a single owner means the call always executes immediately, and the hash is returned for nothing. This is that wallet with the multi signature logic cut away and the shape of its interface left behind.

The payable fallback means the wallet holds ether, and execute is how it leaves. Because the calldata blob is arbitrary, the same function that sends ether also moves ERC20 tokens, by passing a transfer call as data with a value of zero.

Source Verified

Solidityeh_crack_source_verified
Compiler: v0.4.12

Bytecode Overview

Opcodes584
Unique Opcodes103
Jump Instructions25
Storage Operations5

External Links

Related contracts