WEBVTT
Kind: captions
Language: en

00:00:16.900 --> 00:00:20.410 align:start position:0%
 
next<00:00:17.900><c> person</c><00:00:18.110><c> up</c><00:00:18.410><c> is</c><00:00:18.650><c> John</c>

00:00:20.410 --> 00:00:20.420 align:start position:0%
next person up is John
 

00:00:20.420 --> 00:00:25.410 align:start position:0%
next person up is John
he<00:00:20.870><c> is</c><00:00:20.990><c> going</c><00:00:21.260><c> to</c><00:00:21.380><c> speak</c><00:00:21.650><c> on</c><00:00:21.860><c> a</c><00:00:22.340><c> cerium</c><00:00:22.850><c> on</c><00:00:23.150><c> Ruby</c>

00:00:25.410 --> 00:00:25.420 align:start position:0%
he is going to speak on a cerium on Ruby
 

00:00:25.420 --> 00:00:42.040 align:start position:0%
he is going to speak on a cerium on Ruby
welcome<00:00:26.420><c> Jan</c><00:00:27.640><c> thank</c><00:00:28.640><c> you</c><00:00:39.610><c> so</c><00:00:40.610><c> thank</c><00:00:40.940><c> you</c><00:00:41.450><c> for</c>

00:00:42.040 --> 00:00:42.050 align:start position:0%
welcome Jan thank you so thank you for
 

00:00:42.050 --> 00:00:45.370 align:start position:0%
welcome Jan thank you so thank you for
coming<00:00:42.380><c> to</c><00:00:42.500><c> this</c><00:00:42.680><c> talk</c><00:00:42.920><c> and</c><00:00:44.079><c> it's</c><00:00:45.079><c> time</c><00:00:45.350><c> for</c>

00:00:45.370 --> 00:00:45.380 align:start position:0%
coming to this talk and it's time for
 

00:00:45.380 --> 00:00:48.550 align:start position:0%
coming to this talk and it's time for
some<00:00:45.649><c> simple</c><00:00:46.460><c> stuff</c><00:00:46.670><c> I</c><00:00:46.910><c> think</c><00:00:47.180><c> I</c><00:00:47.360><c> believe</c><00:00:48.230><c> the</c>

00:00:48.550 --> 00:00:48.560 align:start position:0%
some simple stuff I think I believe the
 

00:00:48.560 --> 00:00:51.640 align:start position:0%
some simple stuff I think I believe the
organizer<00:00:49.340><c> arranged</c><00:00:50.180><c> me</c><00:00:50.420><c> after</c><00:00:50.870><c> blood</c><00:00:51.260><c> for</c>

00:00:51.640 --> 00:00:51.650 align:start position:0%
organizer arranged me after blood for
 

00:00:51.650 --> 00:00:56.890 align:start position:0%
organizer arranged me after blood for
some<00:00:51.980><c> reason</c><00:00:53.740><c> so</c><00:00:54.740><c> yeah</c><00:00:55.030><c> okay</c><00:00:56.030><c> in</c><00:00:56.210><c> in</c><00:00:56.600><c> the</c><00:00:56.750><c> next</c>

00:00:56.890 --> 00:00:56.900 align:start position:0%
some reason so yeah okay in in the next
 

00:00:56.900 --> 00:00:59.410 align:start position:0%
some reason so yeah okay in in the next
in<00:00:57.410><c> the</c><00:00:57.530><c> next</c><00:00:57.590><c> 15</c><00:00:58.160><c> minutes</c><00:00:58.190><c> I</c><00:00:58.730><c> will</c><00:00:59.030><c> introduce</c>

00:00:59.410 --> 00:00:59.420 align:start position:0%
in the next 15 minutes I will introduce
 

00:00:59.420 --> 00:01:01.660 align:start position:0%
in the next 15 minutes I will introduce
you<00:00:59.780><c> to</c><00:00:59.840><c> his</c><00:01:00.050><c> sermon</c><00:01:00.500><c> Ruby</c><00:01:00.860><c> which</c><00:01:01.310><c> is</c><00:01:01.490><c> the</c>

00:01:01.660 --> 00:01:01.670 align:start position:0%
you to his sermon Ruby which is the
 

00:01:01.670 --> 00:01:03.820 align:start position:0%
you to his sermon Ruby which is the
intersection<00:01:02.180><c> of</c><00:01:02.540><c> his</c><00:01:02.780><c> serum</c><00:01:03.110><c> community</c><00:01:03.650><c> and</c>

00:01:03.820 --> 00:01:03.830 align:start position:0%
intersection of his serum community and
 

00:01:03.830 --> 00:01:11.890 align:start position:0%
intersection of his serum community and
Ruby<00:01:04.159><c> community</c><00:01:10.060><c> before</c><00:01:11.060><c> that</c><00:01:11.360><c> a</c><00:01:11.390><c> little</c><00:01:11.780><c> bit</c>

00:01:11.890 --> 00:01:11.900 align:start position:0%
Ruby community before that a little bit
 

00:01:11.900 --> 00:01:15.060 align:start position:0%
Ruby community before that a little bit
about<00:01:12.170><c> myself</c><00:01:12.670><c> my</c><00:01:13.670><c> name</c><00:01:13.880><c> is</c><00:01:14.060><c> Shahenshah</c><00:01:14.479><c> and</c>

00:01:15.060 --> 00:01:15.070 align:start position:0%
about myself my name is Shahenshah and
 

00:01:15.070 --> 00:01:19.420 align:start position:0%
about myself my name is Shahenshah and
I'm<00:01:16.070><c> a</c><00:01:16.130><c> serum</c><00:01:17.000><c> developer</c><00:01:17.570><c> I</c><00:01:17.980><c> in</c><00:01:18.980><c> last</c><00:01:19.190><c> year</c><00:01:19.400><c> I</c>

00:01:19.420 --> 00:01:19.430 align:start position:0%
I'm a serum developer I in last year I
 

00:01:19.430 --> 00:01:22.570 align:start position:0%
I'm a serum developer I in last year I
created<00:01:19.520><c> the</c><00:01:20.510><c> Ruby</c><00:01:21.050><c> certain</c><00:01:21.560><c> project</c><00:01:22.070><c> which</c>

00:01:22.570 --> 00:01:22.580 align:start position:0%
created the Ruby certain project which
 

00:01:22.580 --> 00:01:25.870 align:start position:0%
created the Ruby certain project which
is<00:01:22.790><c> a</c><00:01:22.820><c> full</c><00:01:23.420><c> implementation</c><00:01:24.230><c> of</c><00:01:24.830><c> cerium</c><00:01:25.490><c> in</c>

00:01:25.870 --> 00:01:25.880 align:start position:0%
is a full implementation of cerium in
 

00:01:25.880 --> 00:01:28.780 align:start position:0%
is a full implementation of cerium in
Ruby<00:01:26.210><c> and</c><00:01:26.450><c> I'm</c><00:01:26.690><c> also</c><00:01:26.900><c> working</c><00:01:27.230><c> on</c><00:01:27.440><c> pi</c><00:01:28.280><c> serum</c>

00:01:28.780 --> 00:01:28.790 align:start position:0%
Ruby and I'm also working on pi serum
 

00:01:28.790 --> 00:01:32.170 align:start position:0%
Ruby and I'm also working on pi serum
and<00:01:29.620><c> I'm</c><00:01:30.620><c> running</c><00:01:30.860><c> a</c><00:01:31.159><c> blockchain</c><00:01:31.430><c> technology</c>

00:01:32.170 --> 00:01:32.180 align:start position:0%
and I'm running a blockchain technology
 

00:01:32.180 --> 00:01:35.050 align:start position:0%
and I'm running a blockchain technology
startup<00:01:32.659><c> named</c><00:01:33.440><c> tape</c><00:01:33.650><c> and</c><00:01:33.890><c> we</c><00:01:34.400><c> we</c><00:01:34.970><c> are</c>

00:01:35.050 --> 00:01:35.060 align:start position:0%
startup named tape and we we are
 

00:01:35.060 --> 00:01:37.240 align:start position:0%
startup named tape and we we are
building<00:01:35.390><c> underlying</c><00:01:36.290><c> permission</c><00:01:37.040><c> ledger</c>

00:01:37.240 --> 00:01:37.250 align:start position:0%
building underlying permission ledger
 

00:01:37.250 --> 00:01:39.850 align:start position:0%
building underlying permission ledger
and<00:01:37.610><c> we</c><00:01:37.909><c> also</c><00:01:38.210><c> providing</c><00:01:38.930><c> some</c><00:01:39.110><c> consultancies</c>

00:01:39.850 --> 00:01:39.860 align:start position:0%
and we also providing some consultancies
 

00:01:39.860 --> 00:01:43.630 align:start position:0%
and we also providing some consultancies
to<00:01:40.070><c> our</c><00:01:40.190><c> customers</c><00:01:40.700><c> and</c><00:01:41.110><c> during</c><00:01:42.110><c> our</c><00:01:42.640><c> daily</c>

00:01:43.630 --> 00:01:43.640 align:start position:0%
to our customers and during our daily
 

00:01:43.640 --> 00:01:49.570 align:start position:0%
to our customers and during our daily
job<00:01:44.440><c> we</c><00:01:45.440><c> build</c><00:01:46.960><c> some</c><00:01:47.960><c> tools</c><00:01:48.350><c> to</c><00:01:48.620><c> help</c><00:01:49.190><c> me</c>

00:01:49.570 --> 00:01:49.580 align:start position:0%
job we build some tools to help me
 

00:01:49.580 --> 00:01:53.830 align:start position:0%
job we build some tools to help me
develop<00:01:50.030><c> taps</c><00:01:50.860><c> okay</c><00:01:51.860><c> so</c><00:01:52.040><c> a</c><00:01:52.490><c> little</c><00:01:53.479><c> bit</c><00:01:53.600><c> about</c>

00:01:53.830 --> 00:01:53.840 align:start position:0%
develop taps okay so a little bit about
 

00:01:53.840 --> 00:01:57.160 align:start position:0%
develop taps okay so a little bit about
Ruby<00:01:54.170><c> Ruby</c><00:01:54.799><c> is</c><00:01:54.950><c> a</c><00:01:55.310><c> language</c><00:01:55.840><c> created</c><00:01:56.840><c> by</c><00:01:56.990><c> a</c>

00:01:57.160 --> 00:01:57.170 align:start position:0%
Ruby Ruby is a language created by a
 

00:01:57.170 --> 00:02:01.030 align:start position:0%
Ruby Ruby is a language created by a
japanese<00:01:57.650><c> named</c><00:01:58.270><c> Yukihiro</c><00:01:59.270><c> Matsumoto</c><00:02:00.200><c> whose</c>

00:02:01.030 --> 00:02:01.040 align:start position:0%
japanese named Yukihiro Matsumoto whose
 

00:02:01.040 --> 00:02:06.250 align:start position:0%
japanese named Yukihiro Matsumoto whose
nickname<00:02:01.310><c> is</c><00:02:01.520><c> Matz</c><00:02:02.060><c> and</c><00:02:04.390><c> the</c><00:02:05.390><c> core</c><00:02:05.659><c> principle</c>

00:02:06.250 --> 00:02:06.260 align:start position:0%
nickname is Matz and the core principle
 

00:02:06.260 --> 00:02:08.680 align:start position:0%
nickname is Matz and the core principle
of<00:02:06.409><c> Ruby</c><00:02:06.860><c> language</c><00:02:07.040><c> I</c><00:02:07.580><c> think</c><00:02:08.239><c> you</c><00:02:08.330><c> can</c><00:02:08.479><c> get</c>

00:02:08.680 --> 00:02:08.690 align:start position:0%
of Ruby language I think you can get
 

00:02:08.690 --> 00:02:11.110 align:start position:0%
of Ruby language I think you can get
from<00:02:08.959><c> this</c><00:02:09.200><c> guy's</c><00:02:09.440><c> face</c><00:02:09.769><c> right</c><00:02:10.429><c> that's</c>

00:02:11.110 --> 00:02:11.120 align:start position:0%
from this guy's face right that's
 

