写在前面
最近在利用业余时间学习本体的开发。我打算把自己学习的过程记录下来,一方面便于自己梳理学到的东西,另一方面希望可以通过笔记的共享,能使本体后来的开发者少走弯路。
由于是初学者,学习本体开发的过程中遇到了很多问题,在此,特别感谢本体社区的各位老师(宏雷、楚笙、Mickey、雪飞的逆袭、Andy季、周佩文等)耐心地为我解答各种各样的问题,本体有你们,真好!
原创 | 工匠 (来自本体社区的技术人员)
---------------
学习本篇的目的:
通过dAPI调用合约时,可以时静态调用也可以时动态调用,
这一篇来学学如何静态和动态动用,各自的优缺点。
目录:
1. 静态/动态调用合约的API
2. 如何静态调用合约?
3. 如何动态调用合约?
1.静态/动态调用合约的API
静态/动态调用合约的API,如下图,
RegisterAppCall 这个是静态调用智能合约的API。
DynamicAppCall 这个是动态调用智能合约的API。
二者的区别是:静态调用需要在合约里制定调用合约的地址,动态调用不需要把调用的合约地址写在合约里,可以作为参数传入。
二者共同点是:他们都可以制定调用的方法(函数)和参数,即方法(函数)和参数可以作为两个参数传入合约。
2.静态调用合约
这里因为涉及到合约的调用,所以需要两个智能合约,分别在两个SmartX窗口中打开,
合约B是hello world是被调用合约,如下图:
编译后生成合约哈希,等下要粘贴到合约A中,
点击部署,成功,结果如下图:
将合约A的代码贴到SmartX中,并复制刚刚B合约的哈希,如下图:
点击部署,并运行,结果如下:
3.动态调用合约
被调用的合约依然是hello world,
复制动态调用的合约代码到SmartX中,如下图
点击编译,并部署成功后,运行,
填入的第一参数是合约B的哈希经过反序的值,运行返回的结果是“313233”
将这个返回值放到工具里转换一下,如下图:
得到的结果是123,说明调用正确了。
写在最后
希望有更多的小伙伴参与到本体开发学习中来,让我们共同为本体的生态建设添砖加瓦!感兴趣的小伙伴可以联系我,共同学习!
最后
以上就是温婉八宝粥最近收集整理的关于从零学本体dApp开发(23): 如何静态和动态调用智能合约?的全部内容,更多相关从零学本体dApp开发(23):内容请搜索靠谱客的其他文章。
发表评论 取消回复