►
From YouTube: NEAR Onboarding Bootcamp | Part 5 of 5: Crossword
Description
Follow the latest from NEAR Protocol on:
Website: https://near.org/
Discord: https://near.chat/
Blog: https://near.org/blog/
Twitter: https://twitter.com/NEARProtocol
GitHub: https://github.com/near https://github.com/nearprotocol
#Blockchain #FutureIsNEAR #NEAR #nearprotocol
A
A
Sharing
all
right
yeah,
so
just
like
little
little
things
to
to
point
out,
you
know
there's
metamask
and
basically
this
is
how
a
lot
of
people
would
use.
Ethereum
and
ethereum
has
got
some
good
stuff
going
for
it.
I
think
there's
a
lot
to
be
improved
on,
which
is
why
there
are
so
many
blockchains,
including
near
and
typically
what,
when
you
have
something
that
you
are
trying
to
transact,
you
can
look
at
the
activities
and
here's
a
bunch
of
things
that
I
did.
A
Here's
a
failed
one,
and
so
there
is
like
ether
scan
that
you
look
at
for
all
of
your
kind
of
transactions,
so
we
have
like
near
explorer,
which
is
like
sort
of
takes
the
place
of
this
and
actually
has
quite
a
bit
more
details.
Especially
our
explorer
has
the
details
about,
like
you
did
a
cross-contract
call.
It
did
multiple
actions.
What
all
happened
was
there
gas
refunded?
A
Was
there
transfer
of
near
that
happened?
What
was
the
result?
What
were
the
parameters?
All
of
that,
so
this
is
what
it
looks
like,
though,
for
for
ether
scan,
and
one
thing
that
is
interesting
to
note
is
that
if
I
were
to
try
to
do
like
two
transactions
in
a
row,
you
would
see
that
there
is
like
on
this
activity
like
one
is
like
pending
and
then
there'd
be
one.
A
That's
like
queued,
and
that's
because
every
time
you
do
transaction,
it
basically
says
like
hey
you're,
always
gonna
do
transaction
six
before
you
do
transaction
seven,
and
so
you
have
like
a
nonce
like
a
number
used
once
and
so
you
are
kind
of
like
in
in
ethereum,
at
least
for
this
one
encounter
that
I
have
right
here.
You
have
a
nonce
that
just
is
incrementing
and
it
can
it's
kind
of
like
not
parallel
at
all.
A
Just
that.
That's
a
little
side
note
to
say
that,
like
in
in
near
our
accounts,
are
not
this
long
like
hash
but
they're,
actually,
human
readable
and
the
name.
Can
you
know
your
account
is
actually
the
human
readable
name
mike.near
and
you
can
add
and
remove
keys
to
it,
which
actually
is
a
huge,
a
huge
deal
each
one
of
these
keys
by
the
way,
if
you
have
like
three
keys,
those
have
their
own
knots,
so
they're
kind
of
like
independent.
A
So
you
can
get
into
a
point
where
there's
a
little
bit
of
a
log
jam
where
you're
waiting
for
one
nonce
to
finish
before,
like
the
next
one
goes,
that
isn't
always
going
to
be
the
case
for
for
near.
So
that
is
a
kind
of
a
cool
thing
and
then
yeah.
I
just
did
just
something
to
sort
of
show.
A
This
is
a
defy
app.
You
know,
there's
a
bunch
of
default
apps
out
here.
I
listen
to
this
really
great
cyberpunk.
Cyber
cypherpunk,
rather
interview
with
arto
and
frank
braun
from
the
aurora
team
and
archer
said
something
really
good,
which
was
like
last
summer.
Basically,
a
year
ago,
from
this
recording,
it
was
a
little
bit
up
for
grabs
like
what
is
the
what
is
going
to
happen
with
blockchain.
Is
ethereum
really
going
to
be
like
the
the
blockchain
for
for
things
to
happen
on
and
then
d5
summer
happened?
A
You
know
probably
almost
exactly
a
year
ago,
and
that
has
really
made
it
so
that
a
lot
of
decentralized
finance
is
happening
on
ethereum,
here's
one
of
them,
and
this
is
really
like
something
that
is
making
it
so
that
we
want
to
have
like
an
evm,
which
is
why
or
happened
so
basically
here
is
I'm
not
going
to
actually
do
it,
but
if
I
wanted
to
withdraw
some
money,
then
the
the
workflow
is,
you,
click
withdraw
and
metamask,
which
is
a
browser
extension
that
has
like
securely.
A
You
know
it
like
hid
my
private
key
pops
up
and
it
says:
hey:
do
you
want
to
sign
this
hey?
This
is
going
to
cost
you
like
11
bucks
to
to
do
this
so
just
like
a
little
bit
of
a
difference
in
ux.
Let's
just
talk
about
for
a
sec.
This
is
a.
This
is
pretty
typical.
I
would
say
that
there
are
a
lot
of
different
wallets,
but
a
lot
of
folks
are
still
using
metamask,
so
we
can
focus
on
that.
A
So
you
you
do
an
interaction
with
a
website
right
and
then
your
extension
has
your
private
key
and
then
it
pops
up
so
obviously
we'll
get
to
this
a
little
bit
later,
but
it's
like
in
here.
It's
typically
like
you
want
to
do
a
transaction,
nothing
pops
up.
Instead,
you
get
redirected
to
near
wallet.
So
this
is
a
bit
of
a
different
like
ux.
A
I
don't
think
that
this
is
like
news
to
anyone,
but
I
think
it's
a
good
thing
to
just
highlight,
like
the
basics,
reject
okay
cool.
Are
there
any
like
sort
of
like
before
we
get
started
with
how
to
make
a
near
crossword
puzzle?
Are
there
any
sort
of
like
thoughts
or
like
tingling
questions,
now
that
we
talked
about
ethereum
for
a
little
bit
where
the
people
want
to
ask
like
wait?
How
does
this
work?
Is
this
different.
B
Anything
like
that
yeah
the
wait
for
the
okay.
So
for,
like
the
the
x
case
for
near
you
said
like
each
one
has
its
own
nonce
like
do
you
mean
like
the
creation
of
a
key
or
like
or
the
key
itself
like?
What
did
he
mean
by
by
that.
A
A
What
you
can
do
in
near
is
that,
like
you,
if
you
say
you
want
to
have
like
a
very
rapid
fire
sort
of
set
of
transactions,
you
can
actually
have
like
five
different
keys
that
will
all
have
their
own
nonce.
So
like
key
one
is
not
waiting
for
or
key2
is
not
waiting
for
key
one's
transaction.
To
finish,
they're,
like
you
can
kind
of
parallelize
it.
A
Yeah,
it's
kind
of
a
small
distinction,
but
that
gets
important
later
and
I
think
it's
good
to
bring
up
in
the
beginning
cool,
so
the
crossword.
I
think
this
is
a
really
fun
thing
to
do.
A
It's
good
for
docs,
and
I
think
eventually
this
is
going
to
be
something
we
can
use
to
like
give
people
like
you
know:
hey
you
solve
this
crossword
puzzle
and
you
get
some
get
some
near,
which
is
fun
so
a
little
bit
meta
on
these
slides,
we're
gonna
start
out
with
a
crossword
puzzle
being
like
a
piece
of
paper
and
then
people
will
like
submit
their
solution
using,
I
think
the
cli
tool
we
may
actually
choose
to
do
it
a
little
bit
different
later,
but
yeah
we'll
take
a
look
at
different
versions
of
how
we
would
do
this
and
in
the
beginning,
just
to
keep
it
kind
of
like
simple
we're
going
to
just
start
out
like
someone
sees
this
crossword
puzzle
and
they
want
to
play
with
it.
A
So
we're
going
to
look
at
it
from
that
perspective,
and
so
don't
during
this
first
part,
don't
worry
about
like
wait.
How
did
this
con
contract
get
written
and
we
will
talk
about
that
after
and
a
whole
bunch,
more
yadda
yadda,
so
actually
real,
quick,
jim,
hey?
You
haven't
seen
this
at
all.
Have
you
I
think
fong
may
have
seen
a
teeny
bit:
okay,
yeah.
A
A
As
anyone
knows,
I
think
jim
is
actually
compiling
a
dictionary
of
all
these
different
terms
because
blockchain
it
just
has
so
many
acronyms
so
many
words
that
the
idea
is
to
make
a
crossword
puzzle
that
the
answers
are
like
blockchain
ideas,
and
so
maybe
someone
could
look
at
the
near
docks
and
kind
of
hunt
around
for
these
answers
and
fill
this
out
so
yeah
like
sharding,
sub,
accounts,
etc,
and
so
like.
A
A
What
what
is
a
seed
phrase?
Doesn't
everyone
kind
of
know
what
that
is
nice?
Yes,
so
it
turns
out
seed
phrases
can
be,
they
don't
have
to
be
using
any
sort
of
like
special
word
lists
or
anything,
but
I
won't
go
into
that,
so
you
can
actually
make
seed
phrases
out
of
like
whatever
words
you
want.
A
So
here
we
are
talking
about
the
paper
and
pencil
crossword
puzzle
example,
here
is
how
you
use
currently
the
cli
to
like
generate
a
key
pair.
Now
this
isn't
touching
the
blockchain
at
all.
This
is
like
one
of
these
just
strictly
like
utility
functions
of
the
cli,
we
say
near,
generate
key,
and
then
we
say
all
right.
A
So
this
key
pair
is
created.
Let's
talk
about
keys.
A
This
particular
kind
of
key
that
we
made
is
a
file
system
key
store.
We
will
get
to
the
second
one
a
little
bit
later,
but
these
are
currently
the
three
kinds
you
can
have
browser
local
storage,
which
you
probably
have
seen
in
your
wallet,
there's
actually
stored
inside
of
your
your
local
storage
there
and
then
only
computer
memory
which
may
not
be
used
as
frequently,
but
you
can
just
say
hey.
I
want
to
input
this
thing
and
just
hold
it
in
computer
memory
and
use
it
so.
A
Obviously,
in
this
case
we
generated
a
file
on
the
computer.
These
are
in
the
home
directory
under
a
sub
directory,
that
is,
for
the
network,
so
test
net,
mainnet
etc.
At
the
bottom,
there
highlighted
in
yellow
that's
what
the
path
would
look
like
on,
like
linux
or
mac.
A
Okay,
so
back
to
actually
being
this
user
playing
with
this
smart
contract
here
is
a
near
cli
command
that
you
might
use
again.
We
haven't.
Even
we
haven't
really
made
this,
so
it's
just
sort
of
like
brainstorming,
you
say
near
call
the
crossword
puzzle,
the
method
is
submit
solution
and
then
we
throw
in
some
arguments.
So
I
like
this
idea
of
having
like
a
memo
here,
which
is
like
you
know,
saying:
hey
mike,
is
the
king
of
the
hill.
A
You
have
some
sort
of
braggadocio
message
saying
that,
like
you
were
the
first
one
to
to
solve
this
puzzle
and
then,
let's
think
about
maybe
having
like
a
second
parameter,
reward
account.
So
if
I
win,
if
I'm
like
the
first
person
to
solve
this,
hey
send
the
you
know
10
near
whatever
the
prize
is
to
the
account
mike.near-
and
this
is
this
is
a
kind
of
interesting.
Is
this
last
part
is
a
flag
saying
like
I
am
calling
from
v0.crossword.puzzle.near
that's.
A
A
So,
what's
going
to
happen
inside
the
smart
contract,
is
it's
going
to
have
the
inside
smart
contracts?
You
can
say:
hey,
you
can
say
number
of
things
how
much
gas
have
I
used?
How
much
balance
do
I
have
on
this?
This
particular
smart
contract
account
that
I
live
on.
What
what
is
the
n,
the
account
name
of
the
person
who
just
called
me?
What
is
the
public
key
of
the
person
who
just
called
me
and
that
one
is
going
to
be
the
important
thing
here,
because
we
have
solved
this
puzzle?
A
A
And
yeah
and
then
just
kind
of
going
over
the
memo
thing
just
to
kind
of
make
it
fun
and
also
this
could
tie
into
other
things
later.
The
memo
gives
you
that,
like
sort
of
like
retro
arcade
feel
where
you
know,
here's
here's
a
stock
photo
that
I
got
of
people
saying
like.
Oh,
this
is
eugene.
This
is
david.
This
is
josh,
although
in
real
life,
it's
usually
like
swear
words
or
or
something
lewd,
but
still
you
get
the
point,
there's
a
little
bit
of
space
like
a
string
that
you
can.
A
You
can
add
in
there
and
and
as
long
as
as
long
as
we're
talking
about
this,
like
the
second
point
here,
just
as
we
brainstorm
how
we
want
to
build
this
thing
out
like
it
would
be
cool
to
store
all
the
winners
with
their
memos
and
then
maybe
like
some
function.
That's
like
hey
give
me
like
the
the
most
10
recent
winners
of
like
the
most
10
recent
crossword
puzzles.
A
Okay,
so
this
is
kind
of
interesting,
wait,
wait!
Timeout
here
before
we
were
saying
like
all
right,
I'm
calling
this
method
submit
solution,
and
I
can
just
give
it
like
parameters
right.
I
gave
it
a
memo
with
a
bunch
of
words
in
it.
Why
can't
I
just
give
the
the
answer
to
the
crossword
puzzle
also
is
like
a
you
know,
parameter
that
you
just
pass
in
well.
A
First
of
all,
this
is,
it
will
be
more
fun
to
dive
into
how
keys
work
if
we
do
it
this
way,
and
secondly,
this
is
a
it's
really
interesting,
because
there's
this
idea
of
front
running-
I
don't
know
if
you
guys
have
heard
about
it,
but
essentially
you
people
who
are
maybe
helping
run
the
network
they
they
can.
They
can
kind
of
mess
around
with
it
with
things
a
little
bit
and
they
can
say.
Oh
hey,
I
see
that
someone
is
trying
to
send
a
transaction.
A
This
is
like
in
the
waiting
list,
like
a
queue
of
transactions
that
haven't
made
the
blockchain,
yet
someone's
trying
to
send
a
transaction,
and
I
can
see
what
the
parameters
are.
How
about?
I
send
that
transaction
right
before
them
and
that's
that's
like
front
running,
so
this
actually
is
kind
of
a
cool
solution,
because
you
cannot
front
run
this
because
you're
not
sending
the
answer
as
a
parameter
you,
if
you're
trying
to
be
malicious,
you
actually
have
to
solve
the
crossword
puzzle.
There's
like
no
way
around
that
which
is
cool.
A
A
Of
course,
like
any
competition
first
person
to
solve
it
wins
you
gotta,
get
a
pen,
no
one's
ever
solved
a
crossword
puzzle.
Without
a
pen
you
gotta,
solve
it.
You
gotta,
install
near
cli
and
create
the
key
pair,
send
the
transaction
to
the
smart
contract
that
has
the
crossword
puzzle
and
then
profit.
This
is
a
sort
of
a
recap
on
what
we're
all
doing
here.
A
So
what
happened
before
just
high
level,
like,
obviously
someone
wrote
a
smart
contract,
someone,
maybe
the
same
person,
crafted
a
puzzle
and
the
answers
and
another
requirement.
You
know,
there's
got
to
be
at
least
10
near
inside
this
contract.
If
they're
we're
going
to
pay
out
10
near
to
the
winner,
and
then
this
is
where
it's
kind
of
interesting
is,
then
we
added
a
function,
call
access
key
to
this
smart
contract
yeah,
and
this
doesn't-
or
I
should
say
to
the
account
where
we
deployed
the
smart
contract
and
this
whole
function
call
access.
A
A
Let's
see
up
here
at
the
top
here
we
have
a
recap
of
the
key
pair
that
we
created
earlier
remember
when
we
just
fed
in
the
seat
phrase,
and
it
spat
out
the
the
public
key
on
the
bottom.
Here
I
have
used
another
utility
instead
of
near
cli.
That
just
says
show
me
all
of
the
keys
associated
with
this
account.
As
we
just
talked
about,
you
can
add
multiple
keys
to
an
account
in
this
particular
case.
A
We
just
have
two
and
that
top
one
is
a
public
key
and
it
matches
c
p
q,
w
p
blah
blah.
So
this
is
the
the
key
that
we
had
added.
A
A
And
here
is
a
list
of
method
names,
so
you
know
you'll
notice
that
yeah.
This
is
all
this.
What
this
means
is
you're
only
allowed.
Anyone
who
has
this
key
is
only
allowed
to
call
this
method.
You
try
to
do
call
some
other
smart
contract.
That's
not
v
zero
dot,
crossword
that
pulls
it
not
gonna
work.
You
try
to
call
this
smart
contract
with
any
other
methods,
not
gonna
work
on
a
protocol
level.
A
I
should
note
that
there's
a
little
bit
of
a
counter-intuitive
thing
here
where
method
names
like
if
this
is
were
an
empty
array.
If
this
were
just
like
open
bracket
closed
bracket,
you
might
think
that,
like
oh,
that
means
that
you
can't
call
any
methods
that
actually
doesn't
mean
that
it
means
you
can
call
any
method.
So
this
is
a
little
bit
of
interesting.
It's
like
an
asterix
right
so
might
as
well
point
it
out
as
long
as
we're
here.
A
Okay
cool,
so
we
talked
about
this
function,
call
access
key
right.
Well,
let's
talk
about
access,
keys
function,
call
access
keys
great
for
logging
into
decentralized
apps.
If
you
guys
have
looked
at
some
of
our
examples
like
guestbook
or
something
the
first
thing
you
do,
when
you
get
to
guestbook,
is
you
you
like
login
and
I'm
not
gonna,
actually
open
up
guestbook,
but
since
this
is
being
recorded
and
people
may
not
know,
mir.dev
will
get
you
over
here
or
just
examples.near.org
and
guestbook
is
an
example
you
can
you
can
set
up?
A
A
A
A
Okay,
functional
access,
keys,
they're,
also
great
for
onboarding
users,
who
don't
have
a
near
account
because
you
don't
actually
need
to
have
any
in
your
account
to
to
use
them
and
sky's
the
limit.
Frankly,
I
don't
think
that
we've
actually
flexed
all
the
stuff
you
can
do
with
function
call
access
keys.
I
think
that
this
is
like
huge
full
access
keys.
These
are
the
ones
that
you
can
do
anything
with
the
account
you
can
delete
the
account.
You
definitely
want
to
protect
these
keys
yeah.
A
A
So
first
we
created
a
key
pair
again
that
didn't
really
even
touch
the
blockchain
that
just
ran
some
utility
logic
and
then
we
use
that
key
pair
to
send
a
transaction
that
calls
a
method,
and
then
we
know
we've
been
able
to
see
what
other
keys
are
available
on
that
account.
So
the
actions
here
when
we
submitted
our
solution,
that
was
a
function,
call
action
when
the
puzzle
was
getting
started
and
it
added
the
function,
call
access
key.
A
Here's
all
the
actions
and
like
it
almost
looks
like
it's
a
lot
of
actions,
but
basically,
when
you
think
about
it,
if
you
have
the
ability
for
keys
on
an
account,
then
of
course
you
need
like
crud
right.
You
need
to
like
create
a
key
or
you
need
to
add
a
key.
You
need
to
delete
a
key.
Then
we
have
this
idea
of
you.
An
account
can
create
like
a
sub-account
to
it,
so
mike.near
can
make
aloha.mike.ner.
A
So
now
you
have
to
be
able
to
create
account
and
also
delete
account,
function,
call
and
transfer
we've
already
gone
over.
The
only
one
we
haven't
really
gone
over
is
stake,
and
we
won't
really
worry
about
that.
That's
actually
for
validators
on
this
kind
of
like
outside
the
scope
of
this,
and
you
probably
won't
really
use
that
unless
you're,
deep
into
validation
and
at
the
bottom
here,
of
course,
we
have
nomicon
dot,
io,
which
I
didn't
realize
this
for
a
little
while,
like
I
thought,
some
community
person
contributed
to
the
site,
but
no.
A
This
is
the
official
nick
near
spec.
That's
that
that's
why
I
was
like
wow.
This
is
like
such
a
good
site
who
made
this
it's
like.
Oh
yeah.
This
is
our
our
site
and
so
yeah
this
this
screenshot
is
from
nomicon.
A
You
can
always
visit
that
yeah
dorian.
B
For
okay,
so
when
you
need
to
use
the
add
key
like
if
you're
creating
an
account,
are
you
creating
a
key
for
the
account
automatically?
So
when
you
need
to?
When
would
you
ever
use?
Add
key.
B
Yeah,
as
someone
rings
like,
I
feel
like
you,
don't
need
to
ever
like
add
a
key
while
you're,
creating
a
new
account
right
but
like,
or
is
that
not
right,
like
there's
another
situation
where
you
would
use
ad
key.
A
Yeah
sure
so
is
this
actually
happening
happening
all
the
time
when
we
use
like
guestbook.
So
if
you
like
are
saying
like
hey,
I
want
to
log
into
guestbook,
that's
like
sort
of
like
not
the
most
honest
way
of
saying
it.
What
is
actually
happening
is
you're,
saying
hey,
please
redirect
me
to
wallet.near.org
where
I
have
a
full
access
key
and
hey
a
full
access.
Key
you're
allowed
to
do
all
this
powerful
stuff.
Like
add
a
key,
please
add
a
key.
A
function
call
access
key
that
has
this
public
key.
A
So
what
logging
in
is
adding
a
key.
B
Oh,
I
see
so
it's
like
you're,
taking
an
account
that
exists
on
wallet
and
then
you're,
adding
a
key
to
an
application
again
right,
yep.
Okay,
I
always
forget,
always
forget,
like
you're,
not
using
the
same
key
with
the
application
you're
using
like
different
keys
for
every
new
application
you're
signing
into
yes,
yes,.
A
And
totally
and
and
another
thing
to
just
sort
of
like
mentally
think
about
is,
like
you
know,
private
keys,
like
you,
never
are
going
to
be
sending
that
over,
like
the
internet,
basically
so
like
when
you're
generating
a
key
pair
like
that's
going
to
be
completely
on
your
computer
and
the
private
key
just
always
lives
like
in
the
json
file.
A
When
you
before
you
log
in
with
guestbook,
you
open
up
guestbook,
it
says
login
you
haven't
logged
in
yet
when
you
click
login,
it's
it's
not
going
to
send
a
a
private
key
over
to
wallet.
What
it's
going
to
do
is
it's
going
to
say,
hey
pick
a
random
number
browser
and
then
create
a
humongous
private
area,
create
a
humongous
number
out
of
that
which
is
basically
synonymous
with
private
key
store
that
private
key
in
local
storage
and
I'm
going
to
now
like
keep
that
there
and
send
the
public
key
over
to
wallet.
A
B
So
wait
why,
okay,
so
how
does
ethereum
do
it
like
do
they
use
like?
Is
it
like
one,
singular
key
pair
and
it's
giving
out
the
public
key
to
like
different
like
applications
or
like
saying
like?
This
is
the
key
that
you
would
use
to
like?
You
know
reference
an
account
to
sign
these
like
transactions
or
like?
Is
it
something
similar
to
like
we're
doing.
A
Yeah
oops,
so
in
ethereum,
like
your
private
key,
is
like
behind
the
scenes
and
then
this
my
account
is
actually
like
a
truncated
version
of
the
public
key
like
this.
For
all
intents
purposes,
this
is
the
public
key,
like
your
account
is
the
public
key.
B
And
is
it
just
that
of
a
key
loan,
that's
being
used
to
sign
all
these
different
transactions
for
different
smart
contracts.
A
Yeah,
yes,
so
it's
behind
the
scenes.
The
private
key
is
the
one
that
like
signs,
the
transaction,
okay,
yeah.
B
Okay,
okay,
I
think
I
think
I'm
thinking
of
mostly
getting
it.
I
think
more
questions,
but
don't
take
it
more
time.
Yeah.
A
Cool
yeah,
I
appreciate
the
yeah
great
great
questions.
A
Okay,
so
this
we'll
get
into
sub
accounts
too,
so
the
actions
we
discussed
yeah.
This
is
this
is
interesting.
This
is
very
kind
of
important
distinction.
The
actions
have
been
kind
of
like-
and
I
I
kind
of
hate
to
say
this,
but
it
it's
like
kind
of
wrong,
but
it's
kind
of
right.
So,
let's
just
go
with
it.
They're
like
sent
to
the
blockchain
like
we
did
a
near
cli
account
our
near
cli
command.
A
You
know
that
was
like
deploy
the
contract
or
please
call
the
function
that
I'm
like
submitting
my
solution
to
this
crossword
puzzle,
so
that
feels
like
we're,
like
lobbing
a
ball
into
the
into
the
blockchain.
You
can
also
do
actions
inside
of
the
smart
contract
and
they
are
obviously
like
the
same
capital,
a
actions
so
inside
of
a
smart
contract.
You
can
also
say
like
hey:
when
someone
calls
this
function,
I
can
add
a
key
to
myself.
A
I
can
remove
a
key
from
myself
and
you
can
even
like
deploy
to
yourself.
I
think
you
can
even
like
delete
yourself
from
inside
the
smart
contract,
so
this
is.
This
is
very
important
when
we
think
about
how
you
might
like
upgrade
later
on
or
or
something
like
that.
An
interesting
use
case
that
I've
been
like
really
psyched
about
recently
is
a
friend
a
friend,
and
I
are
hacking
on
this
project
and
we
are
going
to
make
it
so
that,
like
you,
have
a
like.
A
Now
that
would
be
able
to
call
it.
You
can
say
like
hey
we
are
going
to.
I
want
to
like
send
a
transact.
Okay,
I
want
when
I
can
do
this,
but
I
want
to
send
a
transaction
from
my
dow
that
everyone
has
to
vote
on
and
we
what
we
could
do
is
we
could
say
everyone
needs
to
vote
on
us,
removing
all
the
access
keys
and
then
a
transaction
can
go
into
someone's
smart
contract
and
do
these
powerful
things
once
you've
removed
all
the
keys
from
a
smart
contract.
A
So
yeah
this
is
the
kind
of
stuff
that
you
can
do
with
actions
inside
of
a
smart
contract,
all
right
sub
accounts.
I
think
everyone
knows
this,
but
go
over
real
quick
subaccounts
are
only
really
pertained
to
like
one
level
below
it,
so
I
can
make
like
aloha.mike.near
from
mike.near.
I
cannot
make
like
hello.aloha.mike.ner
from
just
mike.near.
A
It
always
has
to
be
like
one
level
like
below
it,
there's
kind
of
an
analog
here
where,
like
I,
for
instance,
own
mic.exe.eth-
and
this
is
like
called
like
ethereum
name
service,
which
is
kind
of
like
dns,
but
like
ens
right,
it's
super
cool.
They
actually
use
nfts.
It's
it's
really
interesting.
I
don't
even
understand
exactly
how
it
works,
but
sometimes
people
will
think
like.
Oh,
so
are
you
guys
like
using
ens,
and
it's
like?
No,
no
we're
not
doing
that
like
in
a
near
like
your
accountant
is
actually
mike.near.
It's
not
like.
A
A
Oh
yeah,
during
the
creation
of
a
of
a
sub-account,
so
we
talked
about
making
a
sub-account
let's.
Actually
this
is
a
little
bit
strange,
but
let's,
let's
just
talk
about
batching
actions,
which
is
which
is
important.
Have
you
guys
heard
of
that?
Like
batching
actions,
batch
transactions?
Have
you
heard
people
at
near
talk
about
that.
A
A
A
So
now
we're
going
to
look
at
some
rest
and
just
this
middle
part
here
where
we're
saying
like
promise
new,
and
then
you
got
this
whole
chain
pattern,
dot
create
account,
transfer
now
we're
going
to
add
a
full
access
key
now
we're
going
to
deploy
a
contract,
and
so
this
is
this
is
what
it
looks
like
in
when
the
rubber
meets
the
road
here
dorian.
You
have
like
a
very
thoughtful
look
on
your
face.
Do
you
have
questions,
or
am
I
imagining
that?
Okay,
just
soaking
it
all
in
okay,
cool
nice?
A
This
example
was
taken
from
near
sdk
rs
and
there
are
a
bunch
of
examples
in
there
and,
like
I
think,
it's
worth
like
kind
of
like
memorizing
them.
Maybe
not
I
mean
not
like
memorize
memorize
but
like
these
are
so
useful
and
until
we
get
our
docs
like
really
short
up
like
this,
is
how
to
understand
how
a
lot
of
this
stuff
works.
A
So
that's
batching,
sometimes
you'll,
hear
people
say
like
batch
transactions
and
actually,
I
kind
of
want
to
like
nix
that,
because
it
really
is
batch
actions
and
the
reason
why
is
because
you
cannot
say
I'm
going
to
batch,
you
know
creating
this
account
and
then
I'm
going
to
make
a
function,
call
to
a
different
account
over
here,
like
you
can't
do
that,
like
there
are
you're
batching
actions
to
the
same
account.
That's
the
only
way
you
can
do
it.
B
Sorry,
I
did
actually
have
one
question
I
think,
but
I'll
get
back.
One
slide
promises
coming
from
your
new
year's
dkrs
in
the
usdk
is
that
right.
A
Yeah,
oh
yeah,
so
here
we
go.
Let's
just
like
take
a
step
back
for
a
little
bit
and
be
like
okay.
What
are
the
needs
for
the
crossword
puzzle
like
mvp,
all
right,
so
creating
the
puzzle
coming
up
with
an
answer
solution
to
it?
Okay,
all
you
need
is
your
brain
and
your
docs
got
that
deploying
the
contract
you're
using
cli,
adding
a
key,
also
use
cli
and
then
making
sure
that
there's
at
least
10
near
there.
You
could
also
also
also
use
a
cli
saying,
like
yeah,
near,
send
crossword
puzzle
10.
A
Basically,
that's
from
the
kind
of
contract
creation
side
right,
a
person
playing
the
puzzle
playing
the
game.
They
need
to
create
a
key
with
near
cli.
They
need
to
submit
an
answer
with
your
cli.
Okay.
A
Is
that
it
and
the
answer
is
no.
There
is
kind
of
like
one
more
thing
that
needs
to
happen
here,
which
is
what,
if
they
don't
have
a
new
account.
What,
if
you
don't
have
mike.nir
what,
if
you're,
just
someone
who
wants
to
like
play
this
game
and
you're
you're
16
years
old-
and
you
know
your
parents
aren't
going
to
let
you
go
through
kyc
on
an
exchange
to
buy
near
like
how
do
we
deal
with
that?
A
Okay?
Well,
there
is
a
way
to
do
that,
but
let's
like
not
get
crazy
and
let's
just
talk
about
different
iterations
here,
so
the
first
version
version
zero
pen
and
paper
only,
and
so
what
this
means
is
like.
You
got
a
piece
of
paper,
crossword
puzzle,
computer
with
internet
that
can
presumably
install
near
cli,
and
then
you
just
do
everything
that
we
just
talked
about,
but
you
need
an
existing
near
account.
You
say:
oh
payout
mike.near,
you
know
what
if
the
person
doesn't
have
this,
so
that's
a
that's
a
requirement
version
one.
A
So
the
needs
are
just
sheet
of
paper
and
computer
with
internet
pretty
darn
awesome,
and
this
will
kind
of
force
us
to
like
deal
with
like
cross-contract
calls
and
promises
as
we
like.
Can
we
actually
create
an
account
for
someone
else
as
long
as
we're
dreaming
iteration,
two
or
yeah
two
out
of
three?
A
If
you
want
to
think
of
it
that
way,
all
you
need
is
a
computer
with
the
internet
and
we
would
have
like
a
front
end
to
this,
so
someone
can
just
go
to
some
some
website
and
it's
a
crossword
puzzle
and
they
don't
need
the
near
cli.
We
just
use
near
apijs
and
near
cli
is
using
your
apiges
under
the
hood.
So
this
is
kind
of
like
the
the
most
easy
way
for
someone
to
actually
get
an
introduction
to
blockchain.
You
don't
need
it
in
your
account.
You
don't
need
a
cli.
A
A
All
right,
but
like
chill
on
the
scope
creep,
let's
go
back
to
version
zero,
so
they
need
to
have
at
least
ten
near
right.
It
needs
to
have
a
function
called
submit
solution
which
we
kind
of
hinted
at
might
be
a
good
name
in
our
near
cli
screenshots,
and
this
will
check
to
see
you
know
hey.
Is
it
like?
What's
the
public
key
of
the
the
signer?
How
do
you
do
that
in
rust?
You
can
hunt
for
it
or
you
can.
A
Then
we're
going
to
want
to
store
the
memo
that
little
bragging
message
right
on
chain
somewhere
and
then
we're
going
to
want
to
use
the
transfer
action
for
the
10
year
like
inside
the
smart
contract.
Again,
you
can
like
find
this
rust
in
a
few
of
the
examples,
but
this
is
exactly
what
it's
going
to
look
like.
It's
pretty
simple
promise
new,
like
mic.near
dot,
transfer
10,
and
that
would
make
the
smart
contract
transfer
10
near
to
mike
dunyer.
A
Version
one
we
want
to
be
able
to
create
a
new
account,
not
a
sub
account
by
the
way,
like
an
actual,
like
kevin.near
account
and
send
a
reward
to
it.
So
this
is
going
to
make
a
cross-contract
call
to
the
the
network
network.
You
know,
obviously
in
blockchain
means
like
mainnet
testnet.
This
is
going
to
send
a
cross-contract
call
to
the
top
level
account
and
those
that
that's
a
fancy
term
for
like
test
net
or
near
these
are
actual,
like
accounts,
there's,
actually
nothing.
A
As
far
as
I
know,
there's
nothing
different
about
these
accounts
than
like
mike.near
they're.
They
are
the
same
thing
right,
and
so,
when
I
made
like
mike.near,
that's
actually
a
sub
account
to
near
it's
just
as
simple
as
that.
I
don't
know.
If
other
people
had
that
confusion,
but
I
like,
I
know
I
thought
there
was
something
special
about
them.
I
don't
think
that's
the
case.
Maybe
they
are.
You
know
designated
as
like
special
inside
of
a
genesis,
configuration
or
something,
but
for
intense
purposes.
A
It's
just
an
account,
and
then
this
this
last
part
is
like
really
interesting.
That
can
serve
as
a
cool
learning
point.
We
need
to
figure
out
what
happens
if
you
say
cool,
hey,
send
the
reward
to
my
name
is
also
mike,
send
the
reward
to
mike.near,
and
you
think
that,
like
you're
going
to
create
the
account
called
mike.near,
what?
If
it's
already
taken?
Something
like
that,
so
we
need
to
say:
okay,
how
do
we?
How
do
we
handle
errors?
A
Okay,
so
so
we're
going
to
stay
on
this
train
of
like
how
would
the
user,
who
doesn't
have
a
mainnet
account?
How
would
we
kind
of
accomplish
this,
so
this
is
from
the
link
drop
source.
I
I
will
send
you
guys
this,
that
everything
is
I'll,
see
this
presentation,
as
everything
is
linked
in
here.
So
this
is
like
a
little
snippet.
We'll
look
at
promise
new
we're
going
to
create
an
account,
add
a
full
access,
key
transfer
and
then
we're
going
to
this
is
a
really
kind
of
ugly
long
line.
A
So
does
that
make
sense
like
this
is
like,
like
you
know,
prom
promise,
then
sort
of
stuff.
You
know
from
javascript.
This
is
kind
of
similar,
but
we'll
get
into
the
differences.
So
then,
inside
of
this,
this
can
can
be
thought
of
as
like
a
callback
and
we'll
have
some
information
on
how
all
of
this
stuff
went.
A
So
that's
how
you
can
say
cool.
We
tried
to
create
an
account
called
mike.near
and
do
all
this
stuff.
How
did
that
go
and
then
inside
this
function
will
be
like
up?
It
failed.
Okay,
cool
well
like
maybe,
let's
ask
the
user
for
like
their
second
idea,
for
an
accountant,
maybe
that
one
like
is,
is
available.
A
I
think
I
will
actually
skip
this
and
this
and
I
covered
that.
Okay,
this
is
important,
maybe
dorian.
This
is
feel
free
to
chime
in
because
this
is
for
some
reason
I
feel
like
this
is
going
to
be
up
your
alley
and
maybe
something
that
you've
run
into
javascript.
Performances
are
different
than
what
we're
talking
about
here
so
like.
Let's
look
at
async
await
in
javascript
that
highlighted
part
at
the
bottom.
A
Let
values
equal
a
weight
and
then
it
calls
out
all
of
these
different
promises,
and
so
the
idea
is
it's
like
yeah,
the
assignment
of
values
will
kind
of
like
wait
for
all
this
stuff
to
happen.
A
Okay,
let's
I've
seen
people
do
this,
like
very
smart
people
do
this,
and
this
is
a
sign
that
we
need
to
improve
our
documentation
a
bit,
but
this
is
the
wrong
way
of
doing
it.
You
cannot
say
like
let
creation
result,
equal
promise,
dot
new,
you
know
create
an
account.
It's
like
a
smart
contracts,
they
they
just
kind
of
spin
up
and
then
they
and
then
they
spin
down,
and
it's
not
like
you-
can
spin
it
up
and
then
it
waits
for
something
to
spin
up
and
then
because
that
could
also
call
another
one.
A
No,
like
you
can't.
You
can't
have
assignment
like
this,
that
won't
work,
so
you
have
to
do
is
similar
to
what
we
just
saw
before
promise.new
like
create
the
account.
Then
please
call
me
at
this
method
and
then
this
this
will
get
called
here.
This
is
the
nice
little
decorator
that
we
have.
That
is
basically
a
shortcut
saying
like
no
one.
This
is
public.
Technically,
this
is
a
public
method,
but
no
one
else
is
allowed
to
actually
get
anywhere
with
it.
A
Unless
you
are
me
right,
because
this
I
am
calling
myself
after
this
is
done-
and
so
you
can
do
stuff
like
is
the
promise
successful,
blah
blah
blah.
So
that's.
A
A
Let's
see
here,
yeah,
oh
okay,
so
the
bottom
line
right
we're
throwing
an
error
right.
So
you
would
expect
that
this
all
like
the
whole
thing
is
going
to
fail,
makes
total
sense.
I
think
everyone's
kind
of
with
me
on
this.
Let's
just
go
straight
to
the:
how
promises
work
that
are
differently.
You
can
chain
multiple
then
calls.
A
But
when
that
call
finishes
all
the
promises
will
be
recalled,
regardless
of
whether
the
previous
one
failed
so
yeah.
Maybe
I
can
clean
this
up
a
little
bit
because
that's
that's
just
the
you
know,
meat
and
potatoes
is
like
it's
not
going
to
act,
the
exact
same
way.
If
you
have
like
3.,
then
all
of
them
are
going
to
get
called,
which
is
cool
because
sometimes
you
actually
do
want
to
have
a
almost
like
a
try
catch
finally
thing
where
the
finally
is
like
no
matter.
What
like
please
do
this
inside.
Finally,.
A
A
Okay,
yeah
so
then
highlighting
the
figure
out.
What
happens
if
the
new
account
is
already
taken
or
is
invalid,
so
that
yeah,
that's
that's
where
it
happens.
Is
that
callback?
That's
where
you
can
say
like
did
this
thing
fail
and
if
so,
then
I
may
want
to
like
revert
something
or
or
whatever.
A
Okay,
yeah
see,
I
see
it's
12
50
and
I
do
want
to
keep
going.
I'm
also
like
wondering
how
is
everyone
doing
on
on
time
like
if
people
go
over
a
teeny
bit,
if
they
would,
they
want
to
find
me
yep
awesome
cool,
then
I
won't
try
to
like
super
duper
rush
and,
of
course,
feel
free
to
drop
off.
It's
not
gonna,
offend
me
or
anything,
okay,
so
we
are
a
rust
first,
smart
contract
platform
and
russ
can
look
scary
and
it
is.
It
is
sort
of
scary.
A
The
good
news
is
like
the
sdk
that
we
have
is
like
takes
a
lot
of
the
really
crazy
stuff
out
of
it
and
you're
going
to
be
doing
the
same
thing
kind
of
like
over
and
over
again,
and
so
there
is.
This
is
a
lot
less
scary
than
than
you
think,
but
just
sort
of
like
looking
at
this
smart
contract
right
here.
It
looks
kind
of
like
a
lot.
A
So,
let's
just
like
break
down,
what's
going
on
the
imports
up
at
the
top,
and
then
we
even
have
something
that
this
will
actually
even
be
shorter.
Now,
because
now
this
is
gone
thanks
to
austin
and
fong's
work,
so
we
got
this
import
section.
Let's,
let's
forget
about
that.
Now
it's
getting
shorter,
then
you
got
your
contract
fields
and
methods.
This
is
using
structs,
you
have
a
struct
and
then
you
have
like,
like
an
impul
for
it,
okay,
cool!
A
A
And
yeah
since
we've
got
such
a
good
sdk,
you
like
there's
an
official
rust
book
that
you
can
get
that's
online
and
you
really
need
to
only
go
over
the
first
few
chapters
like
I
I
had
said
for
a
while,
like
the
first
four
chapters
and
I'm
looking
at
it.
Maybe
it's
like
the
first
11
chapters.
I
I
would
say
you
can
time
box
like
45
minutes
like
just
to
look
through
this
stuff
boom
like
you'll,
know
enough
to
write
smart
contracts.
A
But
if
you're
looking
at
this
book,
there's
going
to
be
some
examples
that
will
show
you
some
helpful
things
so
like
I
want
you
look
at
this
rust
book
if
you
want
to,
but
also
like
note
that,
like
there's
gonna,
be
some
stuff
that
throws
people
off
and
has
definitely
thrown
me
off.
So,
for
instance,
let's
talk
about
this
whole
like
memo
idea
like
the
bragging
message,
the
retro
arcade
thing
right.
A
This
is
a
screenshot
from
the
rest
book
and
it's
like
all
right
cool.
You
know
you
want
to
have
a
winner
and
then
their
their
memo
cool.
Well,
that's
going
to
be
a
map,
let's
use
hash
maps,
and
so
you
have
this
whole
section
about
that.
But
if
you
like,
let's
say
people
just
love,
crossword
puzzles
and
you
get
to
like
2025
crossfit
puzzles
and
they're
all
stored
in
the
hash
map.
A
Well,
that's
actually
not
going
to
be
that
great
because
hash
maps,
when
they're
used
in
smart
contracts,
they
will
like
load
the
entire
thing
into
memory,
and
you
don't
really
need
to
do
that
and
you
know
one
fun
thing
about
smart
contracts.
Is
we
get
to
be
like
really
like
finicky
on
how
much
like
computation
we're
using,
and
so
it's
really
not
efficient
to
use
hash
maps
for
this?
A
So
this
is
kind
of
the
introduction
to
like
specialized
collections.
So
yes,
read
the
official
rest
book,
but
also
know
that,
like
you're
going
to
want
to
be
aware
of
these
like
specialized
collections-
and
here
are
some
currently-
I
think
they're-
probably
going
to
add
some
more
later
on
too
so
yeah.
I
guess
it
won't
really
go
into
these,
but
in
particular,
like
lookup
maps
are
used
a
lot.
A
Unordered
maps
are
used
a
lot
and
some
of
them
are
iterable
and
some
of
them
are
not
and
the
ones
that
are
not
iterable,
meaning
you
can't
like
go
through
them
like
iterate.
Obviously
the
ones
that
are
not
iterable
tend
to
be
more
like
efficient
on
gas
and
and
whatnot.
A
Okay
done
with
the
collections
part,
let's
kind
of
go
back
to
this
section
about
unit
tests,
let's
like
zoom
in
on
these
unit
tests,
and
we
see
that
we
are
we,
we
decorate
these
with
a
test
macro,
and
then
you
have
this
whole
thing
where
we
say:
okay,
now
we're
going
to
kind
of
like
fake
the
the
context
of
a
blockchain
and
we're
going
to
set
that
up
what's
happening
here
behind
the
scenes
is
we
can
see
that
there's
like
a
context
builder,
that
has
some
information.
A
This
is
great
for,
like
some
use
cases,
testing
simple
interactions
with
with
functions.
What
not
like,
for
instance,
a
good
example
for
crossword
puzzle.
Is
you
want
to
test
to
see
that,
like
the
the
winner
has
to
have
the
right
public
key,
obviously
right
so
unit
tests
are
actually
fine
for
this.
A
And
this
this
is
a
full
list
of
like
what
happens
with
you,
can
kind
of
control
with
this
like
faked
context
of
the
blockchain,
but
you
see
here
like
now
that
we're
sort
of
expanding
on
like
unit
tests,
we're
saying
all
right,
here's
the
blockchain,
you
know,
let's
see
this
account,
has
this
balance,
we're
kind
of
like
just
setting
it
to
be
pretty
hard
coded
and
then
the
current
account
id
and
the
signer
account
id
these
actually
are
just
strings.
It's
just
this
just
literally
returns
like
alice.testnet
or
something
as
a
string.
A
So
yeah
it's.
I
don't
know
it's
important
to
note
that,
like
this
is
kind
of
limited,
because
if
you
think
about
it,
it's
like
all
right.
Well,
I
want
to
write
a
test
that
says
all
right.
Cool
the
winner
should
now
have
10
near
in
it
right
well,
like
alice,
isn't
an
object.
Alice
is
like
just
a
string,
so
I
can't
check
to
see
if
a
string
has
a
balance
or
whatever
so
just
pointing
out
that
it's
really
limited
a
couple.
A
Gotchas
signer
account
id
versus
predecessor
account
id
more
frequently,
I
would
say,
you're
going
to
want
to
use
predecessor
account
id.
That
means
the
person
that
just
called
me
if
I
am
calling
like
a
intermediary
smart
contract
like
I
want
to
call
like
a
fungible
token
contract,
and
then
that
calls
something
else.
A
Then
I
am
the
signer
to
that.
The
signer
means,
like
the
very
first
person
that
initiated
this.
This
transaction
predecessor
is
like
the
most
recent
person
to
call
me,
so
there
is
also
knowing
that
there
is
a
little
bit
of
a
reason
to
use
predecessor
instead,
because,
if
you're
checking
the
signer
account
id
it's
possible
that
some
nefarious
person
could
like,
what's
it
called
be
using
cross-contract
calls
instead,
so
so
yeah,
it's
important
to
know
who's
the
person
right
next
to
you
that
just
gave
you
that
piece
of
paper
right.
B
So,
like
the
so
for
that
one
like
the
person,
if,
if
you
want
like
to
reference
the
name
of
the
just
like
the
user
of
like
the
decentralized
application
right,
like
you,
would
you
would
you
use
signer
account
id
to
say,
like
the
user
of
the
d
app
like
initiated
this
like
transaction
by
hitting
this
button
or
something
like
the
the
the
nuances
between
the
two
always
kind
of
confuse
me?.
A
Yeah,
so
how
about
this?
Like?
You
are
a
part
of
a
decentralized
autonomous
organization
or
something
like
that,
and
I
cast
the
final
vote
on
something
that
you
know:
rewards
someone
or
whatever.
Then
the
the
predecessor
would
be
the
dow
that
actually
did
the
reward,
but
then
you're
like
who
so
so,
who
was
that
that
voted
for
that
that
caused
that
chain
reaction?
Oh
that's,
a
signer
that
was
mike,
who
actually
like
did
that
last
vote.
A
So
ideas
for
unit
tests
on
the
crossword
puzzle,
yeah
again
public
key-
was
that
right
or
not-
maybe
you
can
say
like
oh
yeah
like
this-
is
a
simple
unit
test.
You
know
almost
almost
from
any
sort
of
programming
language.
You
know
it
can't
be
longer
than
32
characters
or
something
like
that.
You
can
do
basic
validation
and
then
10
most
recent
winners.
You
know
you
may
want
to
make
sure
that
that
works
like
what.
A
A
Yadda
yadda
simulation
tests
are
the
other
kind
and
then
there's
the
other
other
kind.
That's
coming
to
a
near
near
you,
but
for
now
we
have
simulation
tests,
and
this
does
more
of
what
I
was
talking
about
before,
where
you
can
actually
have
like
a
proper
user
account
and
you
can
say:
okay
cool,
like
they
won
their
account
like
object,
should
have
more
near
in
it
now.
A
Did
they
when
I
get
their
reward,
did
that
cross-contract
call
that
was
creating
a
brand
new
account
for
them?
Did
it
did
it
work?
Did
it
fail?
You
can
do
cross-contract
call
testing
with
simulation
tests,
don't
want
to
try
doing
that
with
unit
tests
and
then
soon?
Yes,
how
much
gas
does
this
thing
cost?
You
can
actually
use
testing
to
kind
of
figure
that
out.
D
A
Cool
we're
at
one
o'clock,
and
I
think
I
think
we
I
think
we
can
not
go
too
much
longer,
but
this
is,
I
think,
we're
on
time,
if
you
guys
are
cool
for
maybe
like
10,
more
minutes,
sweet
yeah.
C
A
Yep
awesome,
so
here
is
an
idea.
Okay,
like
let's
just
like
open
up
the
you
know,
chalkboard,
let's
see
what
this
wireframe
is
going
to
look
like
all
right.
So
ideally,
let's
talk
about
version
two,
where
it's
just
like
this.
This
front
end:
okay,
well,
they're
going
to
have
a
login
button:
oh
yeah
crap!
Well,
they
may
not
have
a
near
account
so
like
maybe
we
should
have
like.
Do
you
have
an
account?
A
Do
you
not
have
in
your
account,
okay,
cool
and
then
see
if
they,
what
kind
of
account
they
want
to
create,
so
that
that's
a
good
one
and
then,
like
oh
shoot,
you
know
their
aloha.near.
It's
already
taken.
Okay,
whole
note:
okay,
it's
taken
again,
like
I'm,
not
sure
about
this,
and
then
we
want
to
also
have
like
the
memo,
and
by
this
time,
we're
like
asking
this
user
to
like
do
so
much
stuff
right
like
and
let's
just
say
that
we
released
this.
A
A
So,
let's
start
over
from
scratch
and
like
what,
if
we
just
had
like
no
buttons
at
all
and
every
key
press,
you
know
that
they
enter
in
this
thing
is
an
event
and
the
moment
that
they
like
complete
the
puzzle.
It
like
you
know,
maybe
like
reserves,
your
spot
saying
like
this
person
like
they.
They
got
it
right
and
as
soon
as
you
are
that
person,
then
it
says:
like
cool
congrats
like
you
won,
you
still
need
to
claim
your
reward.
A
A
A
And
by
the
way,
if
you're,
if
you
like,
are
really
kind
of
enjoying
how
beautiful
my
wireframe
is
like,
I
do
some
consulting
on
the
side.
I
can
give
you
a
deal
so
yeah,
like
yeah,
so
stoked
that
you
mentioned
that
jim,
because
so
like
now,
basically,
okay,
like
fundamentally
like
we
need
something
unique
from
that
winner
right
and
so
how
about
this?
A
How
about
when
a
user
loads
that
page
for
the
very
first
time
we
use
that
same
library,
your
api.js
and
we
create
a
random
number
and
a
little
private
key
that
lives
in
their
browser
there
and
only
their
browser
nowhere
else
in
the
world
ever
where
will
this
little
little
private
key
live?
A
A
D
A
And
so
here
we
go
on
on
chain
and
then
the
front
end.
So
what
that
would
be
is
we
would
say:
okay,
the
on
chain
had
the
like
that
special
function
call
access
key.
That
was
the
solution.
So,
let's,
let's
like
remove
that
because
then
you
know
we
don't
want.
We
only
want
one
person
to
be
able
to
use
it.
So,
let's
like
remove
that
and
then
like.
Let's
add
the
winners
to
it,.
A
Oops
yeah,
and
actually
does
that.
Does
that
make
sense
people
so
then,
so
then,
as
soon
as
that
happens,
no
one
else
can
claim
that
they
are
the
first
person
to
win
it
and
then
that
the
user,
who
who
does
who
did
claim
it
they
have
all
the
time
in
the
world
to
like
you,
know,
see
what
kind
of
name
they
want
to
create
and,
like
you
know,
take
some
time
making
a
really
clever
memo
and
stuff
and
don't
feel
rushed
to
like
do
that
all
at
the
beginning.
A
C
A
I
mean
I
so
I
I
don't
think
that
there
are
race
condition,
issues
it
will
be
whoever's
transaction
gets
in
first
and
and
then
and
then
like
once
that's
saved,
then
it's
not
like
it's
not
like
two
transactions
can
kind
of
simultaneously
do
this,
which
is
really
neat.
So
there
will
be.
C
A
Yeah,
so
that
one
is,
I
think,
that's
kind
of
a
tricky
or
like
like
it
gets
into
not
tricky,
or
maybe
it's
more
simple
honestly
is
like
there.
It
isn't
really
go
by
time,
necessarily
as
soon
as
you
submit
a
transaction,
it
goes
into
the
mempool
mempool
and
this
is
actually
something
where
it's
very
similar
to
ethereum.
A
So
if
you
read
a
book
about
ethereum
and
how
mempools
work,
I
believe
it's
it's
quite
similar
to
that
and-
and
there
are
no
rules
as
far
as
I
know
that
the
mempool
is
like
you
must
you,
you
know,
use
the
ordering
based
on
timestamp
or
something
like
people
are
can
just
like
pluck
out
transactions
at
their
will,
as
as
far
as
far
as
I
understand
so,
it's
just
a
matter
of.
Did
the
validator
happen
to
choose
to
try
to
whatever
execute
this
transaction.
C
Yeah,
okay,
cool
yeah
yeah-
I
was
trying
to
figure
out
like
this-
is
one
of
the
questions,
bigger
questions.
I
had
it's
like
how?
How
do
you
do
like
a
synchronous
action
like
I
submitted
my
answer
and
I
get
immediate
feedback
that
I'm
the
winner
I'm
the
first
one
to
do
it,
while
having
kind
of
this
asynchronous
distributed
model
of
deter
of
validating
that
that
that's
correct.
A
Totally
yeah,
I
I
think
in
this
case
too,
it
would
be
almost
like
the
person
who
wins
will
have
an
easier
time
finding
out
that
they
won.
Then
perhaps
the
people
who
didn't
win
will
get
an
error
yeah.
C
D
C
Okay
cool,
so,
if
there's
multiple
in
progress,
then
that
that
validation
is
going
to
fail
for
other
potential
winners
and
we're
just
going
to
kind
of
queue
off
of
that
yeah.
Okay,
I
think
I
understand.
A
And
actually
now
that
we're
talking
about
these
kind
of
like
I,
I
really
love
this.
Where
this
conversation
is
going
is
like,
then
we
also
want
to
think
about
all
the
edge
cases,
because
there's
crazy
people
out
there
who
do
the
weirdest
things
in
the
world
right.
So
what
if
someone
wins,
but
then
they
just
never
claim
it
like
do
it
do?
Is
it
okay
like
do
it?
Do
we
want
that
or
like
do
we
say?
Okay,
well,
dude.
You
claimed
this
like
seven
days
ago,
bro
and
then
do
you
like
revert
it.
A
A
Yeah
and
then
I
think,
kind
of
kind
of
in
in
closing
a
little
bit
is
like
these
are
the
actions
that,
if
we
build
this
thing
and
it
it
isn't
built,
so
this
is
the
fun
part-
is
like
I'm
really
tempted
to
build
this,
but
I
like
want
to
do
with
people.
You
know
I
wanna
like
have
fun
together
with
friends
and
so
like
it
isn't
built.
Yet
we
can
still
do
this.
If
we
do
this,
we
will
be
using
all
of
these
highlighted
actions.
A
We
won't
use
stake
and
we
won't
use
delete
account,
but
yeah.
This
actually
gets
into
a
lot
of
that,
which
is
neat.
A
recap
of
the
learnings
yeah
near
cli
can
create
keys,
send
transactions.
We
learned
how
keys
work,
how
accounts
and
sub-accounts
work,
what
the
limitations
kind
of
are.
We
learned
about
all
the
actions
batch
actions
and
how
everyone
at
near
should
say
batch
actions
instead
of
batch
transactions,
be
that
change,
how
promises
work
and
how
they're
different
from
from
js
and
then
the
basic
like
sections
of
smart
contracts.
A
A
Yes,
and
then
I
have
a
couple
of
extra
slides
here
that,
like
could
probably
help
us
along,
because
people
have
made
these
little
crossword
puzzle
javascript
things,
and
you
can
actually
some
of
these.
I
think
this
is
the
one
that
I
highlighted.
You
can
actually
just
feed
in
like
a
json
file
of
like
here's,
the
the
hint
and
then
here's
the
answer
and
it'll
actually
like
make
the
puzzle
for
you,
which
is
just
kind
of
cool.
A
So
if
we
do
want
to
kind
of
mock
up
something
or
else
just
sort
of
like
get
started
and
see
how
someone
else
does
it
there's
things
we
can
play
with.
C
Awesome,
I
think
it's
such
a
cool
example
for
people
to
to
work
with,
like
you
get
to
just
interact
with
the
ui
and
you
we
could
even
do
like
sequential
kind
of
like
hey
every
every
month
from
the
fifth
of
every
month,
we're
gonna
release
a
new
puzzle
and
somebody's
gonna
earn
near,
and
it's
kind
of
a
cool
thing
to
to
put
out
there
in
the
community,
and
then
we
could
think
about
ideas
on
how
to
you
know
have
people
extend
the
the
the
platform
yeah
I
mean
that
makes
a
ton
of
sense,
like
I
learned
a
ton
just
because.
A
Pretty
cool
yeah,
you
know,
you
know
it's
funny.
So
have
you
met
josh
ford,
jim
yeah,
yep,
nice?
Oh.
D
A
Yeah,
so
his
partner
has
been
like
had
a
history
of
making
crossword
puzzles
and
solutions
in
in
real
life
like
and
she
still
gets
paid
like
monthly
like
for,
for
these
crosstalk
puzzles
so
like
this
is
another
cool
thing
is
like
you
know,
maybe
that's
like
version
five
is
like
people
can
submit,
you
know
people
crossword
puzzles,
and
then
you
know
they
can.
I
don't
know
yeah
make
a
community
where
everyone's
kind
of
involved
and
people
are
still
winning
money.
I
think
it'd
be
cool
too,
since
near
has
you
know
worldwide
presence?
A
C
Language,
specific
yeah
region,
specific,
okay,
yeah
it'd,
be
it'd,
be
super
cool
like
it
like.
It
seems
like
really
accessible
for,
like
web
2.0
developers
to
what
what
to
developers
to
actually
understand
like
oh
wait.
C
Okay,
I
just
did
this
thing
what's
actually
going
on
behind
the
scenes,
this
doesn't
go
into
like
a
centralized
server
and
you
know
aws
or
whatever,
like
I
like
that,
I
I
think
we
can
have
like
examples
that
are
more
complex
on
how
to
write
a
really
sophisticated,
smart
contract
and
then
examples
of
wait.
Why
would
I
ever
do
this
like
how?
How
does
how
does
this
work
behind
the
scenes
yeah?
I
think.
A
Radical
well
well,
yeah
thanks
all
for
coming
like
I
I
I
made
this
presentation
like
it
probably
took
me
like
35
hours
to
like
actually
make
this
presentation
come
up
with
the
idea,
it's
so
funny
how
how
how
short
it
goes,
but,
like
a
lot
of
thought,
went
into
it
and,
like
I
was
like
dying
to
like
tell
people,
and
so
I'm
like
super
psyched
that
it
seems
like
you
all
like,
really
get
it
and
hopefully
learn
something
so
yeah
that
that
really
feels
good,
and
I
appreciate
everyone's
time.
I
know
it's.
C
A
Like
this
well
yeah
like,
I
could
probably
write
it
in
like
one
day,
but
but
I
I
I
really
want
to
do
with
friends.
I
really
want
to
deal
with
everyone,
because,
like
really
the
fun
of
it
is
like
wait
a
second.
What
about
this,
and
then
you
sort
of
like
figure
it
out
and
like
I
also
like
really
don't
want
to
be
the
person
who
is
like
assigning
tickets
like
because
this
is
this
is
supposed
to
be
fun
and
it
is
fun
right.
C
A
I
think
they'd
be
awesome
and
like
it's
also
like
so
so
it's
fun
and
then
also
I
am
realizing
like
when
I
was
getting
into
kind
of
cutting
my
teeth
on
smart
contracts.
It
was
like
high
stress,
you
know
it's
like.
I
need
to
do
this
for
a
partner
because
they
are
like
building
on
near
and
like
we
can
like
people
don't
have
to
get
thrown
into.
A
You,
know
the
shark
tank
and-
and
we
can
have
fun
so
like
I
do
kind
of
want
to
like
encourage
people
to
learn
this,
because
otherwise
it
is
quite
possible
that
people
will
get
assigned
to
have
more
like
hey.
You
really
need
to
help
them
do
this
and
achieve
it,
but
before
it
gets,
you
know
that
stressful,
like
we
can
all
have
fun
doing
this,
but
yeah.
Hopefully
we
can
cut
our
teeth
like
on
a
more
hobby
project
yup.
I
like
it.
C
B
B
D
D
It's
definitely
like,
like
this
run
through
this
whole
entire
process
is
pretty
good
for
me,
as
well,
like
just
haven't,
been
able
to
watch
the
video
you
sent
me
before
about
you
recorded
this
before
right.
B
Are
there
any
like,
so,
I
guess
like
instead
of
wait,
which
collections
are
we
using
for
this
one
like?
Is
it
like
a
lookup
map
for
this,
or
would.
D
D
A
C
D
B
For
those
interval
collections
like
is
it
do
you
have
to
use
you
weren't
the
same
like
issue
where
you
have
to
like
pull
in
the
entire?
Like
you
know,
some
of
all
the
data
like
you're
saying
with
the
like.
No.
A
Yeah
yeah,
so
so
the
iterators-
and
I
mean
honestly
fong-
is
probably
better
speaking
to
this,
possibly
but
like
the
way
it's
stored
in
state
is
like
you
are
iterating
through
it.
But
it's
like
give
me
that
one
now
give
me
that
one,
it's
not
like
hey
load,
all
these
guys
and
then
like
loop
through
them.
So
it
is.
If
that's,
if
that's
what
your
question
is
like,
it
is
not
doing
the
bad
stuff
that
hash
map
is
doing.
B
C
A
Which
is
funny
because
I
like
this-
it's
easy
just
for
me
to
when
I
was
hearing
this
to
be
like
okay,
in
that
case
it's
100
better
every
single
time
and
then
working
with
eugene.
It
became
quickly
clear
that,
like
no,
there
are
times
too,
where,
like
it
makes
sense
just
to
do
one.
If
you
know
that
you
are
always
gonna
need
five,
these
five
things
and
you're
never
gonna
not
need
them.
Then
do
one
read
right
because
that
a
read
costs
x,
amount
of
computation
x,
amount
of
guess
right.
C
Oh
interesting
so
you're
only
starting
with
kind
of
the
key
side
of
the
key
value
pair
and
then
you're
very
lazily,
looking
up
the
results,
but
it,
but
if
you're
gonna
so
there's
a
penalty
there
right
so
you're
having
to
make
a
explicit
call
to
pull
back
values
based
on
that
key.
But
if
you
know
you
need
all
of
the
values
you
just
pull
it
all
in
at
once,
and
then
it's
super
efficient
is
that
kind
of
the
idea.
A
Yes,
100,
cool
cool
and-
and
this
makes
me
want
to
also
show
this
real
quickly
is
josh-
did
a
really
cool
josh
ford
did
a
really
cool.
A
Yeah,
have
you
seen
this?
I
don't
think
you've
seen
this
jim
and
maybe
not
fong
too
so
I'll
share
it.
This
was
something
that
he
josh
was
coming
over
to
my
house
for
a
bit
and
we
were
like
hacking
on
this,
but
he
did
it
all.
I
just
tried
to
like
help
guide.
This
is
like
really
really
really
useful.
I'll,
actually
go
down
to
the
rust
collections
down
here.
A
So
here
here's
them
all
tree
map
is
like
iterable
and
you
can
clear
all
values
and
here's
the
preserves
order
of
insertion
all
that
stuff.
Then
he
goes
down
into
big
o
notation,
which
is
awesome,
so
you
can
see
the
efficiency
and
then
gas
can
consumption
examples.
So
he
ran
this
against
testnet
just
because
we
were
going
to
do
simulation
tests,
but
then
testnet
was
actually
a
little
bit
more
accurate.
So
now
you
can
see
how
much
it
costs.
So
this
is
for
inserting
data
and
then
below
is
for
retrieving
data.
A
So
you
can
see
that
lookup
map
is
like
the
lowest,
and
one
thing
to
note
here
is
tree.
Map
is
like
self-balancing,
so
it'll
never
get
like
super
deep,
but-
and
this
is
perhaps
something
we
should
call
out
more,
but
up
here
on
these
two,
the
maximum
is
3.0
over
here,
it's
20.,
so
3.0
is
down
here.
So
tree
map
is
like
way
more
when
it
comes
to
insertions.
A
However,
you
can
see
that
the
tree
map
is
a
little
bit
cheaper
when
you're
rejected
when
you're
retrieving
it
right.
So
yeah,
it's
all
about
trade-offs,
but
this
is
a
good
page
to
reference
when
you're,
like
which
one
should
I
use
cool.
C
A
Awesome,
well,
I
I
am
super
psyched
now,
like
I
don't
know,
I
feel
alive
after
this
meeting
and
want
to
thank
you
all
for
being
here
and
listening
to
this
thing
that
I
spent
so
many
hours
on
and
the
validation
and
all
that,
and
I
I
was
a
little
tired
coming
to
this
meeting
and
then
now,
I'm
just
like,
like
psyched
and
getting
ready
for
happy
friday.
A
C
C
B
Yeah
the
fans
like
jumping
on
to
like
always
like
looking
for,
like
I
think
working
in
group
will
be-
I
mean
I'm
always
looking
for
new
opportunities
to
learn.
So
I
think,
like
working
group,
is
like
very
helpful
for
this
project.
For
me
personally,.