stateMutability included in the ABI, which is reliable in detecting payable functions, but not reliable in distinguishing nonpayable vs view yet (no attemps to detect pure yet, probably too dangerous to be wrong?).
[Fixes #17 to some extent, probably need another issue to track improvements]
In some cases, it manages to successfully guess whether there are inputs or outputs (not super reliable, I'd say like... 60%?), but there have been major changes behind the scenes with how the static analysis works so we can do more advanced things moving forward. I think we can do better next release.
Things I'd like to do before doing a release:
[ ] More testing against contracts that worked well with v0.2.x
[ ] Write a "combining" metadata function that merges loader-based ABIs (which have names but no stateMutability/return values) with disasm-based ABIs (which have stateMutability and return values)
[ ] Update README about debugging tools in src.ts/bin? (Maybe rename to src.ts/scripts?)
[ ] Bonus: Finish writing autoloaders? Just need some final touches on #8
Major internal changes merged from #14:
stateMutability
included in the ABI, which is reliable in detectingpayable
functions, but not reliable in distinguishingnonpayable
vsview
yet (no attemps to detect pure yet, probably too dangerous to be wrong?). [Fixes #17 to some extent, probably need another issue to track improvements]Things I'd like to do before doing a release:
src.ts/bin
? (Maybe rename tosrc.ts/scripts
?)