Commit 38448c10 by Francisco Giordano

Add recommendation to initialize all contracts that use Initializable

parent 8a5b67fb
...@@ -13,6 +13,22 @@ pragma solidity ^0.8.0; ...@@ -13,6 +13,22 @@ pragma solidity ^0.8.0;
* *
* CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure
* that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.
*
* [CAUTION]
* ====
* Avoid leaving a contract uninitialized.
*
* An uninitialized contract can be used in certain kinds of exploits since it may allow an attacker to take control of
* the contract. This includes the implementation contract behind a proxy. You can either invoke the initializer
* manually, independently of initialization of the proxy, or you can include a constructor to automatically mark it as
* initialized when it is deployed:
*
* [.hljs-theme-light.nopadding]
* ```
* /// @custom:oz-upgrades-unsafe-allow constructor
* constructor() initializer {}
* ```
* ====
*/ */
abstract contract Initializable { abstract contract Initializable {
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment