Updates C# to net5.0 with new versions of the Neo and NeoVM repos.
New version of EdgeJS (NEO•ONE's fork).
Updates to documentation and env setup instructions for net5.0.
Fix minor issue with Nep17 balance updates.
Test Plan
Tested locally in syncing node.
Alternate Designs
Researched using the NSPCC neo-go VM or the CoZ C++ VM instead of the C# VM and decided that the best course of action would be to use improve the existing C# VM setup for our node. We decided to improve the C# VM integration for several reasons:
It is already integrated with our TypeScript node and working very well with minor issues. So trying to integrate the Go or C++ VM would involve re-working our VM integration and potentially coming across new problems.
Using the C# VM allows us to access the entire ApplicationEngine class from the Neo C# repo, which includes the native contracts and the syscalls. Whereas using the Go or C++ VM is only the pure Neo-VM implementation without native contracts or syscalls, which means it would have been harder to add native contract methods and syscalls using either of those VMs.
With the Go or C++ VMs we would have had to write our own bindings, which involves learning new tools to get this done, which takes time and can have unforeseen problems. With the C# VM we already have a way to interact with C# from TypeScript and we know how to set that up, make improvements, and debug problems.
Benefits
Better development experience, newer C# .NET features, consistency with Neo and NeoVM repos, less bugs, faster VM, easier setup for users.
Description of the Change
Test Plan
Tested locally in syncing node.
Alternate Designs
Benefits
Better development experience, newer C# .NET features, consistency with Neo and NeoVM repos, less bugs, faster VM, easier setup for users.
Possible Drawbacks
Possible new bugs introduced, but not likely.
Applicable Issues
None.