There was a major problem appearing on the N3 MainNet sync around block 151,000. The block was not persisting due to an account error, which was due to a GhostMarket contract execution not going through properly in a previous block, which caused a balance discrepancy. I dug down and had to log all the contract storage changes for contract ids 7 and 8 on our node and the official C# node. Finally I got to the very first divergence in storage changes around block 128,000. A transaction FAULed on theirs but not on ours. This was due to a minor difference in the C# application engine due to us using a different C# runtime target. The fix was published to our Neo fork in version 3.0.2.2.
Add args to getnep17transfers for easier usage.
Add fault exception to persist errors.
Add sign to integer stack item return.
Fix a small issue where contract IDs for native contracts come out as positive ints instead of negative as they should.
Description of the Change
Test Plan
Tested locally and deployed.
Alternate Designs
None.
Benefits
Bug fixes.
Possible Drawbacks
None.
Applicable Issues
None.