00:02:11.120 --> 00:02:17.110 align:start position:0%
from this guy's face right that's
happiness<00:02:13.750><c> so</c><00:02:14.950><c> Ruby</c><00:02:15.950><c> is</c><00:02:15.980><c> a</c><00:02:16.129><c> language</c><00:02:16.549><c> designed</c>

00:02:17.110 --> 00:02:17.120 align:start position:0%
happiness so Ruby is a language designed
 

00:02:17.120 --> 00:02:20.940 align:start position:0%
happiness so Ruby is a language designed
for<00:02:17.540><c> human</c><00:02:18.110><c> it</c><00:02:19.000><c> it's</c><00:02:20.000><c> very</c><00:02:20.239><c> focused</c><00:02:20.510><c> on</c>

00:02:20.940 --> 00:02:20.950 align:start position:0%
for human it it's very focused on
 

00:02:20.950 --> 00:02:24.910 align:start position:0%
for human it it's very focused on
readability<00:02:21.950><c> so</c><00:02:22.640><c> in</c><00:02:23.330><c> one</c><00:02:23.900><c> of</c><00:02:23.930><c> his</c><00:02:24.260><c> talk</c><00:02:24.500><c> in</c><00:02:24.770><c> one</c>

00:02:24.910 --> 00:02:24.920 align:start position:0%
readability so in one of his talk in one
 

00:02:24.920 --> 00:02:26.420 align:start position:0%
readability so in one of his talk in one
of<00:02:25.010><c> math</c><00:02:25.310><c> talk</c>

00:02:26.420 --> 00:02:26.430 align:start position:0%
of math talk
 

00:02:26.430 --> 00:02:29.050 align:start position:0%
of math talk
the<00:02:26.780><c> presentation</c><00:02:27.780><c> title</c><00:02:28.170><c> is</c><00:02:28.290><c> optimized</c><00:02:28.860><c> for</c>

00:02:29.050 --> 00:02:29.060 align:start position:0%
the presentation title is optimized for
 

00:02:29.060 --> 00:02:30.740 align:start position:0%
the presentation title is optimized for
programmer<00:02:30.060><c> happiness</c>

00:02:30.740 --> 00:02:30.750 align:start position:0%
programmer happiness
 

00:02:30.750 --> 00:02:35.089 align:start position:0%
programmer happiness
so<00:02:31.140><c> if</c><00:02:31.260><c> you</c><00:02:32.540><c> make</c><00:02:33.540><c> a</c><00:02:33.720><c> spectrum</c><00:02:34.260><c> of</c><00:02:34.439><c> languages</c>

00:02:35.089 --> 00:02:35.099 align:start position:0%
so if you make a spectrum of languages
 

00:02:35.099 --> 00:02:40.429 align:start position:0%
so if you make a spectrum of languages
in<00:02:35.489><c> the</c><00:02:36.060><c> one</c><00:02:36.209><c> side</c><00:02:36.510><c> maybe</c><00:02:37.819><c> maybe</c><00:02:38.819><c> west</c><00:02:39.750><c> right</c>

00:02:40.429 --> 00:02:40.439 align:start position:0%
in the one side maybe maybe west right
 

00:02:40.439 --> 00:02:44.149 align:start position:0%
in the one side maybe maybe west right
the<00:02:41.040><c> ASM</c><00:02:41.790><c> and</c><00:02:42.000><c> in</c><00:02:42.510><c> in</c><00:02:43.049><c> the</c><00:02:43.230><c> other</c><00:02:43.349><c> side</c><00:02:43.620><c> is</c><00:02:43.799><c> Ruby</c>

00:02:44.149 --> 00:02:44.159 align:start position:0%
the ASM and in in the other side is Ruby
 

00:02:44.159 --> 00:02:47.179 align:start position:0%
the ASM and in in the other side is Ruby
I<00:02:44.340><c> believe</c><00:02:44.959><c> so</c><00:02:45.959><c> it's</c><00:02:46.140><c> all</c><00:02:46.290><c> optimized</c><00:02:46.920><c> for</c>

00:02:47.179 --> 00:02:47.189 align:start position:0%
I believe so it's all optimized for
 

00:02:47.189 --> 00:02:50.960 align:start position:0%
I believe so it's all optimized for
human<00:02:48.000><c> and</c><00:02:48.680><c> the</c><00:02:49.680><c> source</c><00:02:50.220><c> code</c><00:02:50.430><c> written</c><00:02:50.670><c> in</c>

00:02:50.960 --> 00:02:50.970 align:start position:0%
human and the source code written in
 

00:02:50.970 --> 00:02:54.050 align:start position:0%
human and the source code written in
rubies<00:02:51.299><c> will</c><00:02:51.780><c> read</c><00:02:52.140><c> very</c><00:02:52.620><c> naturally</c><00:02:53.340><c> and</c><00:02:53.459><c> we</c>

00:02:54.050 --> 00:02:54.060 align:start position:0%
rubies will read very naturally and we
 

00:02:54.060 --> 00:02:57.890 align:start position:0%
rubies will read very naturally and we
will<00:02:54.269><c> see</c><00:02:54.510><c> that</c><00:02:54.689><c> later</c><00:02:54.900><c> and</c><00:02:55.379><c> the</c><00:02:55.459><c> other</c><00:02:56.900><c> good</c>

00:02:57.890 --> 00:02:57.900 align:start position:0%
will see that later and the other good
 

00:02:57.900 --> 00:03:00.319 align:start position:0%
will see that later and the other good
point<00:02:58.170><c> of</c><00:02:58.379><c> Ruby's</c><00:02:58.980><c> flexibility</c><00:02:59.819><c> so</c><00:03:00.030><c> a</c><00:03:00.060><c> lot</c><00:03:00.299><c> of</c>

00:03:00.319 --> 00:03:00.329 align:start position:0%
point of Ruby's flexibility so a lot of
 

00:03:00.329 --> 00:03:02.899 align:start position:0%
point of Ruby's flexibility so a lot of
people<00:03:00.629><c> is</c><00:03:00.900><c> using</c><00:03:01.139><c> Ruby</c><00:03:01.620><c> to</c><00:03:02.069><c> define</c><00:03:02.459><c> her</c><00:03:02.730><c> no</c>

00:03:02.899 --> 00:03:02.909 align:start position:0%
people is using Ruby to define her no
 

00:03:02.909 --> 00:03:05.899 align:start position:0%
people is using Ruby to define her no
DSL<00:03:03.510><c> the</c><00:03:03.900><c> main</c><00:03:04.079><c> specific</c><00:03:04.349><c> language</c><00:03:05.220><c> so</c><00:03:05.879><c> that</c>

00:03:05.899 --> 00:03:05.909 align:start position:0%
DSL the main specific language so that
 

00:03:05.909 --> 00:03:08.449 align:start position:0%
DSL the main specific language so that
the<00:03:06.239><c> most</c><00:03:06.480><c> famous</c><00:03:06.750><c> one</c><00:03:07.049><c> is</c><00:03:07.170><c> rels</c><00:03:07.470><c> right</c><00:03:08.159><c> so</c>

00:03:08.449 --> 00:03:08.459 align:start position:0%
the most famous one is rels right so
 

00:03:08.459 --> 00:03:12.379 align:start position:0%
the most famous one is rels right so
real<00:03:08.760><c> see</c><00:03:09.000><c> is</c><00:03:09.769><c> DSL</c><00:03:10.769><c> for</c><00:03:11.159><c> web</c><00:03:11.579><c> development</c><00:03:12.090><c> and</c>

00:03:12.379 --> 00:03:12.389 align:start position:0%
real see is DSL for web development and
 

00:03:12.389 --> 00:03:17.390 align:start position:0%
real see is DSL for web development and
I<00:03:12.900><c> believe</c><00:03:13.170><c> we</c><00:03:13.349><c> can</c><00:03:13.530><c> also</c><00:03:14.189><c> use</c><00:03:14.670><c> Ruby</c><00:03:15.090><c> to</c><00:03:16.400><c> define</c>

00:03:17.390 --> 00:03:17.400 align:start position:0%
I believe we can also use Ruby to define
 

00:03:17.400 --> 00:03:25.819 align:start position:0%
I believe we can also use Ruby to define
some<00:03:17.700><c> DSL</c><00:03:18.420><c> for</c><00:03:18.689><c> smart</c><00:03:19.349><c> culture</c><00:03:23.540><c> so</c><00:03:24.540><c> we</c><00:03:25.349><c> created</c>

00:03:25.819 --> 00:03:25.829 align:start position:0%
some DSL for smart culture so we created
 

00:03:25.829 --> 00:03:28.580 align:start position:0%
some DSL for smart culture so we created
thethe<00:03:26.420><c> testing</c><00:03:27.420><c> and</c><00:03:27.569><c> deployment</c><00:03:28.019><c> framework</c>

00:03:28.580 --> 00:03:28.590 align:start position:0%
thethe testing and deployment framework
 

00:03:28.590 --> 00:03:33.379 align:start position:0%
thethe testing and deployment framework
for<00:03:29.519><c> smart</c><00:03:29.790><c> contract</c><00:03:31.190><c> after</c><00:03:32.190><c> you</c><00:03:32.849><c> install</c>

00:03:33.379 --> 00:03:33.389 align:start position:0%
for smart contract after you install
 

00:03:33.389 --> 00:03:38.119 align:start position:0%
for smart contract after you install
tests<00:03:34.579><c> you</c><00:03:35.579><c> can</c><00:03:35.910><c> open</c><00:03:36.780><c> your</c><00:03:36.840><c> console</c><00:03:37.379><c> and</c><00:03:37.590><c> type</c>

00:03:38.119 --> 00:03:38.129 align:start position:0%
tests you can open your console and type
 

00:03:38.129 --> 00:03:40.189 align:start position:0%
tests you can open your console and type
some<00:03:38.400><c> command</c><00:03:38.790><c> line</c><00:03:38.940><c> like</c><00:03:39.150><c> this</c><00:03:39.359><c> like</c><00:03:39.870><c> test</c>

00:03:40.189 --> 00:03:40.199 align:start position:0%
some command line like this like test
 

00:03:40.199 --> 00:03:42.439 align:start position:0%
some command line like this like test
new<00:03:40.530><c> big</c><00:03:40.859><c> thing</c><00:03:40.889><c> big</c><00:03:41.310><c> things</c><00:03:41.549><c> the</c><00:03:41.909><c> name</c><00:03:42.180><c> of</c>

00:03:42.439 --> 00:03:42.449 align:start position:0%
new big thing big things the name of
 

00:03:42.449 --> 00:03:45.979 align:start position:0%
new big thing big things the name of
your<00:03:43.199><c> next</c><00:03:44.010><c> big</c><00:03:44.340><c> project</c><00:03:44.639><c> okay</c><00:03:45.569><c> and</c><00:03:45.780><c> this</c>

00:03:45.979 --> 00:03:45.989 align:start position:0%
your next big project okay and this
 

00:03:45.989 --> 00:03:48.649 align:start position:0%
your next big project okay and this
command<00:03:46.560><c> will</c><00:03:46.739><c> generate</c><00:03:47.220><c> you</c><00:03:47.489><c> a</c><00:03:47.699><c> lot</c><00:03:48.180><c> of</c><00:03:48.209><c> files</c>

00:03:48.649 --> 00:03:48.659 align:start position:0%
command will generate you a lot of files
 

00:03:48.659 --> 00:03:57.890 align:start position:0%
command will generate you a lot of files
and<00:03:48.959><c> directories</c><00:03:55.639><c> an</c><00:03:56.639><c> amount</c><00:03:57.239><c> of</c><00:03:57.419><c> directories</c>

00:03:57.890 --> 00:03:57.900 align:start position:0%
and directories an amount of directories
 

00:03:57.900 --> 00:03:59.780 align:start position:0%
and directories an amount of directories
the<00:03:58.019><c> most</c><00:03:58.260><c> important</c><00:03:58.739><c> one</c><00:03:58.949><c> are</c><00:03:59.040><c> contracts</c><00:03:59.609><c> and</c>

00:03:59.780 --> 00:03:59.790 align:start position:0%
the most important one are contracts and
 

