As it is today Surf provides DefaultABITable. This is helpful if users only use the modules included in it, but otherwise it has two issues:
- It doesn't include everything in the framework. Keeping it up to date might be challenging.
- It doesn't include ABIs for any other modules my module might depend on.
I suggest a tool where the user can provide either a Move package on disk or a module on chain as input and as output it recursively discovers all the modules those modules depend on and outputs their ABIs. This would make it easy for users to ensure they've got all the ABIs they need.
I actually implemented something similar to this already in Rust: aptos-labs/aptos-core#9405.
As it is today Surf provides
DefaultABITable. This is helpful if users only use the modules included in it, but otherwise it has two issues:I suggest a tool where the user can provide either a Move package on disk or a module on chain as input and as output it recursively discovers all the modules those modules depend on and outputs their ABIs. This would make it easy for users to ensure they've got all the ABIs they need.
I actually implemented something similar to this already in Rust: aptos-labs/aptos-core#9405.