A continuación se muestran los pasos (tome nota, no hay problemas cuando pruebo esto en remix, funciona absolutamente bien)
CoffeeNetworking.at('0xfd95F4AF776ba4F0E6D13fEc18763cA59336494c').then(function(instance){ return instance.addValue(25)}).then(function(result){ console.log("Result", result) })
CoffeeNetworking.at('0xfd95F4AF776ba4F0E6D13fEc18763cA59336494c').then(function(instance){ return instance.getValue()}).then(function(result){ console.log("Result", result) })
//Asignación de usuarios.sol
pragma solidity ^0.4.23;
contract Usermapping {
uint256 public value;
bytes32 public name;
function addValue(uint a) public returns (bool)
{
value = a;
return true;
}
function getValue() public view returns(uint256)
{
return value;
}
function setName(bytes32 nameSet) public returns(bool){
name = nameSet;
return true;
}
function getName() public view returns(bytes32){
return name;
}
}
var B = artifacts.require("./Usermapping.sol");
module.exports = function(deployer){
deployer.deploy(B)
}
//CoffeeNetowkring.sol
pragma solidity ^0.4.23;
contract CoffeeNetworking{
Usermapping u = Usermapping(0x9B3a12cF7D8560DCd3d5D148cDCBCb9E1617D06F);
uint256 public version =1;
// address add = 0x9B3a12cF7D8560DCd3d5D148cDCBCb9E1617D06F;
constructor () public {
// u = Usermapping(0xE1D685Fb942903986A9639da688d62E463BFC0DB);
}
function addValue(uint a) public returns (bool){
// Usermapping u = Usermapping(add);
return u.addValue(a);
}
function getValue() public view returns (uint256){
// Usermapping u = Usermapping(add);
return u.getValue();
}
function setName(bytes32 name) public returns(bool){
// Usermapping u = Usermapping(add);
return u.setName(name);
}
function getName() public view returns(bytes32){
// Usermapping u = Usermapping(add);
return u.getName();
}
}
contract Usermapping {
uint256 public value;
bytes32 public name;
function addValue(uint a) public returns (bool);
function getValue() public view returns(uint256);
function setName(bytes32 nameSet) public returns(bool);
function getName() public view returns(bytes32);
}
geth
está devolviendo hash de transacción y remix
está devolviendo valor. Esta es una diferencia fundamental en el comportamiento de geth
y remix
. Las transacciones no devuelven un valor de contrato al front-end porque las transacciones no se extraen de inmediato ni se incluyen en la cadena de bloques. Para obtener valores de una función, debe usar eventos de solidez o debe usar llamadas en Ethereum.
Consulte este blog para comprender más acerca de las llamadas y transacciones en solidez.
Consulte este blog para comprender más acerca de los eventos de solidez.