Externally accessible functions (external
/public
visibility) may be called in any order (with respect to other defined functions). It is not safe to assume they will only be called in the specific order that makes sense to the system design or is implicitly assumed in the code. For e.g., initialization functions (used with upgradeable contracts that cannot use constructors) are meant to be called before other system functions can be called.
- Function Calls Order -> Which + When
- Public/External
- Called Any Order
- State Transitions
- Assumptions on Order
- Order -> Arbitrary
- Robust Handling