00:00
呃,这里大家可以看到,有细心的同学应该能看到,就是教案里面其实是,呃,不仅仅是会把我们会把我们的这个步骤列出来,而且呢,还有就是关键步骤的这个一些一些输出信息的输出,我们在这里可以看到,就是会把这个部署合约的账户打印出来,然后我们这里是这个部署合约成功直接打印result,但是大家其实可以看到,我们打印出来的这个result其实是很庞大的,那我们可能只需要里边大家最关心的这个result是什么,其实就是它的地址是不是我们其实是可以直接把它的地址拿出来的,那这个地址应该是什么呢?是他在result里边的。
01:01
对,大家注意啊,就是它的这个返回是一个比较复杂的结构,它的点options里边有一个叫做address的参数啊,那这个的话我们就可以比方说我们这里叫contract address,对吧,就可以在这里输出,呃,那当然在我们给大家这个优化的一些一些动作里边呢,其实是还有还有一些别的一些优化,比如说我们在这里可以直接加入一个console.type这个大家用过吗?这是一个计时的一个,呃,这样的一个操作啊,就相当于是呃,有了这个consulto.time这一句呢,就相当于是我们要开始计时了,那在这个里边我们打印,大家希望打印什么内容,那我们就在这里敲上什么内容,Deploy。
02:01
呃,我们就讲deploy time吧,当然有这个计时开始的时候就必须有计时结束的时候,对吧?我们在这里假如说有一个,这里就要有一个应该叫and time,还是太慢的,我忘记了啊,大家看教案,如果看到后面应该应该是能看到这个完整的实现的,对吧?Time和time慢的啊,大写的ind,大家注意,Time和time慢就是成对出现的,那这两个里边的内容一定要一样,他才知道我们是同一个计时,对吧?好,那么我们看一下现在的这个状态是什么样子,好,那我们直接在这里no deploy一下,所以大家可以看到刚才我们这一次部署的时间,他已经计算出来。
03:01
就是180.9941毫秒,然后下面我们直接输出的是生成的这个新部署的合约的地址,呃,9D11D,我们看一下这边的garage这边,哦,新发布的这一个交易哈西,还有我们的contract created 9D1D这个合约,所以这个验证一下都是完全没有问题的,对吧?呃,所以这个自动化部署的这一部分,其实合约就非常简单了,我们只是把之前有给大家讲过的这些步骤串起来,优化的话,最多我们就是看一看它的输出,然后把它的地址拿出来,让我们很明确的能够看到,能够把它保存下来,这样就可以了。呃,关于我们这个零点。20.1的这个部署脚本,大家是不是可以也可以很快速的来实现一下,好,我们来试一下啊,那大家可以想到,呃,我们如果要是0.20.1的话,别的应该都一样,对吧?上来之后先看WEB3等于REQUIRE3,然后同样的啊,这个就是大家应该都轻车熟路写的很熟了,还是要定义一个provider http local hostt包。
04:55
545好,这是我们基本的这个这个内容啊,然后呃,我们可能还需要用到这个pass是吧?啊,前面我们好像定义这个FS,好像定义多余了,我们好像没用到对吧,只是用pass去去拼了一个这个路径,那FS我们可以删掉的啊好,这里pass,这里我们引入require pass,好,这是我们需要引入的模块,那接下来的话大家应该就想到了,我们同样也是得拿到abi和white code对吧?呃,我们同样还是定义那个contract pass,呃,这个应该叫。
05:49
呃,我们就还是叫fair pass吧,刚才定义的是fair pass fair pass等于pass.result我们把那个同样的东西再拼起来,当前目录,然后它的上级目录里边会有一个compel的下面的一个car.jason好,那接下来我们就把它的还是用同样的方法把它提出来,对吧?Interface掰,呃,我,我们这样吧,这个我们就单独来提,可能会比较好一点,对吧?呃,我,我们为了这个跟之前保持一致,还是还是先把它拿出来吧,等一下我们再把它转一下,转成我们想要的API,对吧?
06:50
然后by code等于require pass,好,这是我们前面的操作,其实都是完全一样的,那接下来就是大家习惯的那些内容,然后把它写进来,呃,首先我们会定义一个呃,我们还是把呃这个大家如果想定义的话,我们可以把它再单独定义出来啊,就是这个需要去Jason pass一下,如果不想定义的话,我们等一下直接用也是可以的,对吧?Interface,这是大家习惯的这个abi的这个用法,好,那接下来我们就可以说这也是一个count的啊,我们自己的contract等于呃,应该是WEB3点,ETH点。
07:50
Contract a BI,对吧,这是我们WEB3这里边先创建一个合约对象,这个其实没有发,就是没有发出请求,所以说我们直接可以写在这里啊,然后接下来就是构建我们的交易对象,那么我们这里用一个好了交易transaction object。
08:22
等于大家还记得data by code对吧?呃,那大家这里应该就想到我们这里其实是需要拿到我们的账户的,对吧,就from账户的,那我们这里还是先post一下from等于WEB3点Eth.ACCOUNT0同步请求的方式直接拿到,呃,这个其实也是比较直观的,对吧?呃,只不过就是说在这个1.0.0里边,它全部返回promise的时候,全部都是异步调用的时候,那我们就得用I think wait这样去保证它的这个同步执行了,那现在的话,我们就直接用这个同步调用就能拿到这个这个我们的账户啊,好,那么。
09:22
这里的话就是from from,然后我们可以定义一个盖,比方说500万,好,那那现在我们的所有的这些,当然大家如果觉得这个没关系的话,我们也定义成常量也是可以的,对吧?全局的嘛,那然后接下来呢,我们要用到的肯定就是去发送这个交易了,对吧?呃,我们就会let一个contract instance,等于contract.new然后我们把transaction object传进来,这就是我们的这个处理的过程,对吧?后面可能我们需要去加一个回调result。
10:23
那在这个回调里边,我们简单做一个处理的话,那就是if副error的话啊,我们肯定是要把它console log出来,如果没有报错,那我们就可以把我们的结果输出好,这就是我们基本的一个基本的一个处理,对吧?呃,当然了,现在呃,我这边是没有这样的一个环境,所以说大家可以在自己的呃,0.20.1的环境里边把这个试验一下,然后我们大家再去跑一跑,看看结果是不是能够拿到,我们就是真正把它生成一笔一笔交易,然后发布。
11:23
不到我们的链上来,好,接下来大家把这个再实现一下,其实这个大家应该自己写,能写的出来对吧?其实不需要去把我们之前讲到的那几步,每一个都提炼出来,其实就可以写得出来吧。呃,在这里我们用到了几个这个同步请求的方式,所以说看起来也没有回调地域,就就是一波,对吧,这个还是比较简单的,比较直观,我在这里也可以尝试着去找一个目录去把它部署一下,就不能放在我们这里了,呃,我还是找到之前我们做d up的这个目录里边来,呃,这里有这个。
12:15
合约是吧?Contract,好,这里有这个Co,那我们把这个contract下面的car放复制到这里来,然后我们就可以用这个来编译了,然后呃,大家如果要是也是没像我这样没有这个对应的环境的话,也可以用之前我们已经装好的地方,对吧?只要我们创建这个脚本就可以了,其实我们的脚本是没有没有什么特别的依赖的,所以好,这里已经有了是吧,我们到下面,嗯。
13:15
哦,这个scripts居然是这样的一个,那我们把它change mode一下吧,好,我们放到这里了,好吧,呃,还是把外边的脚本先复制过来。
14:15
这个comba应该没什么区别,我们就把这个deploy这个重新写一下,好,那我们在这里如果要是已经完成了这些操作任务的话,大家可以想到我们就可以直接在这里执行脚本了,对吧?我们的原文件也已经ready,看一下编译的状态啊,编译表错了,Contracts不存在,看一下哦,我们这里叫contract啊,好吧。
15:15
我们现在来做一下编译,看看它的这个结果怎么样,好,现在看起来是已经正常编译了,对吧?然后生成了一个卡点Jason,好,我们接下来就是deploy,看一下哦,直接报错了,哪里有错,看起来是有一个分号的地方,对吧,为什么会多一个画括号呢?对,再来一下,然大家看到现在我们。
16:15
已经正常输出了,对吧,就是已经把它真正部署到我们的链上去了,而且address也已经拿到,我们看这边的garra这边也有一个刚刚发布的一个交易九四,呃,这个合约地址是F0599,所以这跟我们这里的这个address是一样的,对吧?所以大家把这个实现之后,然后自己去也可以做优化,我们可以直接把这个address提出来,对不对?大家可以看这个返回的这个result,它是一个,呃,一个大的合约对象,那它这个里边是一层包一层的,所以大家也可以一层一层的把这一个address提出来。
我来说两句