diff options
author | chriseth <chris@ethereum.org> | 2018-08-07 00:26:55 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-07 00:26:55 +0800 |
commit | 1fb2d6aa856d4ab62050d8b527a9044e7cca5a80 (patch) | |
tree | efecd8db9218d2533f3edfd87d0b9f78a3a519b7 /docs/style-guide.rst | |
parent | 7c9bfb62f9047f6ed18b095ba756ffe2511f0ec8 (diff) | |
parent | 835c05cb3a61202d1e2b87fc6671850039cc0b8e (diff) | |
download | dexon-solidity-1fb2d6aa856d4ab62050d8b527a9044e7cca5a80.tar dexon-solidity-1fb2d6aa856d4ab62050d8b527a9044e7cca5a80.tar.gz dexon-solidity-1fb2d6aa856d4ab62050d8b527a9044e7cca5a80.tar.bz2 dexon-solidity-1fb2d6aa856d4ab62050d8b527a9044e7cca5a80.tar.lz dexon-solidity-1fb2d6aa856d4ab62050d8b527a9044e7cca5a80.tar.xz dexon-solidity-1fb2d6aa856d4ab62050d8b527a9044e7cca5a80.tar.zst dexon-solidity-1fb2d6aa856d4ab62050d8b527a9044e7cca5a80.zip |
Merge pull request #3496 from ltfschoen/patch-6
Update Style Guide examples to comply with CapWords requirement for contract and file naming
Diffstat (limited to 'docs/style-guide.rst')
-rw-r--r-- | docs/style-guide.rst | 68 |
1 files changed, 63 insertions, 5 deletions
diff --git a/docs/style-guide.rst b/docs/style-guide.rst index 19e3aae5..53e126b4 100644 --- a/docs/style-guide.rst +++ b/docs/style-guide.rst @@ -229,7 +229,7 @@ Import statements should always be placed at the top of the file. Yes:: - import "owned"; + import "./Owned.sol"; contract A { @@ -237,7 +237,7 @@ Yes:: } - contract B is owned { + contract B is Owned { ... } @@ -248,10 +248,10 @@ No:: } - import "owned"; + import "./Owned.sol"; - contract B is owned { + contract B is Owned { ... } @@ -867,7 +867,65 @@ indistinguishable from the numerals one and zero. Contract and Library Names ========================== -Contracts and libraries should be named using the CapWords style. Examples: ``SimpleToken``, ``SmartBank``, ``CertificateHashRepository``, ``Player``. +* Contracts and libraries should be named using the CapWords style. Examples: ``SimpleToken``, ``SmartBank``, ``CertificateHashRepository``, ``Player``, ``Congress``, ``Owned``. +* Contract and library names should also match their filenames. +* If a contract file includes multiple contracts and/or libraries, then the filename should match the *core contract*. This is not recommended however if it can be avoided. + +As shown in the example below, if the contract name is `Congress` and the library name is `Owned`, then their associated filenames should be `Congress.sol` and `Owned.sol`. + +Yes:: + + // Owned.sol + contract Owned { + address public owner; + + constructor() public { + owner = msg.sender; + } + + modifier onlyOwner { + require(msg.sender == owner); + _; + } + + function transferOwnership(address newOwner) public onlyOwner { + owner = newOwner; + } + } + + // Congress.sol + import "./Owned.sol"; + + contract Congress is Owned, TokenRecipient { + ... + } + +No:: + + // owned.sol + contract owned { + address public owner; + + constructor() public { + owner = msg.sender; + } + + modifier onlyOwner { + require(msg.sender == owner); + _; + } + + function transferOwnership(address newOwner) public onlyOwner { + owner = newOwner; + } + } + + // Congress.sol + import "./owned.sol"; + + contract Congress is owned, tokenRecipient { + ... + } Struct Names |