zoukankan      html  css  js  c++  java
  • 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/2019/07/30/solidity-智能合约之间的调用/

    公众号

    csdn-微信公众号

  • 相关阅读:
    Javascript
    Javascript
    Javascript
    Java web 中Session有效时间设置
    给div添加滚动条
    Java获得绝对路径
    JS实现选择文件保存路径
    JS实现文件上传
    jsp日期插件My97DatePicker的使用
    Java重写equals()方法
  • 原文地址:https://www.cnblogs.com/secbro/p/11270522.html
Copyright © 2011-2022 走看看