未声明的标识符。您指的是 “_balance” 吗?

Undeclared identifier. Did you mean "_balance"?

什么会导致我之前工作的回收功能在我向合约添加其他功能时突然停止工作?

 DeclarationError: Undeclared identifier. Did you mean "_balance"?

uint256 _balance = balances[this];
^^^^^^^^^^

它在这个片段中的每个“余额”上标记:

function reclaimPAXG() external onlyOwner {
    uint256 _balance = balances[this];
    balances[this] = 0;
    balances[owner] = balances[owner].add(_balance);
    emit Transfer(this, owner, _balance);
}

已映射余额:

mapping(address => uint256) internal balances;

这是 Solidity 0.8.4,我正在将 IERC20 连接到代币合约中,我尝试了几个可能的修复。

试图将其移动到 Ownable 合同中,但它保留了错误。最接近的其他搜索结果是语法错误,所以我不知道发生了什么。

通过将 IERC20 接口移动到其映射所在的代币合约中,能够克服余额错误。最终删除了可能导致问题的额外“balanceOf”函数。