00:00
我这个前提是已经这边已经开启了IPFS节点,如果大家要没开启的话,还得先把这个打开啊,然后我们这边启一下纳,相当于我们有了这个以太坊的节点,然后我们这边就要做这个超MRI,把我们的合约部署到上面去啊,这都是常规操作啊。那部署完了之后,大家会想到就是我们还要把种子区块链放上去,对吧,Trouble exec。然后我们就可以把这个这边应该还有一个窗口啊。好,这里我是起了一个这个超。那大家可以想到我们在这里就可以直接去起这个DV了,对吧。
01:02
嗯,这边已经完成。我们把这边DV起起来,起这个稍微时间长一点,我们经常在这个时候就可以进可嗽去给他转账了,对吧,因为我们这里用getma的话,就这一点不太好,就是每一次我们里边如果要是用ma mask里边的账户的话,没钱,所以这个可能稍微有点有点尴尬啊。大家每次都得记得。Ma ma网络似乎不是很好的样子,大家看到我这里边mama居然还有钱,那其实他没有刷新。大家遇到这个ma MAS不刷新的这种状态,其实还就是就是重新换一个网络,然后切回来一般就正常了,所以现在两个账户都是零对吧。我们到这边来,去给他转个账吧。
02:02
Transaction。我们给他转,呃,就50个30个吧。太多了,我们主账户里没钱了,对吧,默认就100个嘛,好,那么我们在,因为我们至少要用到两个账户。所以这边。把这个COUNT2也给他转上30个。这个交易还是很快,好,我们看到这边康二也已经有钱了,对吧,呃,但是。这边好像有点慢啊。
03:03
呃,这个就是我们启动东西多了之后,确实是占用这个系统资源也会比较多,所以经常出现就是会被卡到这里的这种状况。好,这边已经起起来了啊。好,所以这是我们正常启动之后的这个初始的状态啊,那大家可以看到就是我们这里还没有做太多的优化,所以说这个页面还是很丑啊,我们正常来讲的话,大家还记得我们一行是要给它把把这个产品都排列在这一行,对不对,这是products To Buy,然后下面是在这个review stage的这些,呃,这些产品,当然现在我们还没有去做这些,对不对,我们这是写死啊,点进去。
04:04
看到这是这个产品详情页,现在在五分钟之内还是可以这个去竞拍的,对吧,我们同样还是做一下竞拍啊。我们主要是看看,就是完整的这个流程是不是可以顺下来,诶没有点到好像报错了是吧。哦,这里报错了应该的address。大家是不是也经常遇到这个invalid的address这种情况,嗯,这种情况按我的经验来来看的话,就是其实有时候应该是mad mask这边的这个就是刷新和这个账户的问题,对吧,我们重新刷一遍回来。然后我们先把它关掉啊,看这次能不能正常提交上去三个。
05:00
五个。哎,这下就正常了,所以有时候遇到这个问题就是ma mask的问题,所以我们把它重新刷新一下,好,这个我们直接confirm要发五个是对的,对吧?然后它的竞拍价格是三,这个已经成功提交了啊,那么大家会看到整个我们页面其实是就是没有完全刷新,但是相当于我们这里添加了一个这个,呃,就是添添加一条这个提示信息,对吧?好,那么同样大家会记得我们还可以,呃,如果说我们这里用同一个账户去提交应该也是可以的,对吧?呃,只不过就相当于他有两次报价,就是多次报价我们是允许的,大家这个有印象对吧?但是我们现在如果不希望是同一个人两次报价的话,那我们可能就需要去切一下账户了,对吧?刚才我们说COUNT2做的啊。好,我们现在用一个更高的报价四,然后去做一下这个ACCOUNT1做一个报价,这个时候大家会发现ma mask这边就是account一再去做支付了,对不对,所以在我们JS里边都是这个鼠标总是跳走啊。
06:14
应该在这里是吧。Confirm。啊,这个都是没有问题的,所以我们现在刷新一下页面,看看它现在啊,还有两分,还有接近三分钟,那我们还是回到这个我们的pencil去做一个校验。Pencil,这里我们其实是可以直接用我们呃,1COM store里面的调用它的函数,然后去做一些事情的,对吧,Deploy的。点赞。然后我们这里可以直接去拿到现在的highest biter对吧,我们先看一下这个highest bitter有没有,呃,我们刚才这个产品是ID是一对吧。
07:06
呃,这个其实大家能想到,我们昨天其实已经试过了,这个肯定拿不到,对不对。哎。He。Leader。这个居然不对是吧?Notfun。我们再去看一下吧,合约里边定义的,看来不是叫这个名字是吧?E,好high bit in,好吧。啊,大家看到现在是零对吧,什么东西都没有啊,因为这个我们本身这一个竞价这个过程当中是不会写到he BI里边的,那我们可以查现在的total be对不对。啊,现在是有两个了,对吧,102这个表示有两个对不对,我们可以把这个做一个to string。
08:11
哦,这个不对啊。这个我们可以把这个拿到的结果在这里做一个。To string对不对?Pencil log里边我们把rest to string这样写是可以拿到这个二,对吧?好,那么我们看一下这边是不是竞价结束了,我们可以去揭示报价了呢?哦,还有36秒,好吧,这时间设长了点啊。这还有点麻烦。好在这个里边,其实大家如果要是调用别的方法的话,我们添加的新的方法还有什么呢?还有这个as pro address pro product product,对吧,还有as as pro info,那这些东西大家会想到我现在如果去查询的话,肯定是什么都没有的,对吧?因为这个还没结束呢,所以大家会发现这个直接就on fun了啊。
09:18
As pro info,大家说为什么这里直接就是on five,那大家想到这个可能是报错了对不对?呃,点赞后边点catch。Cons点。哦,这个确实是什么东西都没有,对吧,大家会想到为什么会什么东西都没有呢?因为我们现在是不是这个as根本就没拿到对吧,我们这个如果要去找它对应的这一个数据的时候,根本就什么都没有,他地址都没有,我们还没有创建这个托管账户,所以说一定是什么东西都没有的,那我们去调这个。
10:02
Get。叫X对吧。Product大家会发现也是000000啊,这就表示这个他还没有这个地址写进去,对不对,既然是零地址,那就是没写好,我们看一下现在应该可以了啊。刷新一下。好,那么我们看到这里显示的是option has ended,字有点小,大家看不清楚,可以调大字体啊,然后这边显示的就是已经是review的这个这个form了,对吧,这个表单了,所以我们还记得吗?我们当前的这个账户是谁?当前是账户一,账户一是花了六个以太,那应该是后边那一次对吧?呃,我们记得他应该是是不是四对吧。那第二次应该是哈哈哈是不是。好,我们看一下吧。
11:00
Revealed。好,然后这个我们不需要发送发发送以态,所以说是零对吧,我们这里confirm一下。好,这个已经成功提交,好,我们赶快去瞄一眼这边。呃,托合币子,这个没问题,肯定还是二对吧,我们关键是看一下highest bit现在有没有了,诶大家发现有了。当前是我们50F3,我们看一下是不是我们当前的这个账户。50F3没问题对吧?哦,那大家会发现下边我们的highest be,这是它当前的出价是四个没问题对吧?然后secondb的第二高竞价是二,因为还没有别的人揭示报价,所以他就拿start price当成了它的第二高竞价,对吧?这个时候如果我们直接把它终终止的话,是不是他要付的这个钱就是两个以太啊?
12:00
对吧,好,那么我们接下来。我们看一下这里啊,这个报价已经揭示之后,它花费的大家看一下,当时本来我们刚才看的时候,他是不是当时发送发送了六个仪态。然后现在是不是就回过来两个。啊,是这样的对吧,所以他现在真正花出去的其实就是四个以态了,对吧?好,那么接下来我们切一下这个账户。我们把ACCOUNT2也去揭示一下报价,ACCOUNT2的报价当时是几个来着,三个比他少一点对吧,然后他应该是哈哈是吧。Reveal的。这mask还是有点慢,Count我们确认一下没问题,也不转以太。好,提交成功,那现在我们再到conso里边要来看一下,对吧,那大家说现在的highest video info应该是什么样子。
13:01
我们查一下看看吧,诶这个highest bitter没变啊,因为你这个三个出价肯定是顶不掉人家这四个的,对吧,所以说highest bitter没变。然后呢,我们看这个下面的信息有哪个变了吗。啊,所以下面会发现这个最高出价没变,第二高出价变了啊,因为我们这里的这个这是一个有效报价,对吧?当然会比之前的这个star price高,所以说把第二高报价已经顶掉了,那这个是符合我们预期的,那接下来我们可以看一下s pro这边的信息,那这个肯定还是没有的,对吧,这是正常的一个状态,然后这个total币这里肯定还是二,那我们现在再来校验一下他账户里边的信,账户里边是有多少钱,本来账户二是不是应该是花了四个以太的啊,花了五个以太的对吧?那现在大家看到钱都回来了。所以账户二相当于是已经。
14:00
竞拍失败,所以他的钱应该都返回来了,对吧?啊这个过程就是这样,那账户一呢,现在就是正处于这个竞拍成功赢得竞拍的这个状态,那到底能不能赢得状态,那要等到真正结束之后才能赢得,对吧,我们看一下现在这个状态结束了没有。好吧,这个还没结束,我们当时设置多长时间来着。哦,十分钟呢,确实有点久,这个在哪里看。大家还记得在哪里是吧,是不是我们是直接在这个里边去设置的,因为我们合约里边本来没有限制,对不对,合约里边我们finalize直接只要它大于。Endtime就可以直接这个endtime是我们这个去揭示报价的时间点,对吧,但只要大于这个我们就可以把它finalize了,但是我们的页面上是不是没有给它开放出来这个接口啊,我们的页面上是要在什么时候呢?我们看一下下面这个处理,这是在我们这个detail信息里面处理的,对不对,我们要求是要。
15:06
啊,大家看这是已经current time比这个呃,比这个结束时间要大之后,而且是小于P6加600秒的时候是显示的这个reviewing,所以现在在这个结束时间之后的600秒之内,全是这个reviewing的状态,对吧。那只有这600秒就是十分钟了,十分钟之后我们是不是才能进到这个finalize这里来呀,啊大家搞搞清楚这个,所以我们这个还是设置时间有点大了啊,这个就只能再再多等一会儿了。这还不行啊,所以大家说我们在这个控制台里边可以看到它的这个信息吗。我们在控制台里面怎么样查他的信息呢?其实我们是不是可以直接get product呀,我们去get product。
16:02
拿到当前他的这些信息,这是不是就是我们这个本身product当时定义的安。这里这个1542093101,这是andtime对不对?好,那我们可以看一下现在的时间是什么呢?是不是new一个date date呀,然后除以1000对不对?好,我们看一下现在是多少。1542093531,我们定义的要他加600对不对。所以我们是不是等到093701的时候应该就可以了,对吧,所以现在还有大概两分多钟的时间啊,所以我们还是得稍微等一等啊,这个定义的时间稍微有点大,就就有点麻烦。至少到目前为止,我们这边的行为,这都是之前就已经实现过的,所以一点问题都没有对吧?啊,那昨天可能我们没有给大家看那个就是这个,呃,Review的时候,如果把那个第二高竞价顶掉是什么状态,那今天我们就跟昨天刚好不一样,昨天是直接直接顶掉第一第一高的最高的那个进价,对吧,那今天我们是相当于后街,是的,这个是顶掉了第二高进价,然后直接拿到了所有的钱啊,那我们现在这个好COUNT1这里花掉的钱大家确认一下啊,花掉了四个仪太。
17:30
等一下我们如果刷新的时候,会看到它本身的报价不是四个对吧?啊,当时我们它它本身的要支付的价格,它的报价是四个要支付的价格不是对不对,应该支付的价格是多少,大家在这个信息里面应该是知道的吧,我们现在是不是可以拿到。刚才我们看过这个highest BI对吧,这个in里面是不是如果现在就结束的话,它是不是应该支付三个,所以等一下我们finalize,我们要验证这个对不对啊,这个就是要具体做验证的地方。
18:09
还没完,哎呀,我们看看还有多少秒啊,这个很烦。637,这个看起来应该没多少秒了,对吧,还有一分钟。一分一分钟左右的时间就可以结束了,因为这里是93101嘛,我们这里是93637,而我们那边写的是要加600对吧?啊,这大逻辑能搞清楚吧。好,那我们稍微的耐心等待一下,40秒在在等这个时候确实大家有时候就发现特别的心焦是吧。大家在下面已经把这个代码都实现了吗?是不是都实现了,没没实现哦,那那等一下,还是就是给大家时间再去敲一敲吧。
19:01
我们先知道这个验证出来应该是什么样的一个状态。八九啊,再过十几秒就到。已经到了是吗?九八那还不成99701这个可以了。诶,果然出现了一个finalize option这样一个案件,对吧?诶,那大家说我现在直接去finalize可以不可以。我们现在就是这个账户一对不对,对吧,如果我们现在去finalize的话,按道理应该失败。啊,正好我们把这个测一下,因为我们的啊COUNT1这个账户是不是就应该是当前的买买家呀,你要是能自己去当仲裁人的话,那你又当运动员,又当裁判员,这个肯定不合适对吧,那你这个别人的钱肯定就是要打给你的,好我们翻来一下啊。
20:00
诶,大家会发现他这里边直接就提示他说这个transaction ever,呃,Except through in contract code,对吧,它是直接因为mad mask它是比较智能的,它是把我们的这个合约的这个code都都已经是检测出来,要去要去给我们做一个评判的,那大家还记得我们在remix里边,有时候提交交易之前,它也会有一个提示,对吧?你这个很有可能会会有问题,对吧,会抛出错误,那你你如果坚持要去执行的话,也是可以的,我们看这里,如果我坚持confirm,其实也是可以的,对吧?好点一下,好,大家可以看到这里边直接就fail了,对吧?然后我们这里提示了一句option she cannot be finalized by the buyer或者S,这就是我们那句提示对不对?啊,这就显示出来了,好,那么我们那大家说我我切换另外一个账户行不行。我刚才也竞拍过的,看二行不行。
21:00
啊,看大家觉得不行是吧。我们回过头来看一下,我们合约里边这个其实不是我们说行就行,对吧,得看合约,合约说行才行,我们看一下合约里面怎么写final finalize这一个它的要求,它的要求是什么呢。Now大于option anytime,这肯定满足对吧?我们都等了十分钟了。然后status等于open,他现在肯定是open对不对,对吧。Messger ther不等于这个是什么?这是他的卖家对不对啊,那肯定不是卖家,我们知道他的卖家是我们一开始GA纳里边的accounts林,对吧?那这肯定不是,然后me send不等于highest bit。这是买家,他有没有说不等于第二高的那个那个买家,因为我们第二高的那个买家地址根本就没记过,对不对啊,所以说你现在这个切换了这个第二个ACCOUNT2之后,我们认为是应该可以的,对吧,应该肯定行,如果要是不行的话,那其实这个ma mask应该是有问题的诶。
22:08
看一下好,这个把它reject。好,那接下来我们确认一下,现在是二好final。诶,大家发现现在没有那个错误提示了,对不对,好,我们去confirm一下。鼠标。好。大家会发现这个已经confirm了,对吧?然后大家记得我们是不是写了一个呃这个呃,location.reload对吧,所以他就重新的reload了一遍,然后reload之后呢,我们这里面的信息是不是全部被隐藏掉了,对吧?所以说大家会发现这里边是没有信息了,好,那么我们来校验一下,这里大家怎么去校验呢?
23:01
现在我们是是不是就可以去看这个dress了,看看这个有没有对吧。好,我们看一下,诶,已经返回了一个地址对不对,说明这个钱应该是已经打到我们这个合约地址上了,好,那接下来我们看一眼,这里的钱还剩多少,这是count和COUNT2,对吧,他没有竞拍成功,所以说这个只花费了两笔盖,我们看一下COUNT1,而COUNT1现在大概是27对吧?对,所以他花的是三个以态对不对?所以刚才我们是不是把它多出来,那一个以态已经退回来了,这个没问题,完全符合我们定义的这个要求,对吧?那我们这里除了这个。As for product之外,我们是不是还有一个可以找什么呢?Pro infer对不对?Infer我们看一下,诶,大家就可以看到,这就是它返回的info,这是什么infer呢?我们定义的第一个是,第一个是什么?
24:09
第一个应该是对吧,是谁是卖家,大家说这个卖家应该是我们的。点里边的counts林对不对,那我们是不是理论上在这里点的Eth.counts林就应该是这个呀,我们瞄一眼啊counts林。68925是不是就是这个账户塞没问题对吧?好,那么buyer是后面这个50F3F是不是就是我们这个CO1啊,这就是我们的buy,那后边这个地址7109A,这个是我们的仲裁人。阿比特,阿比特是谁?我们的规则是怎么定来的?对,是不是谁提交finalize谁就是仲裁人对吧?对,所以我们看一下这个COUNT2是多少啊,7109,最后CC52。
25:02
7109最后CC52是不是就是COUNT2对吧,所以我们的买家卖家仲裁人完全一致,那后边这个false是说明他现在这个资金还没有释放对不对。然后后面是当前就是要给谁释放的时候都是零对吧,也没有人要求给释放给卖家,也没有人要求释放给卖家,所以这就是完全符合我们预期的这个结果啊,当然了,大家也可以我们再看一眼,就是校校验一下对吧?ETh.get。Get balance,大家想到我们还可以去看谁的这个?谁的账户啊?我们是不是应该检查一下这个他这个合约上面到底有没有三个以太啊,我们刚才是要求把它打到这个合约账户的,对吧?啊,这个我们应该去看一眼。啊,大家看到这个是不是三个语态啊,这这个如果大家看的不是很清楚的话,那我们把它to string对吧。
26:09
呃,当然了,这个我们还是用这个写法啊,就是把它再转一下对不对。先括起来,然后web3.from对吧。诶,哪里写错了,web3.eto。嗯,哦,这里是顶是吧。好,我们看到他的账户余额是不是就是三个以态,所以说。做到这一步,我们可以完整的说,我们所有的操作没有问题,我们的合约运行没有问题,我们的这个页面显示没有问题,那这个时候就说明我们前面的功能所有的东西都实现了。好,那接下来这个时间就交给大家,大家没有实现的把代码全部实现一下。
我来说两句