找出一个可靠的接口问题 [英] Figuring out a solidity Interface issue
本文介绍了找出一个可靠的接口问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我得到了一个实心接口的示例。
1/任何线索此方法是否准确,因为它在继承自合同而不是在扩展合同内实现接口。
2/我尝试实现它,协定A函数运行正常,但协定B getCount函数运行不正确。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface InterfaceA {
function count() external view returns (uint256);
function increment() external;
}
contract contractA {
uint256 number = 0;
function count() external view returns (uint256) {
return number;
}
function increment() external {
number++ ;
}
}
// SPDX-License-Identifier: MIT
import './contractA.sol' ;
pragma solidity ^0.8.0;
contract contractB {
address addressA;
function setPointer(address _addressA) external {
addressA = _addressA;
}
function getCount() external view returns (uint256) {
InterfaceA b = InterfaceA(addressA);
b.count();
}
function addToIncrement() external {
InterfaceA b = InterfaceA(addressA);
b.increment();
}
}
推荐答案
我认为唯一的问题是您没有从getCount返回任何内容。您添加了返回签名,在编译它时应该会有一个警告。
function getCount() external view returns (uint256) {
InterfaceA b = InterfaceA(addressA);
return b.count();
}
这篇关于找出一个可靠的接口问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文