00:03:59.790 --> 00:04:02.479 align:start position:0%
the most important one are contracts and
tests<00:04:00.359><c> contracts</c><00:04:00.989><c> will</c><00:04:01.739><c> include</c><00:04:02.159><c> the</c>

00:04:02.479 --> 00:04:02.489 align:start position:0%
tests contracts will include the
 

00:04:02.489 --> 00:04:05.360 align:start position:0%
tests contracts will include the
generated<00:04:03.269><c> country</c><00:04:03.930><c> template</c><00:04:04.349><c> and</c><00:04:04.620><c> test</c><00:04:05.159><c> will</c>

00:04:05.360 --> 00:04:05.370 align:start position:0%
generated country template and test will
 

00:04:05.370 --> 00:04:08.420 align:start position:0%
generated country template and test will
include<00:04:05.870><c> will</c><00:04:06.870><c> have</c><00:04:07.049><c> to</c><00:04:07.260><c> generate</c><00:04:08.010><c> a</c><00:04:08.069><c> test</c>

00:04:08.420 --> 00:04:08.430 align:start position:0%
include will have to generate a test
 

00:04:08.430 --> 00:04:13.250 align:start position:0%
include will have to generate a test
template<00:04:09.979><c> and</c><00:04:11.359><c> then</c><00:04:12.359><c> you</c><00:04:12.510><c> can</c><00:04:12.690><c> do</c><00:04:12.870><c> tests</c>

00:04:13.250 --> 00:04:13.260 align:start position:0%
template and then you can do tests
 

00:04:13.260 --> 00:04:15.860 align:start position:0%
template and then you can do tests
generate<00:04:13.709><c> token</c><00:04:14.159><c> tokens</c><00:04:14.760><c> the</c><00:04:15.030><c> name</c><00:04:15.389><c> of</c><00:04:15.659><c> your</c>

00:04:15.860 --> 00:04:15.870 align:start position:0%
generate token tokens the name of your
 

00:04:15.870 --> 00:04:19.819 align:start position:0%
generate token tokens the name of your
smart<00:04:16.139><c> contract</c><00:04:17.900><c> so</c><00:04:18.900><c> you</c><00:04:19.169><c> can</c><00:04:19.470><c> name</c><00:04:19.799><c> it</c>

00:04:19.819 --> 00:04:19.829 align:start position:0%
smart contract so you can name it
 

00:04:19.829 --> 00:04:22.550 align:start position:0%
smart contract so you can name it
whatever<00:04:20.370><c> but</c><00:04:20.970><c> we</c><00:04:21.120><c> use</c><00:04:21.539><c> token</c><00:04:21.959><c> for</c><00:04:22.139><c> example</c>

00:04:22.550 --> 00:04:22.560 align:start position:0%
whatever but we use token for example
 

00:04:22.560 --> 00:04:26.560 align:start position:0%
whatever but we use token for example
and<00:04:22.740><c> here's</c><00:04:23.340><c> the</c><00:04:23.610><c> here's</c><00:04:24.389><c> the</c><00:04:24.539><c> generated</c><00:04:25.199><c> file</c>

00:04:26.560 --> 00:04:26.570 align:start position:0%
and here's the here's the generated file
 

00:04:26.570 --> 00:04:29.870 align:start position:0%
and here's the here's the generated file
in<00:04:27.570><c> the</c><00:04:27.870><c> on</c><00:04:28.139><c> your</c><00:04:28.470><c> left</c><00:04:28.740><c> side</c><00:04:28.860><c> you</c><00:04:29.310><c> can</c><00:04:29.580><c> see</c>

00:04:29.870 --> 00:04:29.880 align:start position:0%
in the on your left side you can see
 

00:04:29.880 --> 00:04:33.080 align:start position:0%
in the on your left side you can see
there's<00:04:30.449><c> a</c><00:04:30.630><c> solidity</c><00:04:31.020><c> contract</c><00:04:31.560><c> is</c><00:04:32.099><c> empty</c><00:04:32.880><c> and</c>

00:04:33.080 --> 00:04:33.090 align:start position:0%
there's a solidity contract is empty and
 

00:04:33.090 --> 00:04:36.610 align:start position:0%
there's a solidity contract is empty and
on<00:04:33.930><c> your</c><00:04:34.110><c> right</c><00:04:34.440><c> hand</c><00:04:34.680><c> is</c><00:04:34.950><c> the</c><00:04:35.310><c> generated</c><00:04:36.090><c> test</c>

00:04:36.610 --> 00:04:36.620 align:start position:0%
on your right hand is the generated test
 

00:04:36.620 --> 00:04:40.310 align:start position:0%
on your right hand is the generated test
for<00:04:37.620><c> the</c><00:04:37.770><c> left</c><00:04:37.950><c> side</c><00:04:38.570><c> smart</c><00:04:39.570><c> contract</c>

00:04:40.310 --> 00:04:40.320 align:start position:0%
for the left side smart contract
 

00:04:40.320 --> 00:04:43.880 align:start position:0%
for the left side smart contract
and<00:04:41.060><c> the</c><00:04:42.060><c> generated</c><00:04:42.540><c> test</c><00:04:42.780><c> is</c><00:04:43.020><c> very</c><00:04:43.350><c> simple</c>

00:04:43.880 --> 00:04:43.890 align:start position:0%
and the generated test is very simple
 

00:04:43.890 --> 00:04:48.380 align:start position:0%
and the generated test is very simple
it<00:04:44.430><c> includes</c><00:04:45.150><c> an</c><00:04:45.810><c> example</c><00:04:46.560><c> test</c><00:04:47.220><c> so</c><00:04:48.060><c> it</c><00:04:48.180><c> just</c>

00:04:48.380 --> 00:04:48.390 align:start position:0%
it includes an example test so it just
 

00:04:48.390 --> 00:04:54.200 align:start position:0%
it includes an example test so it just
says<00:04:48.540><c> assert</c><00:04:49.440><c> a</c><00:04:49.770><c> third</c><00:04:51.200><c> equation</c><00:04:52.200><c> of</c><00:04:53.210><c> assert</c>

00:04:54.200 --> 00:04:54.210 align:start position:0%
says assert a third equation of assert
 

00:04:54.210 --> 00:04:55.970 align:start position:0%
says assert a third equation of assert
that<00:04:54.240><c> the</c><00:04:54.540><c> counter</c><00:04:54.900><c> at</c><00:04:54.990><c> address</c><00:04:55.500><c> is</c><00:04:55.770><c> not</c>

00:04:55.970 --> 00:04:55.980 align:start position:0%
that the counter at address is not
 

00:04:55.980 --> 00:04:58.010 align:start position:0%
that the counter at address is not
kneeled<00:04:56.340><c> assert</c><00:04:56.970><c> that</c><00:04:57.000><c> the</c><00:04:57.300><c> contract</c><00:04:57.780><c> has</c>

00:04:58.010 --> 00:04:58.020 align:start position:0%
kneeled assert that the contract has
 

00:04:58.020 --> 00:05:04.130 align:start position:0%
kneeled assert that the contract has
been<00:04:58.590><c> deployed</c><00:05:01.490><c> okay</c><00:05:02.490><c> so</c><00:05:02.940><c> this</c><00:05:03.630><c> is</c><00:05:03.840><c> just</c>

00:05:04.130 --> 00:05:04.140 align:start position:0%
been deployed okay so this is just
 

00:05:04.140 --> 00:05:14.450 align:start position:0%
been deployed okay so this is just
generated<00:05:04.890><c> out</c><00:05:05.220><c> from</c><00:05:05.580><c> the</c><00:05:05.760><c> tool</c><00:05:13.280><c> okay</c><00:05:14.280><c> before</c>

00:05:14.450 --> 00:05:14.460 align:start position:0%
generated out from the tool okay before
 

00:05:14.460 --> 00:05:19.270 align:start position:0%
generated out from the tool okay before
we<00:05:14.760><c> jump</c><00:05:15.060><c> into</c><00:05:15.210><c> a</c><00:05:15.630><c> real</c><00:05:16.250><c> smart</c><00:05:17.250><c> contract</c><00:05:17.700><c> test</c>

00:05:19.270 --> 00:05:19.280 align:start position:0%
we jump into a real smart contract test
 

00:05:19.280 --> 00:05:23.270 align:start position:0%
we jump into a real smart contract test
you<00:05:20.280><c> need</c><00:05:20.460><c> to</c><00:05:20.580><c> know</c><00:05:20.760><c> some</c><00:05:21.500><c> tools</c><00:05:22.500><c> at</c><00:05:22.800><c> your</c><00:05:23.010><c> hand</c>

00:05:23.270 --> 00:05:23.280 align:start position:0%
you need to know some tools at your hand
 

00:05:23.280 --> 00:05:25.730 align:start position:0%
you need to know some tools at your hand
you<00:05:23.550><c> can</c><00:05:23.700><c> use</c><00:05:23.760><c> these</c><00:05:24.540><c> keywords</c><00:05:24.810><c> in</c><00:05:25.320><c> your</c><00:05:25.500><c> test</c>

00:05:25.730 --> 00:05:25.740 align:start position:0%
you can use these keywords in your test
 

00:05:25.740 --> 00:05:29.060 align:start position:0%
you can use these keywords in your test
so<00:05:26.610><c> we</c><00:05:26.850><c> have</c><00:05:27.060><c> some</c><00:05:27.450><c> we</c><00:05:28.380><c> have</c><00:05:28.410><c> some</c><00:05:28.830><c> tools</c>

00:05:29.060 --> 00:05:29.070 align:start position:0%
so we have some we have some tools
 

00:05:29.070 --> 00:05:32.390 align:start position:0%
so we have some we have some tools
relate<00:05:29.430><c> you</c><00:05:29.520><c> to</c><00:05:29.670><c> count</c><00:05:29.940><c> X</c><00:05:30.440><c> you</c><00:05:31.440><c> can</c><00:05:31.680><c> you</c><00:05:31.980><c> have</c>

00:05:32.390 --> 00:05:32.400 align:start position:0%
relate you to count X you can you have
 

00:05:32.400 --> 00:05:34.760 align:start position:0%
relate you to count X you can you have
access<00:05:32.850><c> to</c><00:05:33.060><c> state</c><00:05:33.330><c> state</c><00:05:33.870><c> is</c><00:05:34.050><c> a</c><00:05:34.080><c> collection</c><00:05:34.500><c> of</c>

00:05:34.760 --> 00:05:34.770 align:start position:0%
access to state state is a collection of
 

00:05:34.770 --> 00:05:37.460 align:start position:0%
access to state state is a collection of
accounts<00:05:35.070><c> and</c><00:05:35.460><c> you</c><00:05:36.330><c> have</c><00:05:36.510><c> access</c><00:05:36.960><c> to</c><00:05:37.140><c> head</c>

00:05:37.460 --> 00:05:37.470 align:start position:0%
accounts and you have access to head
 

00:05:37.470 --> 00:05:41.990 align:start position:0%
accounts and you have access to head
head<00:05:38.100><c> is</c><00:05:38.280><c> the</c><00:05:38.580><c> the</c><00:05:39.680><c> the</c><00:05:40.680><c> most</c><00:05:40.920><c> recent</c><00:05:41.460><c> block</c><00:05:41.730><c> of</c>

00:05:41.990 --> 00:05:42.000 align:start position:0%
head is the the the most recent block of
 

00:05:42.000 --> 00:05:45.290 align:start position:0%
head is the the the most recent block of
the<00:05:42.390><c> chain</c><00:05:42.630><c> the</c><00:05:43.040><c> the</c><00:05:44.040><c> current</c><00:05:44.400><c> block</c><00:05:44.490><c> and</c><00:05:44.850><c> you</c>

00:05:45.290 --> 00:05:45.300 align:start position:0%
the chain the the current block and you
 

00:05:45.300 --> 00:05:48.260 align:start position:0%
the chain the the current block and you
have<00:05:45.510><c> access</c><00:05:45.990><c> to</c><00:05:46.020><c> contract</c><00:05:46.980><c> contract</c><00:05:47.520><c> is</c><00:05:47.970><c> the</c>

00:05:48.260 --> 00:05:48.270 align:start position:0%
have access to contract contract is the
 

