soy un novato
Tengo el siguiente contrato ficticio
contract A{
uint public test = 6;
address public myaddress;
uint public dummy;
/**
* The logs that will be emitted in every step of the contract's life cycle
*/
event MyEvent(address myaddress);
event ReadEvent(address myaddress, uint dummy);
/**
* The contract constructor
*/
constructor() public {
myaddress = msg.sender;
emit MyEvent(myaddress);
}
function myF(address sender, uint value) internal {
require(sender == myaddress );
dummy = value;
emit ReadEvent(sender, myaddress);
}
function run() public payable{
myF(msg.sender, msg.value);
/*SendMiles();*/
}
}
Luego lo compilo y migro usando truffle. Después, inicio una consola de trufas en una red de desarrollo y hago lo siguiente:
A.deployed().then(inst => { AInstance = inst })
account0 = web3.eth.accounts[0];
AInstance.run({from: account0, value: 5});
Luego obtengo un número de transacción '0xa72b03232f5028332411d7f05cf47248616aab96d982ce9a7b147a00642db405' en glinche.
Dos preguntas: 1. ¿Cómo puedo obtener el valor de las variables del contrato principalmente para prueba, mi dirección y ficticio para la transacción '0xa72b03232f5028332411d7f05cf47248616aab96d982ce9a7b147a00642db405'
Probé web3.eth.storeat y A.at('0xa72b03232f5028332411d7f05cf47248616aab96d982ce9a7b147a00642db405') y no funcionó en ambos casos
gracias de antemano;
Su transacción '0xa72b0...' modifica el estado del contrato A. Las variables públicas del contrato, como mi dirección, se almacenan en el estado de su contrato: pedir obtener mi dirección para una transacción específica no tiene sentido.
public
atributo genera automáticamente una función getter del mismo nombre: puede obtener el valor de myaddress con el comando:AInstance.myaddress()
Puede generar JSON manualmente:
var tmp = new Object()
tmp.test = AInstance.test()
tmp.myaddress = AInstance.myaddress()
tmp.dummy = AInstance.dummy()
result = JSON.stringify(tmp)
usuario1871528
harold
AInstance.run()
está llamando al métodorun
desde la instancia específicaAInstance
de su contratoA
. Si implementa nuevamente, obtendrá otra instancia de su contratoA
.usuario1871528