Closed UGatgithub closed 6 years ago
Yes old watches are no longer compatible. You'll have to re-create them. I'm afraid I forgot to do the "cleanup" and old stored watches will cause this. It doesn't really do any harm but it makes them useless.
This is due to how their structure changed and how the new filters are implemented. If you also used the erc20 "alpha" releases any token contracts added need to be re-added.
I'm going to close this as it's a minor issue with a workaround. If you re-add your watches and still get trouble please reopen.
Actually going to keep this open and see if I can detect the old version. If not I'll have to wipe any user-made watches with some sort of dialog telling the user.
I've added a FAQ entry so people can work around.
Hmm looking at the code there might also be a getLogs problem. Can you please try the work-around and see if it worked?
Should be fixed now, will release 2.1.1 by Tuesday
Just a note on what the issue was: when you're on full node client and have a watch Etherwall requests a "history" of events to pre-fill on start.
The reason why this error didn't pop up on testing was that it only shows up if the watched contract has an event in the given timeframe (usually up to a day). I tested with thin client where history is not loaded at all due to constraints and on testnet but I didn't have a recent event to load.
Thanks for reporting.
Tryed the work around and it helps for Augur but not for XENON, GOLEM and OmiseGo - seems to be connected to the contract itself in some way also then. Should be enough to delete and add the Watch again, don't need to remove and add the contract also, correct?
Hey so I was wrong in my original assumption. The issue is now fixed in master, will be released with 2.2.1 by Tuesday.
Basically here's what went wrong: When you have a watch installed you use a "filter" with geth to check for new incoming events. This part changed in order to accommodate for ERC20 "internal" filters to watch your token balances.
Etherwall also supports getting events from the "past" via the eth_getLogs
call which uses the same handler to parse out the resulting data as the filter calls. I forgot to add a new param to this call that identifies the "internal" filter ID and so when this call is made and if there were any events in history to get, you'll get that error for every one of them.
This only happens if:
I suspect the reason why it worked for Augur is simply that there were no events matching your filter in the hour when you ran it.
Just to be sure tho I'll post the binary here for testing before releasing so you can confirm it's fixed. You're on windows correct?
Yes I am on Windows
Found out some more problems caused by this, will release an alpha build of 2.1.1 soon so you can test. I'd appreciate if you tested this ASAP so I can release it out.
Could you please test with: https://github.com/almindor/etherwall/releases/tag/v2.1.1-alpha ? Should have all the logs/events issues fixed.
Please report success or failure here ASAP. I'll try to make the official release tonight or tomorrow.
released 2.1.1 with fix. If you still get issues please reopen
With Version 2.1.0 I get a new Error when starting Etherwall. ... Unknown internal filterID: Unknown internal filterID: Unknown internal filterID: Unknown internal filterID: Unknown internal filterID: IPC ready, initializing poller Connected to IPC socket Connecting to IPC socket \.\pipe\geth.ipc Geth starting C:/Program Files/Geth/geth.exe --syncmode fast --cache=1024 --maxpeers=48 --datadir C:/Users/User/AppData/Roaming/Ethereum/ --nousb Checking to see if there is an already running geth... Etherwall starting Connecting to main Etherwall server
The error disappears if I deactivate Watches under contracts.