00:05:48.270 --> 00:05:52.100 align:start position:0%
have access to contract contract is the
Ruby<00:05:48.780><c> object</c><00:05:49.550><c> the</c><00:05:50.550><c> test</c><00:05:51.000><c> framework</c><00:05:51.540><c> built</c><00:05:51.840><c> for</c>

00:05:52.100 --> 00:05:52.110 align:start position:0%
Ruby object the test framework built for
 

00:05:52.110 --> 00:05:57.410 align:start position:0%
Ruby object the test framework built for
you<00:05:53.930><c> it's</c><00:05:54.930><c> compiled</c><00:05:55.680><c> from</c><00:05:56.010><c> the</c><00:05:56.490><c> solidity</c>

00:05:57.410 --> 00:05:57.420 align:start position:0%
you it's compiled from the solidity
 

00:05:57.420 --> 00:06:02.210 align:start position:0%
you it's compiled from the solidity
contract<00:05:57.990><c> it</c><00:05:58.730><c> it</c><00:05:59.730><c> extract</c><00:06:00.480><c> the</c><00:06:00.870><c> ABI</c><00:06:01.650><c> interface</c>

00:06:02.210 --> 00:06:02.220 align:start position:0%
contract it it extract the ABI interface
 

00:06:02.220 --> 00:06:05.480 align:start position:0%
contract it it extract the ABI interface
from<00:06:02.670><c> the</c><00:06:02.730><c> contract</c><00:06:03.420><c> and</c><00:06:03.800><c> the</c><00:06:04.800><c> test</c><00:06:05.070><c> framework</c>

00:06:05.480 --> 00:06:05.490 align:start position:0%
from the contract and the test framework
 

00:06:05.490 --> 00:06:07.160 align:start position:0%
from the contract and the test framework
we<00:06:05.640><c> have</c><00:06:05.670><c> you</c><00:06:05.910><c> the</c><00:06:06.090><c> cowshed</c><00:06:06.270><c> object</c><00:06:06.900><c> for</c><00:06:07.080><c> you</c>

00:06:07.160 --> 00:06:07.170 align:start position:0%
we have you the cowshed object for you
 

00:06:07.170 --> 00:06:09.860 align:start position:0%
we have you the cowshed object for you
so<00:06:07.350><c> you</c><00:06:07.440><c> can</c><00:06:07.620><c> use</c><00:06:08.130><c> the</c><00:06:08.370><c> object</c><00:06:08.640><c> to</c><00:06:09.150><c> do</c>

00:06:09.860 --> 00:06:09.870 align:start position:0%
so you can use the object to do
 

00:06:09.870 --> 00:06:12.260 align:start position:0%
so you can use the object to do
everything<00:06:10.230><c> to</c><00:06:11.040><c> do</c><00:06:11.190><c> all</c><00:06:11.430><c> kinds</c><00:06:11.760><c> of</c><00:06:11.820><c> scenes</c><00:06:12.120><c> on</c>

00:06:12.260 --> 00:06:12.270 align:start position:0%
everything to do all kinds of scenes on
 

00:06:12.270 --> 00:06:15.950 align:start position:0%
everything to do all kinds of scenes on
the<00:06:12.420><c> contract</c><00:06:12.810><c> and</c><00:06:12.960><c> you</c><00:06:13.500><c> can</c><00:06:14.930><c> take</c><00:06:15.930><c> some</c>

00:06:15.950 --> 00:06:15.960 align:start position:0%
the contract and you can take some
 

00:06:15.960 --> 00:06:19.610 align:start position:0%
the contract and you can take some
actions<00:06:16.620><c> so</c><00:06:16.800><c> you</c><00:06:16.860><c> can</c><00:06:17.160><c> transfer</c><00:06:18.170><c> Balan</c><00:06:19.170><c> you</c>

00:06:19.610 --> 00:06:19.620 align:start position:0%
actions so you can transfer Balan you
 

00:06:19.620 --> 00:06:21.890 align:start position:0%
actions so you can transfer Balan you
can<00:06:19.770><c> transfer</c><00:06:20.100><c> user</c><00:06:20.310><c> between</c><00:06:20.820><c> accounts</c><00:06:21.360><c> you</c>

00:06:21.890 --> 00:06:21.900 align:start position:0%
can transfer user between accounts you
 

00:06:21.900 --> 00:06:26.780 align:start position:0%
can transfer user between accounts you
can<00:06:22.170><c> deploy</c><00:06:23.420><c> contracts</c><00:06:24.420><c> to</c><00:06:24.660><c> the</c><00:06:24.960><c> state</c><00:06:25.790><c> deploy</c>

00:06:26.780 --> 00:06:26.790 align:start position:0%
can deploy contracts to the state deploy
 

00:06:26.790 --> 00:06:29.840 align:start position:0%
can deploy contracts to the state deploy
is<00:06:26.850><c> not</c><00:06:27.120><c> implemented</c><00:06:27.750><c> yet</c><00:06:27.780><c> so</c><00:06:28.110><c> is</c><00:06:28.230><c> in</c><00:06:28.410><c> grey</c><00:06:28.850><c> and</c>

00:06:29.840 --> 00:06:29.850 align:start position:0%
is not implemented yet so is in grey and
 

00:06:29.850 --> 00:06:32.450 align:start position:0%
is not implemented yet so is in grey and
you<00:06:30.480><c> can</c><00:06:30.720><c> call</c><00:06:30.960><c> all</c><00:06:31.260><c> kinds</c><00:06:31.680><c> of</c><00:06:31.770><c> functions</c><00:06:32.220><c> on</c>

00:06:32.450 --> 00:06:32.460 align:start position:0%
you can call all kinds of functions on
 

00:06:32.460 --> 00:06:35.570 align:start position:0%
you can call all kinds of functions on
the<00:06:32.750><c> counter</c><00:06:33.780><c> object</c><00:06:34.200><c> and</c><00:06:34.350><c> they</c><00:06:35.010><c> I</c><00:06:35.040><c> they</c><00:06:35.550><c> are</c>

00:06:35.570 --> 00:06:35.580 align:start position:0%
the counter object and they I they are
 

00:06:35.580 --> 00:06:37.970 align:start position:0%
the counter object and they I they are
some<00:06:35.970><c> pre</c><00:06:36.210><c> generated</c><00:06:36.810><c> randomly</c><00:06:37.320><c> generated</c>

00:06:37.970 --> 00:06:37.980 align:start position:0%
some pre generated randomly generated
 

00:06:37.980 --> 00:06:42.050 align:start position:0%
some pre generated randomly generated
accounts<00:06:39.410><c> you</c><00:06:40.410><c> can</c><00:06:40.590><c> reference</c><00:06:40.800><c> to</c><00:06:41.370><c> them</c><00:06:41.670><c> by</c>

00:06:42.050 --> 00:06:42.060 align:start position:0%
accounts you can reference to them by
 

00:06:42.060 --> 00:06:44.540 align:start position:0%
accounts you can reference to them by
using<00:06:42.090><c> private</c><00:06:42.930><c> keys</c><00:06:43.260><c> pop</c><00:06:43.590><c> keys</c><00:06:43.800><c> addresses</c>

00:06:44.540 --> 00:06:44.550 align:start position:0%
using private keys pop keys addresses
 

00:06:44.550 --> 00:06:49.430 align:start position:0%
using private keys pop keys addresses
and<00:06:46.520><c> as</c><00:06:47.520><c> a</c><00:06:47.610><c> tester</c><00:06:48.180><c> yourself</c><00:06:48.660><c> you</c><00:06:49.200><c> can</c>

00:06:49.430 --> 00:06:49.440 align:start position:0%
and as a tester yourself you can
 

00:06:49.440 --> 00:06:51.920 align:start position:0%
and as a tester yourself you can
reference<00:06:49.650><c> to</c><00:06:50.040><c> your</c><00:06:50.160><c> own</c><00:06:50.400><c> private</c><00:06:51.330><c> key</c><00:06:51.510><c> using</c>

00:06:51.920 --> 00:06:51.930 align:start position:0%
reference to your own private key using
 

00:06:51.930 --> 00:06:53.270 align:start position:0%
reference to your own private key using
private<00:06:52.140><c> key</c><00:06:52.350><c> pop</c><00:06:52.620><c> key</c><00:06:52.800><c> energy</c>

00:06:53.270 --> 00:06:53.280 align:start position:0%
private key pop key energy
 

00:06:53.280 --> 00:06:56.680 align:start position:0%
private key pop key energy
and<00:06:53.550><c> we</c><00:06:54.450><c> also</c><00:06:54.660><c> define</c><00:06:55.140><c> aliases</c><00:06:55.890><c> to</c><00:06:56.160><c> these</c>

00:06:56.680 --> 00:06:56.690 align:start position:0%
and we also define aliases to these
 

00:06:56.690 --> 00:07:00.380 align:start position:0%
and we also define aliases to these
randomly<00:06:57.690><c> generated</c><00:06:58.350><c> accounts</c><00:06:59.040><c> so</c><00:06:59.760><c> you</c><00:06:59.820><c> can</c>

00:07:00.380 --> 00:07:00.390 align:start position:0%
randomly generated accounts so you can
 

00:07:00.390 --> 00:07:04.640 align:start position:0%
randomly generated accounts so you can
use<00:07:02.330><c> well-known</c><00:07:03.330><c> names</c><00:07:03.570><c> like</c><00:07:03.930><c> Alice</c><00:07:04.350><c> Bob</c>

00:07:04.640 --> 00:07:04.650 align:start position:0%
use well-known names like Alice Bob
 

00:07:04.650 --> 00:07:08.830 align:start position:0%
use well-known names like Alice Bob
Carol<00:07:04.940><c> to</c><00:07:05.940><c> reference</c><00:07:06.570><c> to</c><00:07:07.170><c> those</c><00:07:07.410><c> generated</c>

00:07:08.830 --> 00:07:08.840 align:start position:0%
Carol to reference to those generated
 

00:07:08.840 --> 00:07:17.570 align:start position:0%
Carol to reference to those generated
accounts<00:07:11.450><c> so</c><00:07:12.450><c> here's</c><00:07:13.290><c> a</c><00:07:14.010><c> real</c><00:07:14.820><c> test</c><00:07:16.430><c> in</c><00:07:17.430><c> the</c>

00:07:17.570 --> 00:07:17.580 align:start position:0%
accounts so here's a real test in the
 

00:07:17.580 --> 00:07:22.550 align:start position:0%
accounts so here's a real test in the
left<00:07:17.760><c> its</c><00:07:19.160><c> standard</c><00:07:20.160><c> token</c><00:07:20.780><c> contracts</c><00:07:21.780><c> the</c>

00:07:22.550 --> 00:07:22.560 align:start position:0%
left its standard token contracts the
 

00:07:22.560 --> 00:07:24.890 align:start position:0%
left its standard token contracts the
token<00:07:22.920><c> council</c><00:07:23.310><c> has</c><00:07:23.520><c> issue</c><00:07:23.910><c> function</c><00:07:24.540><c> chance</c>

00:07:24.890 --> 00:07:24.900 align:start position:0%
token council has issue function chance
 

00:07:24.900 --> 00:07:27.440 align:start position:0%
token council has issue function chance
for<00:07:25.110><c> function</c><00:07:25.530><c> and</c><00:07:25.650><c> get</c><00:07:25.980><c> balance</c><00:07:26.370><c> and</c><00:07:26.640><c> on</c><00:07:27.270><c> your</c>

00:07:27.440 --> 00:07:27.450 align:start position:0%
for function and get balance and on your
 

00:07:27.450 --> 00:07:29.960 align:start position:0%
for function and get balance and on your
right<00:07:27.630><c> hand</c><00:07:27.930><c> is</c><00:07:28.350><c> the</c><00:07:28.860><c> test</c><00:07:29.190><c> for</c><00:07:29.490><c> the</c>

00:07:29.960 --> 00:07:29.970 align:start position:0%
right hand is the test for the
 

00:07:29.970 --> 00:07:32.690 align:start position:0%
right hand is the test for the
corresponding<00:07:30.720><c> contract</c><00:07:31.620><c> and</c><00:07:31.890><c> you</c><00:07:32.400><c> can</c><00:07:32.550><c> say</c>

