美文网首页
合约之间的简单调用之interface

合约之间的简单调用之interface

作者: 哦名字好难 | 来源:发表于2022-10-09 10:22 被阅读0次

    废话不多说 直接上代码

    注意点 必须是public的可以让其他合约进行访问 并且做好权限控制

    
    // SPDX-License-Identifier: GPL-3.0
    
    pragma solidity >=0.7.0 <0.9.0;
    
    contract heroCardData{
    
        uint256 public  limit = 100;
    
        string public users = "qwertyuiop"; 
    
        mapping (address=>address) public userList;
    
        function getUsers() public view returns (string memory name){
    
            return users;
    
        }
    
        function setLimit(uint256 _limit) public {
    
            limit = _limit;
    
        }
    
        function changeValue(uint256 orderId) public pure returns (uint256) {
    
            return ++orderId;
    
        }
    
    }
    
    

    在使用合约中写入 注意点方法名要一致

    
    interface IA {
    
        function limit() external view returns (uint256);
    
        function getUsers() external view returns (string memory);
    
        function changeValue(uint256 orderId) external pure returns (uint256);
    
    }
    
    

    在正式使用合约中 传入部署的heroCardData合约地址

    
    contract myTest{
    
        IA datesss;
    
        constructor(address dataAddress){
    
            datesss = IA(dataAddress);
    
        }
    
        function getLimit() public view returns (uint256) {
    
            return datesss.limit();
    
        }
    
        function getUserList() public view returns (string memory) {
    
            return datesss.getUsers();
    
        }
    
        function changes(uint256 orders) public view returns (uint256) {
    
            return datesss.changeValue(orders);
    
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:合约之间的简单调用之interface

          本文链接:https://www.haomeiwen.com/subject/yvsgartx.html