Solidity 有一个事件。
在什么情况下需要它们?他们在解决什么问题?
如果不难,请用文字举一个简单的例子。我的理解是:使用事件,你可以将某个结果写入区块链交易,然后使用 Java 代码检查是否有这样的事件。例如,在进行支付/交易时,您可以调用一个事件并向其传递 3 个参数:发件人、收件人、金额。以后,您可以在智能合约的交易日志中查看该交易是否已执行。我理解正确吗?如果是这样,如何在日志中检查此事件?
然而,当声明一个事件时,它的参数可以被标记为索引(indexed),这有什么好处,不像它们没有用索引关键字标记?谢谢你。
需要事件来跟踪交易在智能合约中引起的真实变化。对于同一笔交易,根据智能合约的当前状态,可能会产生不同的效果。
是的,可以在代码中的适当位置在智能合约中生成一个事件,并将必要的参数传递给它。
事件不会写入事务日志,而是写入单独的事件日志。可以逐块检索事件 - 当扫描新块时,或使用事件过滤器机制。据我记得,索引参数可以参与事件过滤器,但我自己并没有使用它。