00:07:32.690 --> 00:07:32.700 align:start position:0%
corresponding contract and you can say
 

00:07:32.700 --> 00:07:35.960 align:start position:0%
corresponding contract and you can say
at<00:07:33.120><c> the</c><00:07:33.330><c> first</c><00:07:33.570><c> line</c><00:07:33.780><c> we</c><00:07:34.050><c> we</c><00:07:34.740><c> use</c><00:07:35.040><c> contract</c>

00:07:35.960 --> 00:07:35.970 align:start position:0%
at the first line we we use contract
 

00:07:35.970 --> 00:07:41.660 align:start position:0%
at the first line we we use contract
issue<00:07:36.330><c> Bob</c><00:07:37.130><c> 100</c><00:07:38.130><c> and</c><00:07:38.340><c> that</c><00:07:39.000><c> means</c><00:07:40.130><c> we</c><00:07:41.130><c> invoke</c>

00:07:41.660 --> 00:07:41.670 align:start position:0%
issue Bob 100 and that means we invoke
 

00:07:41.670 --> 00:07:44.240 align:start position:0%
issue Bob 100 and that means we invoke
the<00:07:41.850><c> issue</c><00:07:42.060><c> function</c><00:07:42.720><c> to</c><00:07:43.140><c> issue</c><00:07:43.320><c> Bob</c><00:07:43.650><c> 100</c>

00:07:44.240 --> 00:07:44.250 align:start position:0%
the issue function to issue Bob 100
 

00:07:44.250 --> 00:07:47.150 align:start position:0%
the issue function to issue Bob 100
tokens<00:07:44.430><c> and</c><00:07:44.850><c> then</c><00:07:45.750><c> we</c><00:07:45.960><c> transfer</c><00:07:46.200><c> Carol</c><00:07:46.770><c> 90</c>

00:07:47.150 --> 00:07:47.160 align:start position:0%
tokens and then we transfer Carol 90
 

00:07:47.160 --> 00:07:51.770 align:start position:0%
tokens and then we transfer Carol 90
tokens<00:07:47.660><c> from</c><00:07:48.660><c> Bob</c><00:07:48.900><c> and</c><00:07:49.110><c> then</c><00:07:49.800><c> we</c><00:07:50.480><c> make</c><00:07:51.480><c> sure</c>

00:07:51.770 --> 00:07:51.780 align:start position:0%
tokens from Bob and then we make sure
 

00:07:51.780 --> 00:07:56.810 align:start position:0%
tokens from Bob and then we make sure
that<00:07:52.110><c> the</c><00:07:53.510><c> the</c><00:07:54.510><c> Carrows</c><00:07:55.200><c> account</c><00:07:55.650><c> has</c><00:07:56.310><c> 19</c>

00:07:56.810 --> 00:07:56.820 align:start position:0%
that the the Carrows account has 19
 

00:07:56.820 --> 00:08:01.460 align:start position:0%
that the the Carrows account has 19
token<00:07:57.500><c> tokens</c><00:07:58.500><c> in</c><00:07:58.800><c> it</c><00:07:59.040><c> and</c><00:07:59.510><c> then</c><00:08:00.510><c> we</c><00:08:00.720><c> we</c><00:08:01.200><c> do</c><00:08:01.350><c> the</c>

00:08:01.460 --> 00:08:01.470 align:start position:0%
token tokens in it and then we we do the
 

00:08:01.470 --> 00:08:04.370 align:start position:0%
token tokens in it and then we we do the
chance<00:08:01.680><c> for</c><00:08:01.800><c> again</c><00:08:02.100><c> we</c><00:08:02.520><c> we</c><00:08:03.330><c> we</c><00:08:04.050><c> want</c><00:08:04.230><c> to</c><00:08:04.290><c> make</c>

00:08:04.370 --> 00:08:04.380 align:start position:0%
chance for again we we we want to make
 

00:08:04.380 --> 00:08:07.010 align:start position:0%
chance for again we we we want to make
sure<00:08:04.740><c> that</c><00:08:04.950><c> it</c><00:08:05.760><c> can</c><00:08:05.970><c> be</c><00:08:06.030><c> done</c><00:08:06.300><c> it</c><00:08:06.660><c> will</c><00:08:06.810><c> raise</c>

00:08:07.010 --> 00:08:07.020 align:start position:0%
sure that it can be done it will raise
 

00:08:07.020 --> 00:08:14.420 align:start position:0%
sure that it can be done it will raise
some<00:08:07.050><c> exceptions</c><00:08:07.950><c> so</c><00:08:09.890><c> in</c><00:08:11.570><c> in</c><00:08:12.570><c> the</c><00:08:13.430><c> contract</c>

00:08:14.420 --> 00:08:14.430 align:start position:0%
some exceptions so in in the contract
 

00:08:14.430 --> 00:08:16.969 align:start position:0%
some exceptions so in in the contract
has<00:08:14.610><c> you</c><00:08:14.850><c> can</c><00:08:15.090><c> you</c><00:08:15.900><c> can</c><00:08:16.080><c> find</c><00:08:16.110><c> one</c><00:08:16.560><c> thing</c><00:08:16.800><c> is</c>

00:08:16.969 --> 00:08:16.979 align:start position:0%
has you can you can find one thing is
 

00:08:16.979 --> 00:08:20.030 align:start position:0%
has you can you can find one thing is
that<00:08:17.280><c> it's</c><00:08:18.120><c> really</c><00:08:18.510><c> the</c><00:08:19.290><c> test</c><00:08:19.500><c> is</c><00:08:19.710><c> really</c>

00:08:20.030 --> 00:08:20.040 align:start position:0%
that it's really the test is really
 

00:08:20.040 --> 00:08:24.170 align:start position:0%
that it's really the test is really
compact<00:08:20.430><c> right</c><00:08:21.200><c> you</c><00:08:22.200><c> you</c><00:08:22.800><c> don't</c><00:08:23.100><c> just</c><00:08:23.910><c> know</c>

00:08:24.170 --> 00:08:24.180 align:start position:0%
compact right you you don't just know
 

00:08:24.180 --> 00:08:26.330 align:start position:0%
compact right you you don't just know
asynchronous<00:08:25.110><c> in</c><00:08:25.530><c> this</c><00:08:25.860><c> test</c>

00:08:26.330 --> 00:08:26.340 align:start position:0%
asynchronous in this test
 

00:08:26.340 --> 00:08:28.640 align:start position:0%
asynchronous in this test
there's<00:08:26.669><c> no</c><00:08:26.850><c> callbacks</c><00:08:27.330><c> there's</c><00:08:28.200><c> no</c><00:08:28.380><c> money</c>

00:08:28.640 --> 00:08:28.650 align:start position:0%
there's no callbacks there's no money
 

00:08:28.650 --> 00:08:31.550 align:start position:0%
there's no callbacks there's no money
you<00:08:29.490><c> don't</c><00:08:29.729><c> need</c><00:08:29.880><c> to</c><00:08:30.030><c> do</c><00:08:30.180><c> that</c><00:08:30.390><c> you</c><00:08:31.080><c> just</c><00:08:31.110><c> write</c>

00:08:31.550 --> 00:08:31.560 align:start position:0%
you don't need to do that you just write
 

00:08:31.560 --> 00:08:34.490 align:start position:0%
you don't need to do that you just write
the<00:08:31.770><c> test</c><00:08:32.039><c> and</c><00:08:32.310><c> you</c><00:08:32.419><c> run</c><00:08:33.419><c> the</c><00:08:33.630><c> test</c><00:08:33.839><c> just</c><00:08:34.200><c> just</c>

00:08:34.490 --> 00:08:34.500 align:start position:0%
the test and you run the test just just
 

00:08:34.500 --> 00:08:39.200 align:start position:0%
the test and you run the test just just
like<00:08:34.680><c> you</c><00:08:35.089><c> do</c><00:08:36.089><c> in</c><00:08:36.360><c> Java</c><00:08:36.750><c> or</c><00:08:37.110><c> C++</c><00:08:37.969><c> if</c><00:08:38.969><c> we</c><00:08:39.120><c> are</c>

00:08:39.200 --> 00:08:39.210 align:start position:0%
like you do in Java or C++ if we are
 

00:08:39.210 --> 00:08:43.780 align:start position:0%
like you do in Java or C++ if we are
wrong<00:08:39.419><c> is</c><00:08:40.099><c> instantly</c><00:08:41.099><c> and</c><00:08:41.310><c> give</c><00:08:41.729><c> you</c><00:08:41.880><c> feedback</c>

00:08:43.780 --> 00:08:43.790 align:start position:0%
wrong is instantly and give you feedback
 

00:08:43.790 --> 00:08:49.310 align:start position:0%
wrong is instantly and give you feedback
so<00:08:45.890><c> we</c><00:08:46.890><c> find</c><00:08:47.370><c> this</c><00:08:47.670><c> will</c><00:08:48.080><c> speed</c><00:08:49.080><c> up</c><00:08:49.290><c> your</c>

00:08:49.310 --> 00:08:49.320 align:start position:0%
so we find this will speed up your
 

00:08:49.320 --> 00:08:53.570 align:start position:0%
so we find this will speed up your
development<00:08:50.250><c> cycle</c><00:08:51.620><c> largely</c><00:08:52.620><c> because</c><00:08:53.310><c> now</c>

00:08:53.570 --> 00:08:53.580 align:start position:0%
development cycle largely because now
 

00:08:53.580 --> 00:08:56.480 align:start position:0%
development cycle largely because now
you<00:08:53.640><c> can</c><00:08:54.030><c> trick</c><00:08:54.600><c> with</c><00:08:54.870><c> the</c><00:08:55.230><c> contract</c><00:08:56.190><c> on</c><00:08:56.370><c> the</c>

00:08:56.480 --> 00:08:56.490 align:start position:0%
you can trick with the contract on the
 

00:08:56.490 --> 00:08:59.510 align:start position:0%
you can trick with the contract on the
left<00:08:56.670><c> side</c><00:08:56.940><c> and</c><00:08:57.290><c> then</c><00:08:58.290><c> you</c><00:08:58.620><c> just</c><00:08:59.280><c> run</c><00:08:59.400><c> your</c>

00:08:59.510 --> 00:08:59.520 align:start position:0%
left side and then you just run your
 

00:08:59.520 --> 00:09:00.290 align:start position:0%
left side and then you just run your
test<00:08:59.790><c> and</c><00:09:00.030><c> you</c>

00:09:00.290 --> 00:09:00.300 align:start position:0%
test and you
 

00:09:00.300 --> 00:09:04.010 align:start position:0%
test and you
boom<00:09:00.780><c> get</c><00:09:01.080><c> get</c><00:09:01.709><c> the</c><00:09:01.800><c> result</c><00:09:02.190><c> from</c><00:09:03.000><c> your</c><00:09:03.330><c> from</c>

00:09:04.010 --> 00:09:04.020 align:start position:0%
boom get get the result from your from
 

00:09:04.020 --> 00:09:06.170 align:start position:0%
boom get get the result from your from
your<00:09:04.170><c> code</c><00:09:04.350><c> you</c><00:09:04.589><c> you</c><00:09:04.980><c> just</c><00:09:05.250><c> written</c><00:09:05.430><c> in</c>

00:09:06.170 --> 00:09:06.180 align:start position:0%
your code you you just written in
 

00:09:06.180 --> 00:09:08.720 align:start position:0%
your code you you just written in
instantly<00:09:06.600><c> and</c><00:09:06.990><c> when</c><00:09:07.770><c> there's</c><00:09:08.220><c> something</c>

00:09:08.720 --> 00:09:08.730 align:start position:0%
instantly and when there's something
 

00:09:08.730 --> 00:09:11.500 align:start position:0%
instantly and when there's something
wrong<00:09:09.210><c> you</c><00:09:09.480><c> can</c><00:09:09.690><c> go</c><00:09:09.930><c> back</c><00:09:10.140><c> to</c><00:09:10.440><c> your</c><00:09:10.560><c> code</c><00:09:10.800><c> and</c>

