Lisk Smart Contract
Solidity Basics 04 - Call contract

Call contract

✅ Contract B (callee)

Contract này có một hàm public setNumber có thể được gọi bởi một contract khác

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
contract ContractB {
    uint256 public number;
 
    function setNumber(uint256 _num) external {
        number = _num;
    }
}

✅ Cách 1 : Contract A (caller)

Contract này gọi hàm setNumber trong ContractB.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
interface IContractB {
    function setNumber(uint256 _num) external;
}
 
contract ContractA {
    function callSetNumber(address contractBAddress, uint256 _num) external {
        IContractB(contractBAddress).setNumber(_num);
    }
}

✅ Cách 2 : Contract A (caller)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
import "./ContractB.sol";
 
contract ContractA {
    function callSetNumber(ContractB _contractB, uint256 _num) external {
        _contractB.setNumber(_num);
    }
}