Describe the bug
Native NEO and GAS contracts are not compliant with NEP-5 specification in their event (notification) name.
Details
The NEP-5 specification describes "transfer" event that is to be generated by compliant contracts under specific circumstances. It can be seen in example contract, tutorial, another example, implementation of compliant tracker plugin and compliant node. All of these work fine in Neo 2 world.
Fast-forward to Neo 3 with #717 that added native NEO and GAS contracts claiming them as supporting NEP-5. But in fact these contracts emit a bit different event named "Transfer", so technically they're not compliant with NEP-5 specification. Moreover, neo-project/neo-modules#125 changed the old standard-compliant NEP-5 tracker plugin to something working with this new "Transfer".
Expected behavior
Following existing standards in Neo 3 or creating new ones if there is a need to change something.
(Optional) Additional context
I'd suggest changing generated event name back to lower-case "transfer", because that was the name for quite some time and there is code that's expecting exactly that. Also, people trying to follow NEP-5 standard would probably be a bit surprised to find out that the new NEP-5 tracker plugin doesn't work for their contracts.
The other option of course is rolling out new specification that can define this event in any new fashion (lower case, upper case, mixed case, case-insensitive, etc...).
Vote:
uppercase (Transfer) 馃憤
lowercase (transfer) 馃憥
I vote for uppercase or case-insensitive.
Solved by NEP-17.
Most helpful comment
Vote:
uppercase (Transfer) 馃憤
lowercase (transfer) 馃憥