Points can be used for auditing, debugging, and security purposes of tracking the effects of a contract’s execution. We must ensure that all points or parts of the code are thoroughly tested and that no code is untested. This can help identify code areas at higher risk of containing bugs or not working as expected. The results are displayed as a report showing which parts of the code are covered by tests and which are not. We can detect and understand changes in the contracts while testing the code.
Checkpoints are points in the execution of a function and allow one to return to that state later if necessary. Checkpoints can be used for various purposes, such as recovering from errors, checking a previous state, or creating a vulnerability in the contract’s state! A checkpoint must be written by reviewing the current state of an action, including all its variables; otherwise, Fail Early and Fail Hard, failing fast and entirely in case of unexpected situations. (Fail Early and Fail hard) is a standard software design principle in which a system is designed to fail quickly and entirely if it encounters an unexpected situation. The idea behind this principle is to stop the execution of a plan as soon as a problem is detected rather than continue execution and produce potentially incorrect results.
Effects points are the point in the contract’s code where a change or an update occurs and to a particular point in a lifetime where the underlying properties of the data change. This can include updates to the contract’s storage or the emission of events, for example. The strategy for updating the state of a smart contract is an optimistic update. The (Optimistically update) process is often used with other security measures, such as gas limits. However, there is a risk of re-entrance, which can cause the contract to become inconsistent. Effect points define how the state of a contract can change as a result of interactions. So the new state must always be completely valid.
Interaction points are the points in a contract that external entities can interact with, such as users’ wallets or other contracts. This can include functions that allow users to make transactions or trigger events, for example. Interaction points define how external entities can access and use a contract. For instance, at this point, unsafe external calls could occur.
All those points define the behavior and security in the design of a smart contract as they determine how the contract can be accessed and used and how its state can change. Therefore, ensuring that interaction points and effect points are well-defined and secure is essential for the reliability and security of a smart contract.