Skip to content

Instantly share code, notes, and snippets.

@andrejrakic
Created April 22, 2021 09:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrejrakic/2a61faa2157efff1684d212b2c754eb8 to your computer and use it in GitHub Desktop.
Save andrejrakic/2a61faa2157efff1684d212b2c754eb8 to your computer and use it in GitHub Desktop.

👍 Examples of correct code ordering rule

All units are in order

pragma solidity ^0.7.0;

import "./some/library.sol";
import "./some/other-library.sol";

enum MyEnum {
    Foo,
    Bar
}

struct MyStruct {
    uint x;
    uint y;
}

interface IBox {
    function getValue() public;
    function setValue(uint) public;
}

library MyLibrary {
    function add(uint a, uint b, uint c) public returns (uint) {
        return a + b + c;
    }
}

contract MyContract {
    using MyLibrary for uint;

    struct InnerStruct {
        bool flag;
    }

    enum InnerEnum {
        A, B, C
    }

    address payable owner;
    uint public x;
    uint public y;

    event MyEvent(address a);

    modifier onlyOwner {
        require(
            msg.sender == owner,
            "Only owner can call this function."
        );
        _;
    }

    constructor () public {}

    fallback () external {}

    function myExternalFunction() external {}
    function myExternalViewFunction() external view {}
    function myExternalPureFunction() external pure {}

    function myPublicFunction() public {}
    function myPublicViewFunction() public view {}
    function myPublicPureFunction() public pure {}

    function myInternalFunction() internal {}
    function myInternalViewFunction() internal view {}
    function myInternalPureFunction() internal pure {}

    function myPrivateFunction() private {}
    function myPrivateViewFunction() private view {}
    function myPrivatePureFunction() private pure {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment