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-微信公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM