Your First 90 DaysAcademy
Fluent Reading · Any Contract, Cold · Week 11 · Checkpoint 24

A File You Have Seen Never

One hundred and sixty one lines of Safe, opened cold. Nothing is introduced, because there is nothing left to introduce: the owners are kept in a mapping whose values are its own keys, and one comment is the only place in the file that says so.

16 steps~30 min3 nodes for your map
01 · Nothing here is new

One hundred and sixty one lines from Safe, and this is the last file in the course you will read this way. There is no preamble to it. Open it the way you would open anything you had never seen before: the state block first, then the functions, then back for the parts that only make sense afterwards.

Nothing in it is new. Every word on these boards arrived in a checkpoint behind you, and where something looks unfamiliar it will turn out to be an arrangement of parts you already own rather than a word you are missing. Read it for what it stores.

02 · The header, and three announcements

Line 3 imports one file and line 12 says `is SelfAuthorized`, so there is a parent, and this checkpoint never opens it. Line 12 also carries `abstract`, which settles that whatever this file is, it arrives as part of something larger and never deploys on its own.

Lines 13 to 15 announce three events with no bodies, two of them carrying `indexed`. Read the names rather than the shapes. Something is added, something is removed, and a number changes. That is the whole of what this file does, before you have read one function.

03 · Three variables and a constant

Line 17 fixes an address as a `constant`, so it lives in the code rather than in storage. Lines 19 to 21 are everything this contract keeps: one mapping and two `uint256` counters whose names say what they count. Three storage variables for a whole file.

Line 19 is the one to stop on. It takes an address and answers with an address, which is not a shape you have seen a mapping wear before. Every other mapping in this course answered with something of a different kind. Decide what this one hands back.

Line 19 takes an address as its key and answers with an address. Before you read another line, what would you expect `owners[someAddress]` to hold?
your balance2,400
BANK_DBowner: the bank
you2,400
what the app is actually showing you
BANK_DBowner: the bank
you2,400their pen
you hold a claim. they hold the pen.
your digital life
BANK · you2,400the bank ✍
INSTAGRAM · you2.1M followersMeta ✍
STEAM · you134 gamesValve ✍
AIRLINE · you58,200 milesthe airline ✍
four tables. zero pens that are yours.
BANK_DBowner: the bank
you2,400
DENIED
try both pens
PLATFORM_DBowner: the platform
her · 8 years2,000,000 followers
one automated decision away
BANK_DB · you · 2,400intentcompetencecontinuity
your row stands on all three
FTX_DBowner: FTX
you5 BTC
the backing vault●●●●●
the row stayed. the backing did not.
CARD_DBowner: your bank ✍
TV you never bought−1,100
fraud reversal+1,100
someone holds the pen, so someone can fix it
?_DBowner: nobody
youstill yours?
?
can a table exist that nobody owns?
?
?_DBowner: ̶n̶o̶b̶o̶d̶y̶
you100
no owner, no pen, no trust?
keeper 1
you100
keeper 2
you100
keeper 3
you100
keeper 4
you100
keeper 5
you100
no THE copy, only copies.
keeper 2
you100
keeper 3
you100
keeper 4
you100
keeper 5
you100
your copy
you100
five copies. one of them is yours.
one attacker
one attacker, ten thousand faces.
real machinesburned wattsnext page, sealed
writing costs watts. faking voters buys nothing.
cost paid OUTSIDE: hardware and power
proof of work, burn energy to vote.
page 1you · 100page 2you · 100page 3you · 100page 4you · 100
rewrite one line, break every lock after it.
office lunchtrusted keeperconsensusfive keepers, real cost
the price buys trustlessness. the office already has trust.
?
ownerless ledger
you?
a key, not a login?
nobody owns the table. so who owns your row?
runs in a mappingsentinelsreading cold

Three new nodes on your map

runs in a mapping · sentinels · reading cold · +10 Lynx