就是要学社区 QQ群组:646854445
你并非已无懈可击,所以你不能逃避问题,拒绝学习!

126孤荷凌寒自学第0212天_区块链第126天NFT023

|阅读量:67 |发布于2021-01-11 09:31:31


正文内容

笔记合集在github上:

https://github.com/lhghroom/Self-learning-blockchain-from-scratch


【主要内容】

今天继续学习了解ntf的相关知识,今天对修改后的合约进行了第二次部署,部署成功,基础测试也成功。共耗时33分钟。

(此外整理作笔记花费了约26分钟)

详细学习过程见文末学习过程屏幕录像。

【两个主要的合约分开部署】

一、我先是部署了合约:StandardAssetRegistryTest.sol

方法是,在remix的文件列表中选中文件StandardAssetRegistryTest.sol 然后检测,到部署选项卡(DEPLOY & RUN TRANSACTIONS)的CONTRACT下拉选项框中再次选中本文件

StandardAssetRegistryTest.sol/…

然后就是部署。

这第二次部署后得到的合约地址是:

0xeD4202E35c63EDfDC38Fff34100Ac86217960DD3

二、然后部署了合约:Exchange.sol

方法是,在remix的文件列表选项卡中选中文件:Exchange.sol 然后检测,到部署选项卡(DEPLOY & RUN TRANSACTIONS)的CONTRACT下拉选项框中再次选中本文件

Exchange.sol/…

这时在Deploy按钮右边需要输入一个地址address

根据昨天的推测,此处应当填写的就是上面刚刚生成的合约StandardAssetRegistryTest.sol

得到的那个合约地址:0xeD4202E35c63EDfDC38Fff34100Ac86217960DD3

就把这个地址传递给Exchange.sol部署的建构函数(就是初始化)。

然后就点击 部署(Deploy)。

成功取得合约Exchange第二次部署后的合约地址:

0xD743566eab537F268759DF6723280D866764F1b8

后面的与合约交互的成功,验证了昨天的猜想是正确的,则:

Exchange.sol文件中对合约文件StandardAssetRegistryTest.sol的引用却没有继承自这个合约,也就是之前已经测试过的(在之前那个ICO合约)合约的连接。

Exchange.sol在这儿import合约文件StandardAssetRegistryTest.sol相当于在自身文件中申明了一个关于StandardAssetRegistryTest的interface。

而后Exchange合约中的建构函数中下面这句代码:

nonFungible = StandardAssetRegistryTest(_nonFungible);

也就和之前众筹合约的写法是一样的,就是给这个interface传递真正已部署合约的地址,就连接到了那个合约地址,并得到一个对已部署合约的引用对象,在这儿就是:nonFungible这个对象。

二、测试情况

对合约StandardAssetRegistryTest的测试非常成功,这下子,在生成(铸币)新的NFT资产时就再也不需要由调用合约者手动指定资产的ID了,合约自己会在每次铸币时生成一个新的ID,而我改动后的合约代码,在生成新的NFT资产时是可以同时添加资产的URL的,后续也可以读取出指定ID的资产对应的URL。说明修改是成功的。

对合约Exchange的sell(出售节点自己的NFT资产)也是成功的,不过想BUY时出现问题,这是remix与合约交互的一个限制——不能同时发送ETH与资产ID数据,这个需要我自己写前端HTML页面来解决才能测试。


【同步语音笔记】

https://www.ximalaya.com/keji/19103006/360296699


【学习过程屏幕录屏】

今天的录屏B站没有放行,发布没有成功。



【就是要学】社区
一个平等,纯粹的社群
本社群旨在为真正愿意不断学习,终身成长的朋友提供一个平等互助互相鼓励的清洁纯粹的学习交流的平台。
加入社群将获得
1、与真正终身学习者为伍
2、在榜样带领下坚持每天学习,终身成长
3、养成记录时间日志,成功日记的习惯


【就是要学】社区QQ群:646854445





【返回首页】