00:09:11.500 --> 00:09:11.510 align:start position:0%
wrong you can go back to your code and
 

00:09:11.510 --> 00:09:16.579 align:start position:0%
wrong you can go back to your code and
do<00:09:12.510><c> something</c><00:09:13.910><c> this</c><00:09:14.910><c> feedback</c><00:09:15.510><c> circle</c><00:09:16.410><c> is</c>

00:09:16.579 --> 00:09:16.589 align:start position:0%
do something this feedback circle is
 

00:09:16.589 --> 00:09:19.730 align:start position:0%
do something this feedback circle is
much<00:09:17.279><c> shorter</c><00:09:17.610><c> than</c><00:09:18.000><c> if</c><00:09:18.690><c> you</c><00:09:18.960><c> deploy</c><00:09:19.710><c> a</c>

00:09:19.730 --> 00:09:19.740 align:start position:0%
much shorter than if you deploy a
 

00:09:19.740 --> 00:09:23.510 align:start position:0%
much shorter than if you deploy a
contract<00:09:20.250><c> to</c><00:09:20.430><c> test</c><00:09:21.029><c> net</c><00:09:21.270><c> or</c><00:09:21.480><c> if</c><00:09:21.839><c> you</c><00:09:22.250><c> use</c><00:09:23.250><c> other</c>

00:09:23.510 --> 00:09:23.520 align:start position:0%
contract to test net or if you use other
 

00:09:23.520 --> 00:09:32.780 align:start position:0%
contract to test net or if you use other
things<00:09:27.140><c> and</c><00:09:29.089><c> there's</c><00:09:30.089><c> better</c><00:09:30.990><c> stuff</c><00:09:31.610><c> what</c><00:09:32.610><c> if</c>

00:09:32.780 --> 00:09:32.790 align:start position:0%
things and there's better stuff what if
 

00:09:32.790 --> 00:09:35.060 align:start position:0%
things and there's better stuff what if
what<00:09:33.450><c> if</c><00:09:33.630><c> you</c><00:09:33.899><c> forget</c><00:09:34.260><c> to</c><00:09:34.320><c> write</c><00:09:34.709><c> the</c><00:09:34.890><c> first</c>

00:09:35.060 --> 00:09:35.070 align:start position:0%
what if you forget to write the first
 

00:09:35.070 --> 00:09:38.210 align:start position:0%
what if you forget to write the first
line<00:09:35.339><c> you</c><00:09:35.820><c> forget</c><00:09:36.209><c> to</c><00:09:36.390><c> issue</c><00:09:36.959><c> Bob</c><00:09:37.380><c> 100</c><00:09:38.040><c> tokens</c>

00:09:38.210 --> 00:09:38.220 align:start position:0%
line you forget to issue Bob 100 tokens
 

00:09:38.220 --> 00:09:41.230 align:start position:0%
line you forget to issue Bob 100 tokens
at<00:09:38.550><c> first</c><00:09:38.850><c> but</c><00:09:39.120><c> you</c><00:09:39.600><c> just</c><00:09:39.839><c> chance</c><00:09:40.290><c> for</c><00:09:40.529><c> Carol</c>

00:09:41.230 --> 00:09:41.240 align:start position:0%
at first but you just chance for Carol
 

00:09:41.240 --> 00:09:44.480 align:start position:0%
at first but you just chance for Carol
now<00:09:42.240><c> you</c><00:09:42.300><c> will</c><00:09:42.540><c> you</c><00:09:42.930><c> will</c><00:09:43.110><c> get</c><00:09:43.290><c> a</c><00:09:43.500><c> failure</c><00:09:43.770><c> in</c>

00:09:44.480 --> 00:09:44.490 align:start position:0%
now you will you will get a failure in
 

00:09:44.490 --> 00:09:48.410 align:start position:0%
now you will you will get a failure in
test<00:09:44.990><c> then</c><00:09:45.990><c> then</c><00:09:46.740><c> what</c><00:09:46.920><c> you</c><00:09:47.040><c> do</c><00:09:47.250><c> how</c><00:09:47.940><c> do</c><00:09:48.000><c> you</c><00:09:48.240><c> do</c>

00:09:48.410 --> 00:09:48.420 align:start position:0%
test then then what you do how do you do
 

00:09:48.420 --> 00:09:54.530 align:start position:0%
test then then what you do how do you do
bugger<00:09:48.660><c> how</c><00:09:49.320><c> do</c><00:09:49.380><c> you</c><00:09:49.620><c> bug</c><00:09:49.800><c> this</c><00:09:50.399><c> problem</c><00:09:53.029><c> in</c><00:09:54.029><c> in</c>

00:09:54.530 --> 00:09:54.540 align:start position:0%
bugger how do you bug this problem in in
 

00:09:54.540 --> 00:09:56.990 align:start position:0%
bugger how do you bug this problem in in
traditional<00:09:55.230><c> programming</c><00:09:55.649><c> contacts</c><00:09:56.339><c> we</c><00:09:56.820><c> may</c>

00:09:56.990 --> 00:09:57.000 align:start position:0%
traditional programming contacts we may
 

00:09:57.000 --> 00:09:59.800 align:start position:0%
traditional programming contacts we may
find<00:09:57.270><c> we</c><00:09:57.570><c> may</c><00:09:57.810><c> open</c><00:09:58.110><c> semantic</c><00:09:58.470><c> bugger</c><00:09:58.620><c> right</c>

00:09:59.800 --> 00:09:59.810 align:start position:0%
find we may open semantic bugger right
 

00:09:59.810 --> 00:10:04.400 align:start position:0%
find we may open semantic bugger right
but<00:10:01.310><c> someone</c><00:10:02.310><c> said</c><00:10:02.580><c> logger</c><00:10:03.270><c> is</c><00:10:03.540><c> the</c><00:10:03.810><c> ultimate</c>

00:10:04.400 --> 00:10:04.410 align:start position:0%
but someone said logger is the ultimate
 

00:10:04.410 --> 00:10:09.769 align:start position:0%
but someone said logger is the ultimate
debugger<00:10:04.860><c> I</c><00:10:05.040><c> don't</c><00:10:06.000><c> remember</c><00:10:06.149><c> whom</c><00:10:06.600><c> and</c><00:10:08.779><c> we</c>

00:10:09.769 --> 00:10:09.779 align:start position:0%
debugger I don't remember whom and we
 

00:10:09.779 --> 00:10:13.090 align:start position:0%
debugger I don't remember whom and we
found<00:10:10.080><c> that</c><00:10:10.260><c> in</c><00:10:10.620><c> in</c><00:10:10.980><c> solidity</c><00:10:11.580><c> we</c><00:10:12.089><c> have</c><00:10:12.390><c> log</c>

00:10:13.090 --> 00:10:13.100 align:start position:0%
found that in in solidity we have log
 

00:10:13.100 --> 00:10:16.160 align:start position:0%
found that in in solidity we have log
although<00:10:14.100><c> the</c><00:10:14.160><c> law</c><00:10:14.400><c> is</c><00:10:14.670><c> some</c><00:10:15.089><c> it</c><00:10:15.510><c> is</c><00:10:15.720><c> some</c><00:10:15.930><c> kind</c>

00:10:16.160 --> 00:10:16.170 align:start position:0%
although the law is some it is some kind
 

00:10:16.170 --> 00:10:19.760 align:start position:0%
although the law is some it is some kind
different<00:10:16.589><c> than</c><00:10:16.830><c> the</c><00:10:17.720><c> loggers</c><00:10:18.720><c> log</c><00:10:19.020><c> in</c>

00:10:19.760 --> 00:10:19.770 align:start position:0%
different than the loggers log in
 

00:10:19.770 --> 00:10:22.360 align:start position:0%
different than the loggers log in
traditional<00:10:20.700><c> programming</c><00:10:21.120><c> world</c><00:10:21.360><c> but</c>

00:10:22.360 --> 00:10:22.370 align:start position:0%
traditional programming world but
 

00:10:22.370 --> 00:10:28.660 align:start position:0%
traditional programming world but
there's<00:10:23.370><c> logger</c><00:10:23.670><c> right</c><00:10:24.380><c> so</c><00:10:25.940><c> we</c><00:10:26.940><c> can</c><00:10:26.970><c> add</c><00:10:27.480><c> a</c><00:10:27.540><c> lot</c>

00:10:28.660 --> 00:10:28.670 align:start position:0%
there's logger right so we can add a lot
 

00:10:28.670 --> 00:10:33.140 align:start position:0%
there's logger right so we can add a lot
we<00:10:29.670><c> can</c><00:10:29.910><c> write</c><00:10:30.690><c> a</c><00:10:30.720><c> log</c><00:10:31.020><c> in</c><00:10:31.290><c> contracts</c><00:10:32.070><c> and</c><00:10:32.160><c> the</c>

00:10:33.140 --> 00:10:33.150 align:start position:0%
we can write a log in contracts and the
 

00:10:33.150 --> 00:10:35.420 align:start position:0%
we can write a log in contracts and the
test<00:10:33.390><c> framework</c><00:10:33.900><c> when</c><00:10:34.200><c> when</c><00:10:34.740><c> you</c><00:10:34.860><c> run</c><00:10:35.100><c> in</c><00:10:35.279><c> the</c>

00:10:35.420 --> 00:10:35.430 align:start position:0%
test framework when when you run in the
 

00:10:35.430 --> 00:10:39.260 align:start position:0%
test framework when when you run in the
the<00:10:36.209><c> test</c><00:10:36.480><c> the</c><00:10:37.200><c> test</c><00:10:37.380><c> framework</c><00:10:37.890><c> will</c><00:10:38.270><c> print</c>

00:10:39.260 --> 00:10:39.270 align:start position:0%
the test the test framework will print
 

00:10:39.270 --> 00:10:42.980 align:start position:0%
the test the test framework will print
the<00:10:39.420><c> log</c><00:10:39.630><c> in</c><00:10:40.440><c> your</c><00:10:40.529><c> council</c><00:10:41.240><c> so</c><00:10:42.240><c> you</c><00:10:42.300><c> can</c><00:10:42.630><c> know</c>

00:10:42.980 --> 00:10:42.990 align:start position:0%
the log in your council so you can know
 

00:10:42.990 --> 00:10:45.970 align:start position:0%
the log in your council so you can know
what's<00:10:43.380><c> happening</c><00:10:44.040><c> in</c><00:10:44.580><c> your</c><00:10:44.760><c> contract</c><00:10:45.270><c> you</c>

00:10:45.970 --> 00:10:45.980 align:start position:0%
what's happening in your contract you
 

00:10:45.980 --> 00:10:50.600 align:start position:0%
what's happening in your contract you
can<00:10:46.980><c> know</c><00:10:47.130><c> you</c><00:10:47.970><c> can</c><00:10:48.000><c> know</c><00:10:48.380><c> immediately</c><00:10:49.380><c> if</c><00:10:49.890><c> the</c>

00:10:50.600 --> 00:10:50.610 align:start position:0%
can know you can know immediately if the
 

00:10:50.610 --> 00:10:54.140 align:start position:0%
can know you can know immediately if the
address<00:10:51.360><c> to</c><00:10:51.810><c> is</c><00:10:52.200><c> correct</c><00:10:52.709><c> passed</c><00:10:53.220><c> in</c><00:10:53.550><c> right</c>

00:10:54.140 --> 00:10:54.150 align:start position:0%
address to is correct passed in right
 

00:10:54.150 --> 00:10:58.940 align:start position:0%
address to is correct passed in right
you<00:10:54.660><c> can</c><00:10:55.370><c> do</c><00:10:56.370><c> it</c><00:10:56.579><c> to</c><00:10:57.180><c> all</c><00:10:57.750><c> kinds</c><00:10:58.110><c> of</c><00:10:58.170><c> things</c><00:10:58.230><c> to</c>

00:10:58.940 --> 00:10:58.950 align:start position:0%
you can do it to all kinds of things to
 

00:10:58.950 --> 00:11:03.769 align:start position:0%
you can do it to all kinds of things to
inspect<00:10:59.790><c> your</c><00:11:00.720><c> contract</c><00:11:01.230><c> and</c><00:11:02.300><c> this</c><00:11:03.300><c> is</c><00:11:03.510><c> very</c>

00:11:03.769 --> 00:11:03.779 align:start position:0%
inspect your contract and this is very
 

00:11:03.779 --> 00:11:07.250 align:start position:0%
inspect your contract and this is very
important<00:11:04.350><c> important</c><00:11:05.190><c> for</c><00:11:05.690><c> for</c><00:11:06.690><c> debugging</c><00:11:06.990><c> I</c>

00:11:07.250 --> 00:11:07.260 align:start position:0%
important important for for debugging I
 

00:11:07.260 --> 00:11:12.249 align:start position:0%
important important for for debugging I
believe

00:11:12.249 --> 00:11:12.259 align:start position:0%
 
 

00:11:12.259 --> 00:11:17.499 align:start position:0%
 
an<00:11:12.319><c> interest</c><00:11:13.249><c> by</c><00:11:13.519><c> default</c><00:11:16.209><c> locks</c><00:11:17.209><c> will</c><00:11:17.479><c> be</c>

00:11:17.499 --> 00:11:17.509 align:start position:0%
an interest by default locks will be
 

00:11:17.509 --> 00:11:19.780 align:start position:0%
an interest by default locks will be
print<00:11:18.019><c> to</c><00:11:18.169><c> cancel</c><00:11:18.589><c> but</c><00:11:18.799><c> events</c><00:11:19.249><c> won't</c>

00:11:19.780 --> 00:11:19.790 align:start position:0%
print to cancel but events won't
 

00:11:19.790 --> 00:11:22.509 align:start position:0%
print to cancel but events won't
although<00:11:20.419><c> events</c><00:11:20.929><c> are</c><00:11:21.499><c> also</c><00:11:21.709><c> some</c><00:11:22.100><c> kinds</c><00:11:22.429><c> of</c>

00:11:22.509 --> 00:11:22.519 align:start position:0%
although events are also some kinds of
 

00:11:22.519 --> 00:11:25.389 align:start position:0%
although events are also some kinds of
locks<00:11:22.729><c> but</c><00:11:23.629><c> you</c><00:11:23.720><c> can</c><00:11:23.929><c> trick</c><00:11:24.589><c> those</c><00:11:24.799><c> options</c><00:11:25.309><c> to</c>

00:11:25.389 --> 00:11:25.399 align:start position:0%
locks but you can trick those options to
 

00:11:25.399 --> 00:11:31.059 align:start position:0%
locks but you can trick those options to
enable<00:11:26.109><c> events</c><00:11:27.109><c> printing</c><00:11:29.259><c> so</c><00:11:30.259><c> if</c><00:11:30.589><c> you</c><00:11:30.799><c> set</c>

00:11:31.059 --> 00:11:31.069 align:start position:0%
enable events printing so if you set
 

00:11:31.069 --> 00:11:33.969 align:start position:0%
enable events printing so if you set
print<00:11:31.369><c> events</c><00:11:31.819><c> to</c><00:11:31.970><c> chew</c><00:11:32.269><c> then</c><00:11:32.899><c> if</c><00:11:33.109><c> you</c><00:11:33.319><c> if</c>

00:11:33.969 --> 00:11:33.979 align:start position:0%
print events to chew then if you if
 

00:11:33.979 --> 00:11:36.849 align:start position:0%
print events to chew then if you if
there<00:11:34.309><c> is</c><00:11:34.399><c> an</c><00:11:34.519><c> event</c><00:11:34.850><c> in</c><00:11:35.539><c> your</c><00:11:35.600><c> contract</c><00:11:36.199><c> you</c>

00:11:36.849 --> 00:11:36.859 align:start position:0%
there is an event in your contract you
 

00:11:36.859 --> 00:11:40.569 align:start position:0%
there is an event in your contract you
will<00:11:37.039><c> see</c><00:11:37.959><c> the</c><00:11:38.959><c> below</c><00:11:39.259><c> lines</c><00:11:39.499><c> like</c><00:11:39.949><c> this</c><00:11:40.129><c> in</c>

00:11:40.569 --> 00:11:40.579 align:start position:0%
will see the below lines like this in
 

00:11:40.579 --> 00:11:45.369 align:start position:0%
will see the below lines like this in
your<00:11:40.699><c> council</c><00:11:41.259><c> and</c><00:11:42.879><c> here</c><00:11:43.879><c> you</c><00:11:43.970><c> can</c><00:11:44.119><c> see</c><00:11:44.379><c> the</c>

00:11:45.369 --> 00:11:45.379 align:start position:0%
your council and here you can see the
 

00:11:45.379 --> 00:11:55.109 align:start position:0%
your council and here you can see the
issue<00:11:45.529><c> from</c><00:11:46.429><c> account</c><00:11:46.999><c> and</c><00:11:47.649><c> amount</c><00:11:50.739><c> and</c><00:11:52.509><c> better</c>

00:11:55.109 --> 00:11:55.119 align:start position:0%
issue from account and amount and better
 

00:11:55.119 --> 00:11:59.289 align:start position:0%
issue from account and amount and better
test<00:11:56.119><c> is</c><00:11:56.389><c> a</c><00:11:56.749><c> language</c><00:11:57.499><c> agnostic</c><00:11:57.819><c> framework</c><00:11:58.819><c> so</c>

00:11:59.289 --> 00:11:59.299 align:start position:0%
test is a language agnostic framework so
 

00:11:59.299 --> 00:12:03.460 align:start position:0%
test is a language agnostic framework so
it<00:11:59.569><c> also</c><00:11:59.779><c> supports</c><00:12:00.289><c> serpent</c><00:12:01.749><c> and</c><00:12:02.749><c> I</c><00:12:03.109><c> don't</c>

00:12:03.460 --> 00:12:03.470 align:start position:0%
it also supports serpent and I don't
 

00:12:03.470 --> 00:12:05.939 align:start position:0%
it also supports serpent and I don't
know<00:12:03.679><c> how</c><00:12:03.859><c> many</c><00:12:03.919><c> server</c><00:12:04.369><c> and</c><00:12:04.489><c> developers</c><00:12:04.939><c> here</c>

00:12:05.939 --> 00:12:05.949 align:start position:0%
know how many server and developers here
 

00:12:05.949 --> 00:12:07.419 align:start position:0%
know how many server and developers here
whoa

00:12:07.419 --> 00:12:07.429 align:start position:0%
whoa
 

00:12:07.429 --> 00:12:15.729 align:start position:0%
whoa
italic<00:12:11.229><c> okay</c><00:12:12.229><c> but</c><00:12:12.649><c> sir</c><00:12:13.160><c> burn</c><00:12:13.339><c> is</c><00:12:14.379><c> also</c><00:12:15.379><c> very</c>

00:12:15.729 --> 00:12:15.739 align:start position:0%
italic okay but sir burn is also very
 

00:12:15.739 --> 00:12:22.840 align:start position:0%
italic okay but sir burn is also very
good<00:12:16.069><c> smart</c><00:12:16.609><c> country</c><00:12:16.970><c> language</c><00:12:18.160><c> yeah</c><00:12:20.799><c> so</c><00:12:21.850><c> the</c>

00:12:22.840 --> 00:12:22.850 align:start position:0%
good smart country language yeah so the
 

00:12:22.850 --> 00:12:25.809 align:start position:0%
good smart country language yeah so the
test<00:12:23.119><c> is</c><00:12:23.299><c> possible</c><00:12:23.929><c> because</c><00:12:24.350><c> we</c><00:12:24.730><c> created</c><00:12:25.730><c> a</c>

00:12:25.809 --> 00:12:25.819 align:start position:0%
test is possible because we created a
 

00:12:25.819 --> 00:12:28.389 align:start position:0%
test is possible because we created a
ruby<00:12:26.089><c> serum</c><00:12:26.539><c> which</c><00:12:27.139><c> is</c><00:12:27.169><c> a</c><00:12:27.649><c> full</c>

00:12:28.389 --> 00:12:28.399 align:start position:0%
ruby serum which is a full
 

00:12:28.399 --> 00:12:33.009 align:start position:0%
ruby serum which is a full
implementation<00:12:29.179><c> of</c><00:12:29.839><c> Assyrian</c><00:12:31.600><c> protocol</c><00:12:32.600><c> it</c>

00:12:33.009 --> 00:12:33.019 align:start position:0%
implementation of Assyrian protocol it
 

00:12:33.019 --> 00:12:36.879 align:start position:0%
implementation of Assyrian protocol it
it<00:12:33.889><c> includes</c><00:12:34.369><c> a</c><00:12:34.579><c> lot</c><00:12:34.759><c> of</c><00:12:34.879><c> sins</c><00:12:35.269><c> so</c><00:12:35.629><c> what</c><00:12:36.410><c> behind</c>

00:12:36.879 --> 00:12:36.889 align:start position:0%
it includes a lot of sins so what behind
 

00:12:36.889 --> 00:12:39.789 align:start position:0%
it includes a lot of sins so what behind
has<00:12:37.189><c> is</c><00:12:37.489><c> test</c><00:12:37.879><c> will</c><00:12:38.149><c> compile</c><00:12:39.049><c> the</c><00:12:39.230><c> contracts</c>

00:12:39.789 --> 00:12:39.799 align:start position:0%
has is test will compile the contracts
 

00:12:39.799 --> 00:12:44.499 align:start position:0%
has is test will compile the contracts
and<00:12:40.119><c> run</c><00:12:41.119><c> the</c><00:12:41.419><c> bytecode</c><00:12:42.079><c> on</c><00:12:42.589><c> Ruby's</c><00:12:43.579><c> virtual</c>

00:12:44.499 --> 00:12:44.509 align:start position:0%
and run the bytecode on Ruby's virtual
 

00:12:44.509 --> 00:12:47.859 align:start position:0%
and run the bytecode on Ruby's virtual
machine<00:12:44.869><c> and</c><00:12:45.579><c> it</c><00:12:46.579><c> doesn't</c><00:12:47.269><c> involve</c><00:12:47.629><c> any</c>

00:12:47.859 --> 00:12:47.869 align:start position:0%
machine and it doesn't involve any
 

00:12:47.869 --> 00:12:52.090 align:start position:0%
machine and it doesn't involve any
mining<00:12:48.679><c> and</c><00:12:49.660><c> block</c><00:12:50.660><c> creation</c><00:12:51.289><c> it</c><00:12:51.499><c> just</c><00:12:51.799><c> run</c>

00:12:52.090 --> 00:12:52.100 align:start position:0%
mining and block creation it just run
 

00:12:52.100 --> 00:12:55.269 align:start position:0%
mining and block creation it just run
the<00:12:52.279><c> code</c><00:12:52.489><c> on</c><00:12:52.699><c> VM</c><00:12:53.169><c> that's</c><00:12:54.169><c> very</c><00:12:54.439><c> simple</c><00:12:54.889><c> right</c>

00:12:55.269 --> 00:12:55.279 align:start position:0%
the code on VM that's very simple right
 

00:12:55.279 --> 00:12:58.499 align:start position:0%
the code on VM that's very simple right
so<00:12:55.549><c> so</c><00:12:56.119><c> you</c><00:12:56.179><c> can</c><00:12:56.389><c> get</c><00:12:56.739><c> instantaneous</c><00:12:57.739><c> feedback</c>

00:12:58.499 --> 00:12:58.509 align:start position:0%
so so you can get instantaneous feedback
 

00:12:58.509 --> 00:13:05.799 align:start position:0%
so so you can get instantaneous feedback
and<00:13:02.709><c> at</c><00:13:03.709><c> this</c><00:13:03.949><c> time</c><00:13:04.220><c> ruby</c><00:13:04.579><c> sermon</c><00:13:04.999><c> has</c><00:13:05.119><c> evolved</c>

00:13:05.799 --> 00:13:05.809 align:start position:0%
and at this time ruby sermon has evolved
 

00:13:05.809 --> 00:13:09.729 align:start position:0%
and at this time ruby sermon has evolved
into<00:13:05.989><c> many</c><00:13:06.980><c> has</c><00:13:07.939><c> inspired</c><00:13:08.389><c> many</c><00:13:08.720><c> projects</c><00:13:09.350><c> so</c>

00:13:09.729 --> 00:13:09.739 align:start position:0%
into many has inspired many projects so
 

00:13:09.739 --> 00:13:14.499 align:start position:0%
into many has inspired many projects so
inside<00:13:10.749><c> inside</c><00:13:11.749><c> Ruby</c><00:13:12.109><c> sermon</c><00:13:12.559><c> we</c><00:13:12.679><c> have</c><00:13:13.509><c> we</c>

00:13:14.499 --> 00:13:14.509 align:start position:0%
inside inside Ruby sermon we have we
 

00:13:14.509 --> 00:13:19.929 align:start position:0%
inside inside Ruby sermon we have we
have<00:13:16.179><c> modules</c><00:13:17.739><c> in</c><00:13:18.739><c> charge</c><00:13:19.039><c> of</c><00:13:19.189><c> data</c><00:13:19.459><c> like</c>

00:13:19.929 --> 00:13:19.939 align:start position:0%
have modules in charge of data like
 

00:13:19.939 --> 00:13:23.800 align:start position:0%
have modules in charge of data like
block<00:13:20.209><c> transaction</c><00:13:20.869><c> etc</c><00:13:21.559><c> and</c><00:13:22.149><c> EVM</c>

00:13:23.800 --> 00:13:23.810 align:start position:0%
block transaction etc and EVM
 

00:13:23.810 --> 00:13:27.910 align:start position:0%
block transaction etc and EVM
it's<00:13:24.290><c> a</c><00:13:24.439><c> full</c><00:13:24.769><c> implementation</c><00:13:25.279><c> of</c><00:13:25.699><c> EVM</c><00:13:26.920><c> so</c>

00:13:27.910 --> 00:13:27.920 align:start position:0%
it's a full implementation of EVM so
 

00:13:27.920 --> 00:13:30.280 align:start position:0%
it's a full implementation of EVM so
there's<00:13:28.490><c> people</c><00:13:28.759><c> using</c><00:13:29.300><c> the</c><00:13:29.720><c> code</c><00:13:29.959><c> inside</c>

00:13:30.280 --> 00:13:30.290 align:start position:0%
there's people using the code inside
 

00:13:30.290 --> 00:13:33.579 align:start position:0%
there's people using the code inside
Ruby<00:13:30.920><c> seven</c><00:13:31.279><c> to</c><00:13:31.430><c> extract</c><00:13:32.029><c> ABI</c><00:13:32.600><c> from</c><00:13:33.079><c> contract</c>

00:13:33.579 --> 00:13:33.589 align:start position:0%
Ruby seven to extract ABI from contract
 

00:13:33.589 --> 00:13:36.509 align:start position:0%
Ruby seven to extract ABI from contract
and<00:13:33.910><c> there</c><00:13:34.910><c> are</c><00:13:35.029><c> also</c><00:13:35.240><c> utilities</c><00:13:35.959><c> like</c>

00:13:36.509 --> 00:13:36.519 align:start position:0%
and there are also utilities like
 

00:13:36.519 --> 00:13:40.600 align:start position:0%
and there are also utilities like
address<00:13:37.519><c> public</c><00:13:37.790><c> key</c><00:13:38.180><c> private</c><00:13:38.720><c> key</c><00:13:39.490><c> they</c><00:13:40.490><c> are</c>

00:13:40.600 --> 00:13:40.610 align:start position:0%
address public key private key they are
 

00:13:40.610 --> 00:13:42.879 align:start position:0%
address public key private key they are
very<00:13:40.850><c> convenient</c><00:13:41.329><c> tools</c><00:13:41.839><c> to</c><00:13:42.470><c> help</c><00:13:42.649><c> you</c>

00:13:42.879 --> 00:13:42.889 align:start position:0%
very convenient tools to help you
 

00:13:42.889 --> 00:13:46.509 align:start position:0%
very convenient tools to help you
convert<00:13:43.959><c> data</c><00:13:44.959><c> between</c><00:13:45.290><c> address</c><00:13:45.920><c> public</c><00:13:46.160><c> key</c>

00:13:46.509 --> 00:13:46.519 align:start position:0%
convert data between address public key
 

00:13:46.519 --> 00:13:50.379 align:start position:0%
convert data between address public key
and<00:13:46.610><c> private</c><00:13:46.670><c> key</c><00:13:47.059><c> and</c><00:13:48.339><c> Ruby</c><00:13:49.339><c> Sarah</c><00:13:49.670><c> also</c><00:13:50.209><c> has</c>

00:13:50.379 --> 00:13:50.389 align:start position:0%
and private key and Ruby Sarah also has
 

00:13:50.389 --> 00:13:53.499 align:start position:0%
and private key and Ruby Sarah also has
many<00:13:50.749><c> dependencies</c><00:13:51.559><c> like</c><00:13:51.620><c> our</c><00:13:52.189><c> LPS</c><00:13:52.370><c> -</c><00:13:52.999><c> serpent</c>

00:13:53.499 --> 00:13:53.509 align:start position:0%
many dependencies like our LPS - serpent
 

00:13:53.509 --> 00:14:00.999 align:start position:0%
many dependencies like our LPS - serpent
and<00:13:55.329><c> SEC</c><00:13:56.329><c> P</c><00:13:57.009><c> and</c><00:13:58.629><c> based</c><00:13:59.629><c> on</c><00:13:59.870><c> Ruby</c><00:14:00.170><c> serum</c><00:14:00.649><c> we</c><00:14:00.889><c> are</c>

00:14:00.999 --> 00:14:01.009 align:start position:0%
and SEC P and based on Ruby serum we are
 

00:14:01.009 --> 00:14:07.600 align:start position:0%
and SEC P and based on Ruby serum we are
now<00:14:01.360><c> building</c><00:14:02.360><c> wrath</c><00:14:03.100><c> ressies</c><00:14:04.100><c> a</c><00:14:06.249><c> full</c><00:14:07.249><c> ruby</c>

00:14:07.600 --> 00:14:07.610 align:start position:0%
now building wrath ressies a full ruby
 

00:14:07.610 --> 00:14:11.350 align:start position:0%
now building wrath ressies a full ruby
client<00:14:08.029><c> so</c><00:14:08.629><c> it's</c><00:14:09.529><c> some</c><00:14:09.800><c> kind</c><00:14:09.829><c> like</c><00:14:10.360><c> Joey</c>

00:14:11.350 --> 00:14:11.360 align:start position:0%
client so it's some kind like Joey
 

00:14:11.360 --> 00:14:11.980 align:start position:0%
client so it's some kind like Joey
cerium

00:14:11.980 --> 00:14:11.990 align:start position:0%
cerium
 

00:14:11.990 --> 00:14:16.960 align:start position:0%
cerium
so<00:14:12.699><c> besides</c><00:14:13.699><c> Ruby</c><00:14:14.300><c> sermon</c><00:14:14.689><c> we</c><00:14:14.809><c> also</c><00:14:15.050><c> need</c><00:14:15.970><c> Ruby</c>

00:14:16.960 --> 00:14:16.970 align:start position:0%
so besides Ruby sermon we also need Ruby
 

00:14:16.970 --> 00:14:20.530 align:start position:0%
so besides Ruby sermon we also need Ruby
Tempe<00:14:17.480><c> to</c><00:14:17.629><c> P</c><00:14:17.809><c> the</c><00:14:18.079><c> network</c><00:14:18.470><c> layer</c><00:14:19.449><c> combined</c><00:14:20.449><c> a</c>

00:14:20.530 --> 00:14:20.540 align:start position:0%
Tempe to P the network layer combined a
 

00:14:20.540 --> 00:14:23.079 align:start position:0%
Tempe to P the network layer combined a
network<00:14:20.870><c> layer</c><00:14:21.050><c> with</c><00:14:21.379><c> Ruby</c><00:14:21.709><c> sermon</c><00:14:22.189><c> we</c><00:14:22.339><c> we</c><00:14:22.939><c> can</c>

00:14:23.079 --> 00:14:23.089 align:start position:0%
network layer with Ruby sermon we we can
 

00:14:23.089 --> 00:14:25.480 align:start position:0%
network layer with Ruby sermon we we can
build<00:14:23.269><c> rest</c><00:14:23.600><c> and</c><00:14:23.899><c> then</c><00:14:24.410><c> we</c><00:14:24.529><c> have</c><00:14:24.680><c> test</c><00:14:24.980><c> the</c>

00:14:25.480 --> 00:14:25.490 align:start position:0%
build rest and then we have test the
 

00:14:25.490 --> 00:14:29.639 align:start position:0%
build rest and then we have test the
testing<00:14:26.300><c> framework</c><00:14:26.779><c> and</c><00:14:26.990><c> we</c><00:14:27.709><c> have</c><00:14:27.949><c> Ruby</c><00:14:28.329><c> eath</c>

00:14:29.639 --> 00:14:29.649 align:start position:0%
testing framework and we have Ruby eath
 

00:14:29.649 --> 00:14:32.860 align:start position:0%
testing framework and we have Ruby eath
Ruby's<00:14:30.649><c> is</c><00:14:30.980><c> a</c><00:14:31.360><c> small</c><00:14:32.360><c> tool</c>

00:14:32.860 --> 00:14:32.870 align:start position:0%
Ruby's is a small tool
 

00:14:32.870 --> 00:14:36.189 align:start position:0%
Ruby's is a small tool
extracted<00:14:33.529><c> from</c><00:14:33.819><c> not</c><00:14:34.819><c> extracted</c><00:14:35.389><c> but</c><00:14:35.600><c> built</c>

00:14:36.189 --> 00:14:36.199 align:start position:0%
extracted from not extracted but built
 

00:14:36.199 --> 00:14:39.100 align:start position:0%
extracted from not extracted but built
based<00:14:36.470><c> on</c><00:14:36.709><c> ruby</c><00:14:37.100><c> serum</c><00:14:37.550><c> to</c><00:14:37.850><c> help</c><00:14:38.509><c> you</c><00:14:38.660><c> create</c>

00:14:39.100 --> 00:14:39.110 align:start position:0%
based on ruby serum to help you create
 

00:14:39.110 --> 00:14:42.160 align:start position:0%
based on ruby serum to help you create
and<00:14:39.649><c> sign</c><00:14:40.069><c> transactions</c><00:14:40.850><c> and</c><00:14:41.089><c> we</c><00:14:41.300><c> have</c><00:14:41.509><c> is</c>

00:14:42.160 --> 00:14:42.170 align:start position:0%
and sign transactions and we have is
 

00:14:42.170 --> 00:14:46.540 align:start position:0%
and sign transactions and we have is
JSON<00:14:42.559><c> RPC</c><00:14:42.800><c> which</c><00:14:43.370><c> is</c><00:14:43.579><c> a</c><00:14:43.990><c> JSON</c><00:14:44.990><c> RPC</c><00:14:45.139><c> kind</c><00:14:45.800><c> talked</c>

00:14:46.540 --> 00:14:46.550 align:start position:0%
JSON RPC which is a JSON RPC kind talked
 

00:14:46.550 --> 00:14:53.259 align:start position:0%
JSON RPC which is a JSON RPC kind talked
to<00:14:46.850><c> a</c><00:14:47.540><c> serum</c><00:14:48.290><c> server</c><00:14:48.649><c> a</c><00:14:49.269><c> serum</c><00:14:50.269><c> note</c><00:14:51.170><c> and</c><00:14:52.269><c> there</c>

00:14:53.259 --> 00:14:53.269 align:start position:0%
to a serum server a serum note and there
 

00:14:53.269 --> 00:14:56.980 align:start position:0%
to a serum server a serum note and there
are<00:14:53.329><c> some</c><00:14:53.569><c> projects</c><00:14:54.170><c> extracted</c><00:14:55.009><c> from</c><00:14:55.990><c> Ruby's</c>

00:14:56.980 --> 00:14:56.990 align:start position:0%
are some projects extracted from Ruby's
 

00:14:56.990 --> 00:15:04.389 align:start position:0%
are some projects extracted from Ruby's
area<00:15:00.879><c> so</c><00:15:01.879><c> thank</c><00:15:02.269><c> you</c>

