Solidity

松露測試庫 - 類型錯誤:在庫中的參數相關查找後未找到成員或不可見成員

  • May 16, 2018

有人可以確認這種行為並提供解決方案嗎?使用truffle test我收到錯誤消息Member "functionName" not found or not visible after argument-dependent lookup in library A。是因為我正在嘗試為庫編寫測試嗎?

pragma solidity 0.4.21;
library A{
   function functionName(uint256 a, uint256 b) public pure returns(bool){
       return (a == b);
   }
}

測試A.sol

import "truffle/Assert.sol";
import "truffle/DeployedAddresses.sol";
import "../contracts/A.sol";

contract TestA {
 function test_functionName() {
   A a = A(DeployedAddresses.A());

   bool expected = false;
   Assert.equal(a.functionName(1, 0), expected, "Comparing: 1 is not 0");
 }
}

deploy_contracts.js

var A = artifacts.require("A");

module.exports = function(deployer) {
 deployer.deploy(A);
};

您應該嘗試導入為:- import { A } from “../contracts/A.sol”; 並使用 A.functionName()。因為在 Solidity 中,“庫”是一種特殊類型的合約,專門用於編寫可重用的程式碼。您可以將其視為任何 OOP 語言中的靜態函式。願這對你有所幫助。

引用自:https://ethereum.stackexchange.com/questions/48547