Masterchain support must be enabled explicitly in the project configuration. Without enabling it all masterchain addresses will be treated as invalid.
Most of the contract developers don't need a masterchain. Masterchain is needed only for participating in elections or storing libraries. If you don't need to participate in elections or store libraries, you don't need a masterchain.
Most of the contracts written in
func enforce all incoming addresses to be
basechain ones. This is done to prevent masterchain addresses from being used in the contract. Tact does this by default.
What is prohibited to do without masterchain support enabled:
- Deploy contract to masterchain. The
initfunction would throw a
Masterchain support is not enabled for this contracterror for every message.
- Receive messages from masterchain accounts.
- Receive structs that have masterchain addresses in them.
- Send messages to masterchain accounts.
- Use masterchain addresses in arguments of get methods.
To enable masterchain support, please enable it in the project configuration file: