Back to Home

Wallet

Unclassified
0xbcca90d550fd...51e51a517267
ByzantiumSource VerifiedEdit this contract
Deployed July 11, 2018 (8 years ago)Block 5,942,123

An earlier revision of Gavin Wood's multi-owner daily-limit wallet, keeping the pre-require modifier style and a version number in storage.

Byzantium EraVerified Source

Historical Significance

Silent failure is the detail worth sitting with. Because the modifiers return instead of reverting, a caller who is not an owner gets a successful transaction that did nothing, and any wrapper watching only the transaction status would conclude the operation went through. The move to require in later revisions of this same file is one of the small, unglamorous corrections that made contract interfaces honest, and this build is a record of what came before it.

Key Facts
Deployment Block
5,942,123
Deployment Date
Jul 11, 2018, 01:42 AM
Code Size
6.8 KB
Gas at Deploy
2,052,743
Transactions by Year
20181

Description

The structure is the familiar one: multiowned holds the owner set and per-operation confirmation bitmaps, daylimit adds a rolling twenty-four hour allowance, and Wallet joins them so small sends go through on one signature while larger ones become pending operations confirmed by hash.

What marks this build as older is how the modifiers fail. onlyowner, onlymanyowners and limitedDaily each wrap the body in a plain if rather than a require, so an unauthorised call does not revert, it simply does nothing and returns successfully. The operation hashes also mix in the block number, which scopes a pending operation to the block it was proposed in. The fallback is not declared payable, which is what a source written before Solidity 0.4 looks like once it is recompiled on a later compiler; the msg.value check inside it can no longer be reached.

A public version number sits in storage after the daily-limit fields, and getOwner has been dropped from the owner-query interface.

Source Verified

Solidityeh_crack_source_verified
Compiler: v0.4.22
Heuristic Analysis

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

Detected Type: Unclassified

Bytecode Overview

Opcodes7,014
Unique Opcodes244
Jump Instructions354
Storage Operations167

External Links

Related contracts