智能合约之间相互调用 留档

1. 接口A

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface A {
    
    
    function a()external view returns(uint256);
    function setA(uint256 _a)external;
    function KK() external;
}

2.智能合约B

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "../interfaces/A.sol";

contract B is A {
    
    
    uint256 k;
    constructor(){
    
    }
    function a() public override view returns (uint256){
    
    
        return k;
    }

    function setA(uint256 _a) public override {
    
    
        k = _a;
    }

    function b() public pure returns (uint256){
    
    
        return 123;
    }
}

3.C调用B中数据

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface A {
    
    
    function a() external view returns (uint256);

    function setA(uint256 _a) external;
}


contract C {
    
    
    A public a;
    constructor(address _addr){
    
    
        a = A(_addr);
    }
    function getA() view public returns (uint256){
    
    
        return a.a();
    }

    function setNum(uint256 _a) public {
    
    
        a.setA(_a);
    }

    function c() public pure returns (uint256){
    
    
        return 159;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43087667/article/details/124837320