找出一个可靠的接口问题 [英] Figuring out a solidity Interface issue

查看:16
本文介绍了找出一个可靠的接口问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了一个实心接口的示例。

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