我是靠谱客的博主 温婉八宝粥,这篇文章主要介绍从零学本体dApp开发(23): 如何静态和动态调用智能合约?,现在分享给大家,希望可以做个参考。

写在前面

最近在利用业余时间学习本体的开发。我打算把自己学习的过程记录下来,一方面便于自己梳理学到的东西,另一方面希望可以通过笔记的共享,能使本体后来的开发者少走弯路。

 

由于是初学者,学习本体开发的过程中遇到了很多问题,在此,特别感谢本体社区的各位老师(宏雷、楚笙、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):内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部