Если я индексирую параметр или любое количество параметров, возвращаемые значения меняются местами и / или портятся в журнале событий из web3js.
Журнал событий, возвращаемый в консоли Truffle, является правильным, как и возвращаемые значения при совершении вызова view
в приватную цепочку блоков.Это наводит меня на мысль, что где-то данные каким-то образом повреждены web3js.
Вот событие с индексированными параметрами:
event ReportedFraud(
uint256 indexed fraudID,
address bank,
string accountNumber,
string routingNumber,
uint256 indexed amount,
uint256 indexed fromID,
uint256 time
);
Вот самый простой JS, который я могу использовать для чтенияиз журнала событий:
this.KYCinstance.getPastEvents('ReportedFraud', {fromBlock:0, toBlock:'latest'},
(error, events) => {console.log(events);
});
Вот ответ:
accountNumber: "123"
amount: "1"
bank: "0x10674178eAf18F06785b76fF689dcfa5175b098C"
fraudID: "51119459429513360686315515087327623333677688524449823590986145582251952174345"
fromID: "50000"
routingNumber: "456"
time: "1551236055"
А вот правильный ответ, который возвращается, когда ни один из параметров не проиндексирован:
accountNumber: "123"
amount: "50000"
bank: "0x10674178eAf18F06785b76fF689dcfa5175b098C"
fraudID: "1"
fromID: "0"
routingNumber: "456"
time: "1551236055"
Как видите, все проиндексированные параметры (amount, fraudID, fromID) либо поменяны местами, либо повреждены, но при использовании ключевого слова indexed
проблем не возникает.