Problem
Class tests.blackbox.RouterSimulation doesn't handle overloaded method names. In particular, consider this example; if another method in the router had the abi-signature add(uint64,uint64)void then RouterSimulation would act non-deterministically.
Solution
CallPredicates type should be keyed off method signature as opposed to current method name. This will involve refactoring a few dependencies.
Dependencies
None
Urgency
Low - for the purposes of PyTeal itself, it is easy to work around the issue by not over-loading method names. However, if there is sufficient community interest in re-using RouterSimulation for smart contract testing, then it ought to be improved in the way described.
Problem
Class
tests.blackbox.RouterSimulationdoesn't handle overloaded method names. In particular, consider this example; if another method in the router had the abi-signatureadd(uint64,uint64)voidthenRouterSimulationwould act non-deterministically.Solution
CallPredicates type should be keyed off method signature as opposed to current method name. This will involve refactoring a few dependencies.
Dependencies
None
Urgency
Low - for the purposes of PyTeal itself, it is easy to work around the issue by not over-loading method names. However, if there is sufficient community interest in re-using
RouterSimulationfor smart contract testing, then it ought to be improved in the way described.