Я хотел бы получить результат события в своем пользовательском интерфейсе.
Вот мой контракт
pragma solidity ^0.4.4;
contract T2{
uint public k;
event CheckVal(uint val);
function Test() returns (uint){
var temp=441;
CheckVal(temp);
k=32;
return temp;
}
}
а в консоли у меня так:
var eve=instance.CheckVal();
eve.watch(function(error, result){console.log(
result.args.val.toNumber());});
Каждый раз, когда я бегу
instance.Test({from:eth.accounts[0],gass:4200000})
В консоли появляется 441, что правильно. Но я хочу получить значение (т.е. 441) в своем пользовательском интерфейсе, поэтому я хочу присвоить его переменной.
Вопрос : Как назначить вывод журнала событий переменной?
На этот вопрос может быть много разных ответов в зависимости от того, что вы хотите делать с переменными (например, хотите ли вы перезаписать его или сохранить растущий список переменных, поступающих через ваше событие?), но самый простой вариант будет так.
var eve=instance.CheckVal(); var storedValue; eve.watch(function(error, result){ storedValue = result; });
И теперь, если вы выйдете из StoredValue, он вернет 441.
Это так просто:
var eventOutput
var eve = instance.CheckVal();
eve.watch(function(error, result){
eventOutput = result.args.val.toNumber()
});
Конечно, вам нужно каким-то образом использовать этот вывод в своем интерфейсе, чтобы сделать его видимым, например, сохранив его в состоянии, если это приложение React.
d9ngle
result.args.val.toNumber()
вашей переменной?