Merge pull request #13679 from fulldecent/feature-order-of-errors

[Documentation] Set error placement in contract, match example to specified order
This commit is contained in:
Nikola Matić 2022-11-21 10:39:06 -05:00 committed by GitHub
commit 50935dbcc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1058,14 +1058,40 @@ Inside each contract, library or interface, use the following order:
1. Type declarations
2. State variables
3. Events
4. Modifiers
5. Functions
4. Errors
5. Modifiers
6. Functions
.. note::
It might be clearer to declare types close to their use in events or state
variables.
Yes:
.. code-block:: solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.4 <0.9.0;
abstract contract Math {
error DivideByZero();
function divide(int256 numerator, int256 denominator) public virtual returns (uint256);
}
No:
.. code-block:: solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.4 <0.9.0;
abstract contract Math {
function divide(int256 numerator, int256 denominator) public virtual returns (uint256);
error DivideByZero();
}
******************
Naming Conventions
******************
@ -1130,15 +1156,15 @@ Yes:
contract Owned {
address public owner;
constructor() {
owner = msg.sender;
}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
constructor() {
owner = msg.sender;
}
function transferOwnership(address newOwner) public onlyOwner {
owner = newOwner;
}
@ -1169,15 +1195,15 @@ No:
contract owned {
address public owner;
constructor() {
owner = msg.sender;
}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
constructor() {
owner = msg.sender;
}
function transferOwnership(address newOwner) public onlyOwner {
owner = newOwner;
}