Back to Home

DepositContract

0xd778b16c600e...cba9c7f71769
ByzantiumSource VerifiedEdit this contract
Deployed April 30, 2018 (8 years ago)Block 5,533,373

Populous platform deposit contract: one per client, holding invoice-financing tokens that only the platform server or the Populous bank contract may move.

Byzantium EraVerified Source

Historical Significance

The shape is an exchange deposit address, but the purpose is not an exchange. Populous was financing real invoices, so a client's deposit address had to be movable by the platform's operational key and by the bank contract, and by nobody else, including the client. Putting both roles behind one AccessManager rather than storing an owner per contract is what made that governable at scale: one contract to rotate, and every client address follows.

Key Facts
Deployment Block
5,533,373
Deployment Date
Apr 30, 2018, 06:00 PM
Code Size
1005.0 B

Description

Populous ran invoice financing on Ethereum, and gave every client an address of their own. This is that address. It holds no logic beyond custody: a single storage slot points at an AccessManager, and every decision about who may act is delegated to it.

transfer takes the token contract, a destination and an amount, and is gated on the AccessManager answering true to isServer or isPopulous. Neither the client nor the deployer is privileged here; authority lives in two roles the platform controls, and the deposit contract simply asks. balanceOf is the read side, reporting this contract's holding of any token passed to it, so the platform can reconcile without knowing which tokens a client has been sent.

updateAccessManager is restricted to the server alone, which is the one lever that matters: rotating the access manager re-points authority for every deposit contract that references it, without redeploying any of them.

The source is Populous's own, from the platform's published contracts: DepositContract inheriting withAccessManager, against the iERC20Token interface.

Source Verified

Solidityeh_crack_source_verified
Compiler: v0.4.17

Bytecode Overview

Opcodes1,005
Unique Opcodes114
Jump Instructions51
Storage Operations8

External Links