He puesto el mismo filtro con eth_newFilter
antes y después de un conjunto de transacciones. El que se instala después de que las transacciones detectaron 0 eventos. ¿Es así como funcionan los eventos? ¿Hay alguna otra forma de capturar eventos retrospectivamente excepto eth_getLogs
?
from ethjsonrpc import EthJsonRpc
c = EthJsonRpc('127.0.0.1', 8545)
ADDRESS = "0xdb1154368ba2645e6c090f3d1f3ddd5c8c1f8008"
params = {
"fromBlock": "0x01",
"address": ADDRESS
}
before = c.eth_newFilter(params)
for i in range(100):
tx = c.call_with_transaction(c.eth_coinbase(), ADDRESS, 'setValue(uint32)', [i])
receipt = c.eth_getTransactionReceipt(tx)
after = c.eth_newFilter(params)
print len(c.eth_getFilterLogs(before)) // 100
print len(c.eth_getFilterLogs(after)) // 0
print len(c.eth_getLogs(params)) // 100
Estoy usando testrpc como cliente de blockchain.
Desafortunadamente, TestRPC no es compatible con eventos pasados. Podría intentar usar una cadena Geth privada como se detalla aquí .
mikko ohtamaa
eth_getLogs()
que no se puede usar? Tiene casi la misma firma de llamada queeth_newFilter
.Takeshi