¿Alguien puede confirmar este comportamiento y proporcionar una solución? Usando truffle test
me sale el mensaje de error Member "functionName" not found or not visible after argument-dependent lookup in library A
. ¿Es porque estoy tratando de escribir una prueba para una biblioteca?
a.sol
pragma solidity 0.4.21;
library A{
function functionName(uint256 a, uint256 b) public pure returns(bool){
return (a == b);
}
}
TestA.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");
}
}
desplegar_contratos.js
var A = artifacts.require("A");
module.exports = function(deployer) {
deployer.deploy(A);
};
Debe intentar importar como: - import { A } from "../contracts/A.sol"; Y use A.functionName(). Porque en solidity "library" hay un tipo especial de contratos que se usan especialmente para programar una pieza de código reutilizable. Puede pensar en esto como una función estática en cualquier lenguaje OOP. Que esto te ayude.
a.functionName()
porA.functionName()
ismael
senju
senju