solidity 智能合约之间的调用
智能合约之间的调用
在区块链上,有些功能往往无法通过一个智能合约完成,此时便会用到智能合约之间的调用。本篇文章带大家通过具体示例来了解一下智能合约之间的调用。
在智能合约的编译过程中,有两种情况:调用者和被调用者在一个sol文件中和分别在不同的文件中。
同sol文件的智能合约调用
在下面的智能合约中,Demo1和Demo在同一个文件中,可进行同时编译,然后逐个发布。
pragma solidity ^0.5.10; contract Demo1{ uint public data; function setData(uint _data) public { data = _data; } } contract Demo2{ function toSetData(Demo1 demo1,uint _data) public { demo1.setData(_data); } }
当发布完成,可通过第Demo2的toSetData方法进行Demo1方法的调用。传递的第一个参数为Demo1的智能合约地址,第二个参数为要设置的值。
不同sol文件的智能合约调用
在大多数情况下,两个智能合约不存在于同一个sol文件中,那么就需要使用另外一种形式来进行调用。还拿调用Demo1方法来举例,用另外一个sol文件中的Demo3来调用Demo1。
首先需要声明接口,然后在Demo3中直接调用对应的接口。
pragma solidity ^0.5.10; contract Demo1{ function setData(uint _data) public; } contract Demo3{ function toSetData(Demo1 demo1,uint _data) public { demo1.setData(_data); } }
调用接口是传递的参数依旧同第一种情况。
原文链接:https://www.choupangxia.com/2...
公众号
相关推荐
zhjn0 2020-11-24
夜斗不是神 2020-11-17
学习web前端 2020-11-09
waiwaiLILI 2020-11-03
raidtest 2020-10-09
myccc 2020-09-24
jzlixiao 2020-09-15
guicaizhou 2020-09-15
digwtx 2020-09-14
大秦铁骑 2020-08-19
thatway 2020-08-19
lovecodeblog 2020-08-19
codetyper 2020-08-16
comwayLi 2020-08-16
MongoDB数据库 2020-08-16
cjsyrwt 2020-08-14
Tristahong 2020-08-05
csuzxm000 2020-08-02
前端开发Kingcean 2020-07-30