Add Solidity linter (#608)

* Add solhint and basic configuration

* Add solhint-plugin-prettier to run prettier via solhint

* Remove all solhint-disable rules in contracts

* Turn off compiler version errors

* Fix max-line-length linter errors

* Fix linting and prettier issues in contracts

* Add global lint command to run both ts and solidity linter
This commit is contained in:
Elena 2022-11-08 16:12:42 +02:00 committed by GitHub
parent b3281bfdb1
commit ca0b074893
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
92 changed files with 377 additions and 248 deletions

17
.solhint.json Normal file
View File

@ -0,0 +1,17 @@
{
"extends": "solhint:recommended",
"plugins": ["prettier"],
"rules": {
"prettier/prettier": "error",
"avoid-low-level-calls": "off",
"avoid-tx-origin": "warn",
"code-complexity": "off",
"const-name-snakecase": "error",
"function-max-lines": "off",
"max-line-length": ["error", 120],
"no-inline-assembly": "off",
"quotes": ["error", "double"],
"no-empty-blocks": "off",
"compiler-version": "off"
}
}

1
.solhintignore Normal file
View File

@ -0,0 +1 @@
contracts/erc20/contracts/src/ZRXToken.sol

View File

@ -23,7 +23,8 @@ import "./ERC20Token.sol";
contract UnlimitedAllowanceERC20Token is ERC20Token { contract UnlimitedAllowanceERC20Token is ERC20Token {
uint256 internal constant MAX_UINT = 2**256 - 1; uint256 internal constant MAX_UINT = 2**256 - 1;
/// @dev ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance. See https://github.com/ethereum/EIPs/issues/717 /// @dev ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.
// See https://github.com/ethereum/EIPs/issues/717
/// @param _from Address to transfer from. /// @param _from Address to transfer from.
/// @param _to Address to transfer to. /// @param _to Address to transfer to.
/// @param _value Amount to transfer. /// @param _value Amount to transfer.

View File

@ -13,7 +13,6 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// solhint-disable
pragma solidity ^0.5.9; pragma solidity ^0.5.9;
contract WETH9 { contract WETH9 {

View File

@ -137,14 +137,11 @@ contract UnlimitedAllowanceToken is ERC20Token {
} }
contract ZRXToken is UnlimitedAllowanceToken { contract ZRXToken is UnlimitedAllowanceToken {
// solhint-disable const-name-snakecase
uint8 public constant decimals = 18; uint8 public constant decimals = 18;
uint256 public totalSupply = 10**27; // 1 billion tokens, 18 decimal places uint256 public totalSupply = 10**27; // 1 billion tokens, 18 decimal places
string public constant name = "0x Protocol Token"; string public constant name = "0x Protocol Token";
string public constant symbol = "ZRX"; string public constant symbol = "ZRX";
// solhint-enableconst-name-snakecase
function ZRXToken() public { function ZRXToken() public {
balances[msg.sender] = totalSupply; balances[msg.sender] = totalSupply;
} }

View File

@ -19,7 +19,6 @@
pragma solidity ^0.5.9; pragma solidity ^0.5.9;
contract IERC20Token { contract IERC20Token {
// solhint-disable no-simple-event-func-name
event Transfer(address indexed _from, address indexed _to, uint256 _value); event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value);

View File

@ -20,7 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
interface IERC20TokenV06 { interface IERC20TokenV06 {
// solhint-disable no-simple-event-func-name
event Transfer(address indexed from, address indexed to, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value);

View File

@ -20,7 +20,6 @@ pragma solidity ^0.5.5;
import "./DummyERC20Token.sol"; import "./DummyERC20Token.sol";
// solhint-disable no-empty-blocks
contract DummyMultipleReturnERC20Token is DummyERC20Token { contract DummyMultipleReturnERC20Token is DummyERC20Token {
constructor( constructor(
string memory _name, string memory _name,
@ -40,7 +39,8 @@ contract DummyMultipleReturnERC20Token is DummyERC20Token {
) external returns (bool) { ) external returns (bool) {
emit Transfer(_from, _to, _value); emit Transfer(_from, _to, _value);
// HACK: This contract will not compile if we remove `returns (bool)`, so we manually return 64 bytes (equiavalent to true, true) // HACK: This contract will not compile if we remove `returns (bool)`, so we manually return 64 bytes
// (equiavalent to true, true)
assembly { assembly {
mstore(0, 1) mstore(0, 1)
mstore(32, 1) mstore(32, 1)

View File

@ -20,7 +20,6 @@ pragma solidity ^0.5.5;
import "./DummyERC20Token.sol"; import "./DummyERC20Token.sol";
// solhint-disable no-empty-blocks
contract DummyNoReturnERC20Token is DummyERC20Token { contract DummyNoReturnERC20Token is DummyERC20Token {
constructor( constructor(
string memory _name, string memory _name,

View File

@ -20,8 +20,6 @@ pragma solidity ^0.5.5;
import "./DummyERC20Token.sol"; import "./DummyERC20Token.sol";
// solhint-disable no-empty-blocks
// solhint-disable no-unused-vars
contract UntransferrableDummyERC20Token is DummyERC20Token { contract UntransferrableDummyERC20Token is DummyERC20Token {
constructor( constructor(
string memory _name, string memory _name,

View File

@ -83,12 +83,9 @@ contract ZrxTreasury is IZrxTreasury {
); );
} }
// solhint-disable
/// @dev Allows this contract to receive ether. /// @dev Allows this contract to receive ether.
receive() external payable {} receive() external payable {}
// solhint-enable
/// @dev Updates the proposal and quorum thresholds to the given /// @dev Updates the proposal and quorum thresholds to the given
/// values. Note that this function is only callable by the /// values. Note that this function is only callable by the
/// treasury contract itself, so the threshold can only be /// treasury contract itself, so the threshold can only be

View File

@ -23,7 +23,6 @@ import "./LibAuthorizableRichErrors.sol";
import "./LibRichErrors.sol"; import "./LibRichErrors.sol";
import "./Ownable.sol"; import "./Ownable.sol";
// solhint-disable no-empty-blocks
contract Authorizable is Ownable, IAuthorizable { contract Authorizable is Ownable, IAuthorizable {
/// @dev Only authorized addresses can invoke functions with this modifier. /// @dev Only authorized addresses can invoke functions with this modifier.
modifier onlyAuthorized() { modifier onlyAuthorized() {

View File

@ -19,8 +19,6 @@
pragma solidity ^0.5.9; pragma solidity ^0.5.9;
contract DeploymentConstants { contract DeploymentConstants {
// solhint-disable separate-by-one-line-in-contract
// Mainnet addresses /////////////////////////////////////////////////////// // Mainnet addresses ///////////////////////////////////////////////////////
/// @dev Mainnet address of the WETH contract. /// @dev Mainnet address of the WETH contract.
address private constant WETH_ADDRESS = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address private constant WETH_ADDRESS = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
@ -60,93 +58,93 @@ contract DeploymentConstants {
address private constant DODO_HELPER = 0x533dA777aeDCE766CEAe696bf90f8541A4bA80Eb; address private constant DODO_HELPER = 0x533dA777aeDCE766CEAe696bf90f8541A4bA80Eb;
// // Ropsten addresses /////////////////////////////////////////////////////// // // Ropsten addresses ///////////////////////////////////////////////////////
// /// @dev Mainnet address of the WETH contract. /// @dev Mainnet address of the WETH contract.
// address constant private WETH_ADDRESS = 0xc778417E063141139Fce010982780140Aa0cD5Ab; // address constant private WETH_ADDRESS = 0xc778417E063141139Fce010982780140Aa0cD5Ab;
// /// @dev Mainnet address of the KyberNetworkProxy contract. /// @dev Mainnet address of the KyberNetworkProxy contract.
// address constant private KYBER_NETWORK_PROXY_ADDRESS = 0xd719c34261e099Fdb33030ac8909d5788D3039C4; // address constant private KYBER_NETWORK_PROXY_ADDRESS = 0xd719c34261e099Fdb33030ac8909d5788D3039C4;
// /// @dev Mainnet address of the `UniswapExchangeFactory` contract. /// @dev Mainnet address of the `UniswapExchangeFactory` contract.
// address constant private UNISWAP_EXCHANGE_FACTORY_ADDRESS = 0x9c83dCE8CA20E9aAF9D3efc003b2ea62aBC08351; // address constant private UNISWAP_EXCHANGE_FACTORY_ADDRESS = 0x9c83dCE8CA20E9aAF9D3efc003b2ea62aBC08351;
// /// @dev Mainnet address of the `UniswapV2Router01` contract. /// @dev Mainnet address of the `UniswapV2Router01` contract.
// address constant private UNISWAP_V2_ROUTER_01_ADDRESS = 0xf164fC0Ec4E93095b804a4795bBe1e041497b92a; // address constant private UNISWAP_V2_ROUTER_01_ADDRESS = 0xf164fC0Ec4E93095b804a4795bBe1e041497b92a;
// /// @dev Mainnet address of the Eth2Dai `MatchingMarket` contract. /// @dev Mainnet address of the Eth2Dai `MatchingMarket` contract.
// address constant private ETH2DAI_ADDRESS = address(0); // address constant private ETH2DAI_ADDRESS = address(0);
// /// @dev Mainnet address of the `ERC20BridgeProxy` contract /// @dev Mainnet address of the `ERC20BridgeProxy` contract
// address constant private ERC20_BRIDGE_PROXY_ADDRESS = 0xb344afeD348de15eb4a9e180205A2B0739628339; // address constant private ERC20_BRIDGE_PROXY_ADDRESS = 0xb344afeD348de15eb4a9e180205A2B0739628339;
// ///@dev Mainnet address of the `Dai` (multi-collateral) contract // ///@dev Mainnet address of the `Dai` (multi-collateral) contract
// address constant private DAI_ADDRESS = address(0); // address constant private DAI_ADDRESS = address(0);
// /// @dev Mainnet address of the `Chai` contract /// @dev Mainnet address of the `Chai` contract
// address constant private CHAI_ADDRESS = address(0); // address constant private CHAI_ADDRESS = address(0);
// /// @dev Mainnet address of the 0x DevUtils contract. /// @dev Mainnet address of the 0x DevUtils contract.
// address constant private DEV_UTILS_ADDRESS = 0xC812AF3f3fBC62F76ea4262576EC0f49dB8B7f1c; // address constant private DEV_UTILS_ADDRESS = 0xC812AF3f3fBC62F76ea4262576EC0f49dB8B7f1c;
// /// @dev Kyber ETH pseudo-address. /// @dev Kyber ETH pseudo-address.
// address constant internal KYBER_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; // address constant internal KYBER_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
// /// @dev Mainnet address of the dYdX contract. /// @dev Mainnet address of the dYdX contract.
// address constant private DYDX_ADDRESS = address(0); // address constant private DYDX_ADDRESS = address(0);
// /// @dev Mainnet address of the GST2 contract /// @dev Mainnet address of the GST2 contract
// address constant private GST_ADDRESS = address(0); // address constant private GST_ADDRESS = address(0);
// /// @dev Mainnet address of the GST Collector /// @dev Mainnet address of the GST Collector
// address constant private GST_COLLECTOR_ADDRESS = address(0); // address constant private GST_COLLECTOR_ADDRESS = address(0);
// /// @dev Mainnet address of the mStable mUSD contract. /// @dev Mainnet address of the mStable mUSD contract.
// address constant private MUSD_ADDRESS = 0x4E1000616990D83e56f4b5fC6CC8602DcfD20459; // address constant private MUSD_ADDRESS = 0x4E1000616990D83e56f4b5fC6CC8602DcfD20459;
// // Rinkeby addresses /////////////////////////////////////////////////////// // // Rinkeby addresses ///////////////////////////////////////////////////////
// /// @dev Mainnet address of the WETH contract. /// @dev Mainnet address of the WETH contract.
// address constant private WETH_ADDRESS = 0xc778417E063141139Fce010982780140Aa0cD5Ab; // address constant private WETH_ADDRESS = 0xc778417E063141139Fce010982780140Aa0cD5Ab;
// /// @dev Mainnet address of the KyberNetworkProxy contract. /// @dev Mainnet address of the KyberNetworkProxy contract.
// address constant private KYBER_NETWORK_PROXY_ADDRESS = 0x0d5371e5EE23dec7DF251A8957279629aa79E9C5; // address constant private KYBER_NETWORK_PROXY_ADDRESS = 0x0d5371e5EE23dec7DF251A8957279629aa79E9C5;
// /// @dev Mainnet address of the `UniswapExchangeFactory` contract. /// @dev Mainnet address of the `UniswapExchangeFactory` contract.
// address constant private UNISWAP_EXCHANGE_FACTORY_ADDRESS = 0xf5D915570BC477f9B8D6C0E980aA81757A3AaC36; // address constant private UNISWAP_EXCHANGE_FACTORY_ADDRESS = 0xf5D915570BC477f9B8D6C0E980aA81757A3AaC36;
// /// @dev Mainnet address of the `UniswapV2Router01` contract. /// @dev Mainnet address of the `UniswapV2Router01` contract.
// address constant private UNISWAP_V2_ROUTER_01_ADDRESS = 0xf164fC0Ec4E93095b804a4795bBe1e041497b92a; // address constant private UNISWAP_V2_ROUTER_01_ADDRESS = 0xf164fC0Ec4E93095b804a4795bBe1e041497b92a;
// /// @dev Mainnet address of the Eth2Dai `MatchingMarket` contract. /// @dev Mainnet address of the Eth2Dai `MatchingMarket` contract.
// address constant private ETH2DAI_ADDRESS = address(0); // address constant private ETH2DAI_ADDRESS = address(0);
// /// @dev Mainnet address of the `ERC20BridgeProxy` contract /// @dev Mainnet address of the `ERC20BridgeProxy` contract
// address constant private ERC20_BRIDGE_PROXY_ADDRESS = 0xA2AA4bEFED748Fba27a3bE7Dfd2C4b2c6DB1F49B; // address constant private ERC20_BRIDGE_PROXY_ADDRESS = 0xA2AA4bEFED748Fba27a3bE7Dfd2C4b2c6DB1F49B;
// ///@dev Mainnet address of the `Dai` (multi-collateral) contract // ///@dev Mainnet address of the `Dai` (multi-collateral) contract
// address constant private DAI_ADDRESS = address(0); // address constant private DAI_ADDRESS = address(0);
// /// @dev Mainnet address of the `Chai` contract /// @dev Mainnet address of the `Chai` contract
// address constant private CHAI_ADDRESS = address(0); // address constant private CHAI_ADDRESS = address(0);
// /// @dev Mainnet address of the 0x DevUtils contract. /// @dev Mainnet address of the 0x DevUtils contract.
// address constant private DEV_UTILS_ADDRESS = 0x46B5BC959e8A754c0256FFF73bF34A52Ad5CdfA9; // address constant private DEV_UTILS_ADDRESS = 0x46B5BC959e8A754c0256FFF73bF34A52Ad5CdfA9;
// /// @dev Kyber ETH pseudo-address. /// @dev Kyber ETH pseudo-address.
// address constant internal KYBER_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; // address constant internal KYBER_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
// /// @dev Mainnet address of the dYdX contract. /// @dev Mainnet address of the dYdX contract.
// address constant private DYDX_ADDRESS = address(0); // address constant private DYDX_ADDRESS = address(0);
// /// @dev Mainnet address of the GST2 contract /// @dev Mainnet address of the GST2 contract
// address constant private GST_ADDRESS = address(0); // address constant private GST_ADDRESS = address(0);
// /// @dev Mainnet address of the GST Collector /// @dev Mainnet address of the GST Collector
// address constant private GST_COLLECTOR_ADDRESS = address(0); // address constant private GST_COLLECTOR_ADDRESS = address(0);
// /// @dev Mainnet address of the mStable mUSD contract. /// @dev Mainnet address of the mStable mUSD contract.
// address constant private MUSD_ADDRESS = address(0); // address constant private MUSD_ADDRESS = address(0);
// // Kovan addresses ///////////////////////////////////////////////////////// // // Kovan addresses /////////////////////////////////////////////////////////
// /// @dev Kovan address of the WETH contract. /// @dev Kovan address of the WETH contract.
// address constant private WETH_ADDRESS = 0xd0A1E359811322d97991E03f863a0C30C2cF029C; // address constant private WETH_ADDRESS = 0xd0A1E359811322d97991E03f863a0C30C2cF029C;
// /// @dev Kovan address of the KyberNetworkProxy contract. /// @dev Kovan address of the KyberNetworkProxy contract.
// address constant private KYBER_NETWORK_PROXY_ADDRESS = 0x692f391bCc85cefCe8C237C01e1f636BbD70EA4D; // address constant private KYBER_NETWORK_PROXY_ADDRESS = 0x692f391bCc85cefCe8C237C01e1f636BbD70EA4D;
// /// @dev Kovan address of the `UniswapExchangeFactory` contract. /// @dev Kovan address of the `UniswapExchangeFactory` contract.
// address constant private UNISWAP_EXCHANGE_FACTORY_ADDRESS = 0xD3E51Ef092B2845f10401a0159B2B96e8B6c3D30; // address constant private UNISWAP_EXCHANGE_FACTORY_ADDRESS = 0xD3E51Ef092B2845f10401a0159B2B96e8B6c3D30;
// /// @dev Kovan address of the `UniswapV2Router01` contract. /// @dev Kovan address of the `UniswapV2Router01` contract.
// address constant private UNISWAP_V2_ROUTER_01_ADDRESS = 0xf164fC0Ec4E93095b804a4795bBe1e041497b92a; // address constant private UNISWAP_V2_ROUTER_01_ADDRESS = 0xf164fC0Ec4E93095b804a4795bBe1e041497b92a;
// /// @dev Kovan address of the Eth2Dai `MatchingMarket` contract. /// @dev Kovan address of the Eth2Dai `MatchingMarket` contract.
// address constant private ETH2DAI_ADDRESS = 0xe325acB9765b02b8b418199bf9650972299235F4; // address constant private ETH2DAI_ADDRESS = 0xe325acB9765b02b8b418199bf9650972299235F4;
// /// @dev Kovan address of the `ERC20BridgeProxy` contract /// @dev Kovan address of the `ERC20BridgeProxy` contract
// address constant private ERC20_BRIDGE_PROXY_ADDRESS = 0x3577552C1Fb7A44aD76BeEB7aB53251668A21F8D; // address constant private ERC20_BRIDGE_PROXY_ADDRESS = 0x3577552C1Fb7A44aD76BeEB7aB53251668A21F8D;
// /// @dev Kovan address of the `Chai` contract /// @dev Kovan address of the `Chai` contract
// address constant private CHAI_ADDRESS = address(0); // address constant private CHAI_ADDRESS = address(0);
// /// @dev Kovan address of the `Dai` (multi-collateral) contract /// @dev Kovan address of the `Dai` (multi-collateral) contract
// address constant private DAI_ADDRESS = 0x4F96Fe3b7A6Cf9725f59d353F723c1bDb64CA6Aa; // address constant private DAI_ADDRESS = 0x4F96Fe3b7A6Cf9725f59d353F723c1bDb64CA6Aa;
// /// @dev Kovan address of the 0x DevUtils contract. /// @dev Kovan address of the 0x DevUtils contract.
// address constant private DEV_UTILS_ADDRESS = 0x9402639A828BdF4E9e4103ac3B69E1a6E522eB59; // address constant private DEV_UTILS_ADDRESS = 0x9402639A828BdF4E9e4103ac3B69E1a6E522eB59;
// /// @dev Kyber ETH pseudo-address. /// @dev Kyber ETH pseudo-address.
// address constant internal KYBER_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; // address constant internal KYBER_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
// /// @dev Kovan address of the dYdX contract. /// @dev Kovan address of the dYdX contract.
// address constant private DYDX_ADDRESS = address(0); // address constant private DYDX_ADDRESS = address(0);
// /// @dev Kovan address of the GST2 contract /// @dev Kovan address of the GST2 contract
// address constant private GST_ADDRESS = address(0); // address constant private GST_ADDRESS = address(0);
// /// @dev Kovan address of the GST Collector /// @dev Kovan address of the GST Collector
// address constant private GST_COLLECTOR_ADDRESS = address(0); // address constant private GST_COLLECTOR_ADDRESS = address(0);
// /// @dev Mainnet address of the mStable mUSD contract. /// @dev Mainnet address of the mStable mUSD contract.
// address constant private MUSD_ADDRESS = address(0); // address constant private MUSD_ADDRESS = address(0);
/// @dev Overridable way to get the `KyberNetworkProxy` address. /// @dev Overridable way to get the `KyberNetworkProxy` address.

View File

@ -22,7 +22,6 @@ library LibAddressArrayRichErrors {
// bytes4(keccak256("MismanagedMemoryError(uint256,uint256)")) // bytes4(keccak256("MismanagedMemoryError(uint256,uint256)"))
bytes4 internal constant MISMANAGED_MEMORY_ERROR_SELECTOR = 0x5fc83722; bytes4 internal constant MISMANAGED_MEMORY_ERROR_SELECTOR = 0x5fc83722;
// solhint-disable func-name-mixedcase
function MismanagedMemoryError(uint256 freeMemPtr, uint256 addressArrayEndPtr) function MismanagedMemoryError(uint256 freeMemPtr, uint256 addressArrayEndPtr)
internal internal
pure pure

View File

@ -37,7 +37,6 @@ library LibAuthorizableRichErrors {
// bytes4(keccak256("ZeroCantBeAuthorizedError()")) // bytes4(keccak256("ZeroCantBeAuthorizedError()"))
bytes internal constant ZERO_CANT_BE_AUTHORIZED_ERROR_BYTES = hex"57654fe4"; bytes internal constant ZERO_CANT_BE_AUTHORIZED_ERROR_BYTES = hex"57654fe4";
// solhint-disable func-name-mixedcase
function AuthorizedAddressMismatchError(address authorized, address target) internal pure returns (bytes memory) { function AuthorizedAddressMismatchError(address authorized, address target) internal pure returns (bytes memory) {
return abi.encodeWithSelector(AUTHORIZED_ADDRESS_MISMATCH_ERROR_SELECTOR, authorized, target); return abi.encodeWithSelector(AUTHORIZED_ADDRESS_MISMATCH_ERROR_SELECTOR, authorized, target);
} }

View File

@ -105,7 +105,6 @@ library LibBytes {
// Copy whole words front to back // Copy whole words front to back
// Note: the first check is always true, // Note: the first check is always true,
// this could have been a do-while loop. // this could have been a do-while loop.
// solhint-disable-next-line no-empty-blocks
for { for {
} lt(source, sEnd) { } lt(source, sEnd) {
@ -140,7 +139,6 @@ library LibBytes {
// 2**255, so they can be safely re-interpreted as signed. // 2**255, so they can be safely re-interpreted as signed.
// Note: the first check is always true, // Note: the first check is always true,
// this could have been a do-while loop. // this could have been a do-while loop.
// solhint-disable-next-line no-empty-blocks
for { for {
} slt(dest, dEnd) { } slt(dest, dEnd) {

View File

@ -33,7 +33,6 @@ library LibBytesRichErrors {
// bytes4(keccak256("InvalidByteOperationError(uint8,uint256,uint256)")) // bytes4(keccak256("InvalidByteOperationError(uint8,uint256,uint256)"))
bytes4 internal constant INVALID_BYTE_OPERATION_ERROR_SELECTOR = 0x28006595; bytes4 internal constant INVALID_BYTE_OPERATION_ERROR_SELECTOR = 0x28006595;
// solhint-disable func-name-mixedcase
function InvalidByteOperationError( function InvalidByteOperationError(
InvalidByteOperationErrorCodes errorCode, InvalidByteOperationErrorCodes errorCode,
uint256 offset, uint256 offset,

View File

@ -7,7 +7,6 @@ library LibMathRichErrors {
// bytes4(keccak256("RoundingError(uint256,uint256,uint256)")) // bytes4(keccak256("RoundingError(uint256,uint256,uint256)"))
bytes4 internal constant ROUNDING_ERROR_SELECTOR = 0x339f3de2; bytes4 internal constant ROUNDING_ERROR_SELECTOR = 0x339f3de2;
// solhint-disable func-name-mixedcase
function DivisionByZeroError() internal pure returns (bytes memory) { function DivisionByZeroError() internal pure returns (bytes memory) {
return DIVISION_BY_ZERO_ERROR; return DIVISION_BY_ZERO_ERROR;
} }

View File

@ -7,7 +7,6 @@ library LibOwnableRichErrors {
// bytes4(keccak256("TransferOwnerToZeroError()")) // bytes4(keccak256("TransferOwnerToZeroError()"))
bytes internal constant TRANSFER_OWNER_TO_ZERO_ERROR_BYTES = hex"e69edc3e"; bytes internal constant TRANSFER_OWNER_TO_ZERO_ERROR_BYTES = hex"e69edc3e";
// solhint-disable func-name-mixedcase
function OnlyOwnerError(address sender, address owner) internal pure returns (bytes memory) { function OnlyOwnerError(address sender, address owner) internal pure returns (bytes memory) {
return abi.encodeWithSelector(ONLY_OWNER_ERROR_SELECTOR, sender, owner); return abi.encodeWithSelector(ONLY_OWNER_ERROR_SELECTOR, sender, owner);
} }

View File

@ -22,7 +22,6 @@ library LibReentrancyGuardRichErrors {
// bytes4(keccak256("IllegalReentrancyError()")) // bytes4(keccak256("IllegalReentrancyError()"))
bytes internal constant ILLEGAL_REENTRANCY_ERROR_SELECTOR_BYTES = hex"0c3b823f"; bytes internal constant ILLEGAL_REENTRANCY_ERROR_SELECTOR_BYTES = hex"0c3b823f";
// solhint-disable func-name-mixedcase
function IllegalReentrancyError() internal pure returns (bytes memory) { function IllegalReentrancyError() internal pure returns (bytes memory) {
return ILLEGAL_REENTRANCY_ERROR_SELECTOR_BYTES; return ILLEGAL_REENTRANCY_ERROR_SELECTOR_BYTES;
} }

View File

@ -22,7 +22,6 @@ library LibRichErrors {
// bytes4(keccak256("Error(string)")) // bytes4(keccak256("Error(string)"))
bytes4 internal constant STANDARD_ERROR_SELECTOR = 0x08c379a0; bytes4 internal constant STANDARD_ERROR_SELECTOR = 0x08c379a0;
// solhint-disable func-name-mixedcase
/// @dev ABI encode a standard, string revert error payload. /// @dev ABI encode a standard, string revert error payload.
/// This is the same payload that would be included by a `revert(string)` /// This is the same payload that would be included by a `revert(string)`
/// solidity statement. It has the function signature `Error(string)`. /// solidity statement. It has the function signature `Error(string)`.
@ -32,8 +31,6 @@ library LibRichErrors {
return abi.encodeWithSelector(STANDARD_ERROR_SELECTOR, bytes(message)); return abi.encodeWithSelector(STANDARD_ERROR_SELECTOR, bytes(message));
} }
// solhint-enable func-name-mixedcase
/// @dev Reverts an encoded rich revert reason `errorData`. /// @dev Reverts an encoded rich revert reason `errorData`.
/// @param errorData ABI encoded error data. /// @param errorData ABI encoded error data.
function rrevert(bytes memory errorData) internal pure { function rrevert(bytes memory errorData) internal pure {

View File

@ -20,7 +20,6 @@ library LibSafeMathRichErrors {
VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT96 VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT96
} }
// solhint-disable func-name-mixedcase
function Uint256BinOpError( function Uint256BinOpError(
BinOpErrorCodes errorCode, BinOpErrorCodes errorCode,
uint256 a, uint256 a,

View File

@ -24,7 +24,6 @@ import "./errors/LibRichErrorsV06.sol";
import "./errors/LibAuthorizableRichErrorsV06.sol"; import "./errors/LibAuthorizableRichErrorsV06.sol";
import "./OwnableV06.sol"; import "./OwnableV06.sol";
// solhint-disable no-empty-blocks
contract AuthorizableV06 is OwnableV06, IAuthorizableV06 { contract AuthorizableV06 is OwnableV06, IAuthorizableV06 {
/// @dev Only authorized addresses can invoke functions with this modifier. /// @dev Only authorized addresses can invoke functions with this modifier.
modifier onlyAuthorized() { modifier onlyAuthorized() {

View File

@ -106,7 +106,6 @@ library LibBytesV06 {
// Copy whole words front to back // Copy whole words front to back
// Note: the first check is always true, // Note: the first check is always true,
// this could have been a do-while loop. // this could have been a do-while loop.
// solhint-disable-next-line no-empty-blocks
for { for {
} lt(source, sEnd) { } lt(source, sEnd) {
@ -141,7 +140,6 @@ library LibBytesV06 {
// 2**255, so they can be safely re-interpreted as signed. // 2**255, so they can be safely re-interpreted as signed.
// Note: the first check is always true, // Note: the first check is always true,
// this could have been a do-while loop. // this could have been a do-while loop.
// solhint-disable-next-line no-empty-blocks
for { for {
} slt(dest, dEnd) { } slt(dest, dEnd) {

View File

@ -38,7 +38,6 @@ library LibAuthorizableRichErrorsV06 {
// bytes4(keccak256("ZeroCantBeAuthorizedError()")) // bytes4(keccak256("ZeroCantBeAuthorizedError()"))
bytes internal constant ZERO_CANT_BE_AUTHORIZED_ERROR_BYTES = hex"57654fe4"; bytes internal constant ZERO_CANT_BE_AUTHORIZED_ERROR_BYTES = hex"57654fe4";
// solhint-disable func-name-mixedcase
function AuthorizedAddressMismatchError(address authorized, address target) internal pure returns (bytes memory) { function AuthorizedAddressMismatchError(address authorized, address target) internal pure returns (bytes memory) {
return abi.encodeWithSelector(AUTHORIZED_ADDRESS_MISMATCH_ERROR_SELECTOR, authorized, target); return abi.encodeWithSelector(AUTHORIZED_ADDRESS_MISMATCH_ERROR_SELECTOR, authorized, target);
} }

View File

@ -34,7 +34,6 @@ library LibBytesRichErrorsV06 {
// bytes4(keccak256("InvalidByteOperationError(uint8,uint256,uint256)")) // bytes4(keccak256("InvalidByteOperationError(uint8,uint256,uint256)"))
bytes4 internal constant INVALID_BYTE_OPERATION_ERROR_SELECTOR = 0x28006595; bytes4 internal constant INVALID_BYTE_OPERATION_ERROR_SELECTOR = 0x28006595;
// solhint-disable func-name-mixedcase
function InvalidByteOperationError( function InvalidByteOperationError(
InvalidByteOperationErrorCodes errorCode, InvalidByteOperationErrorCodes errorCode,
uint256 offset, uint256 offset,

View File

@ -26,7 +26,6 @@ library LibMathRichErrorsV06 {
// bytes4(keccak256("RoundingError(uint256,uint256,uint256)")) // bytes4(keccak256("RoundingError(uint256,uint256,uint256)"))
bytes4 internal constant ROUNDING_ERROR_SELECTOR = 0x339f3de2; bytes4 internal constant ROUNDING_ERROR_SELECTOR = 0x339f3de2;
// solhint-disable func-name-mixedcase
function DivisionByZeroError() internal pure returns (bytes memory) { function DivisionByZeroError() internal pure returns (bytes memory) {
return DIVISION_BY_ZERO_ERROR; return DIVISION_BY_ZERO_ERROR;
} }

View File

@ -25,7 +25,6 @@ library LibOwnableRichErrorsV06 {
// bytes4(keccak256("TransferOwnerToZeroError()")) // bytes4(keccak256("TransferOwnerToZeroError()"))
bytes internal constant TRANSFER_OWNER_TO_ZERO_ERROR_BYTES = hex"e69edc3e"; bytes internal constant TRANSFER_OWNER_TO_ZERO_ERROR_BYTES = hex"e69edc3e";
// solhint-disable func-name-mixedcase
function OnlyOwnerError(address sender, address owner) internal pure returns (bytes memory) { function OnlyOwnerError(address sender, address owner) internal pure returns (bytes memory) {
return abi.encodeWithSelector(ONLY_OWNER_ERROR_SELECTOR, sender, owner); return abi.encodeWithSelector(ONLY_OWNER_ERROR_SELECTOR, sender, owner);
} }

View File

@ -23,7 +23,6 @@ library LibReentrancyGuardRichErrorsV06 {
// bytes4(keccak256("IllegalReentrancyError()")) // bytes4(keccak256("IllegalReentrancyError()"))
bytes internal constant ILLEGAL_REENTRANCY_ERROR_SELECTOR_BYTES = hex"0c3b823f"; bytes internal constant ILLEGAL_REENTRANCY_ERROR_SELECTOR_BYTES = hex"0c3b823f";
// solhint-disable func-name-mixedcase
function IllegalReentrancyError() internal pure returns (bytes memory) { function IllegalReentrancyError() internal pure returns (bytes memory) {
return ILLEGAL_REENTRANCY_ERROR_SELECTOR_BYTES; return ILLEGAL_REENTRANCY_ERROR_SELECTOR_BYTES;
} }

View File

@ -23,7 +23,6 @@ library LibRichErrorsV06 {
// bytes4(keccak256("Error(string)")) // bytes4(keccak256("Error(string)"))
bytes4 internal constant STANDARD_ERROR_SELECTOR = 0x08c379a0; bytes4 internal constant STANDARD_ERROR_SELECTOR = 0x08c379a0;
// solhint-disable func-name-mixedcase
/// @dev ABI encode a standard, string revert error payload. /// @dev ABI encode a standard, string revert error payload.
/// This is the same payload that would be included by a `revert(string)` /// This is the same payload that would be included by a `revert(string)`
/// solidity statement. It has the function signature `Error(string)`. /// solidity statement. It has the function signature `Error(string)`.
@ -33,8 +32,6 @@ library LibRichErrorsV06 {
return abi.encodeWithSelector(STANDARD_ERROR_SELECTOR, bytes(message)); return abi.encodeWithSelector(STANDARD_ERROR_SELECTOR, bytes(message));
} }
// solhint-enable func-name-mixedcase
/// @dev Reverts an encoded rich revert reason `errorData`. /// @dev Reverts an encoded rich revert reason `errorData`.
/// @param errorData ABI encoded error data. /// @param errorData ABI encoded error data.
function rrevert(bytes memory errorData) internal pure { function rrevert(bytes memory errorData) internal pure {

View File

@ -40,7 +40,6 @@ library LibSafeMathRichErrorsV06 {
VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT128 VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT128
} }
// solhint-disable func-name-mixedcase
function Uint256BinOpError( function Uint256BinOpError(
BinOpErrorCodes errorCode, BinOpErrorCodes errorCode,
uint256 a, uint256 a,

View File

@ -20,7 +20,6 @@ pragma solidity ^0.5.9;
import "../src/Authorizable.sol"; import "../src/Authorizable.sol";
// solhint-disable no-empty-blocks
contract TestAuthorizable is Authorizable { contract TestAuthorizable is Authorizable {
function onlyAuthorizedFn() external view onlyAuthorized {} function onlyAuthorizedFn() external view onlyAuthorized {}
} }

View File

@ -33,9 +33,9 @@ contract TestRefundable is Refundable {
return _shouldNotRefund; return _shouldNotRefund;
} }
function refundFinalBalanceFunction() public payable refundFinalBalance {} // solhint-disable-line no-empty-blocks function refundFinalBalanceFunction() public payable refundFinalBalance {}
function disableRefundUntilEndFunction() public payable disableRefundUntilEnd {} // solhint-disable-line no-empty-blocks function disableRefundUntilEndFunction() public payable disableRefundUntilEnd {}
function nestedDisableRefundUntilEndFunction() public payable disableRefundUntilEnd returns (uint256) { function nestedDisableRefundUntilEndFunction() public payable disableRefundUntilEnd returns (uint256) {
disableRefundUntilEndFunction(); disableRefundUntilEndFunction();

View File

@ -57,8 +57,6 @@ interface IZeroEx is
IERC1155OrdersFeature, IERC1155OrdersFeature,
IERC165Feature IERC165Feature
{ {
// solhint-disable state-visibility
/// @dev Fallback for just receiving ether. /// @dev Fallback for just receiving ether.
receive() external payable; receive() external payable;
} }

View File

@ -29,7 +29,6 @@ import "./errors/LibProxyRichErrors.sol";
/// @dev An extensible proxy contract that serves as a universal entry point for /// @dev An extensible proxy contract that serves as a universal entry point for
/// interacting with the 0x protocol. /// interacting with the 0x protocol.
contract ZeroEx { contract ZeroEx {
// solhint-disable separate-by-one-line-in-contract,indent,var-name-mixedcase
using LibBytesV06 for bytes; using LibBytesV06 for bytes;
/// @dev Construct this contract and register the `BootstrapFeature` feature. /// @dev Construct this contract and register the `BootstrapFeature` feature.
@ -43,8 +42,6 @@ contract ZeroEx {
LibProxyStorage.getStorage().impls[bootstrap.bootstrap.selector] = address(bootstrap); LibProxyStorage.getStorage().impls[bootstrap.bootstrap.selector] = address(bootstrap);
} }
// solhint-disable state-visibility
/// @dev Forwards calls to the appropriate implementation contract. /// @dev Forwards calls to the appropriate implementation contract.
fallback() external payable { fallback() external payable {
bytes4 selector = msg.data.readBytes4(0); bytes4 selector = msg.data.readBytes4(0);
@ -63,8 +60,6 @@ contract ZeroEx {
/// @dev Fallback for just receiving ether. /// @dev Fallback for just receiving ether.
receive() external payable {} receive() external payable {}
// solhint-enable state-visibility
/// @dev Get the implementation contract of a registered function. /// @dev Get the implementation contract of a registered function.
/// @param selector The function selector. /// @param selector The function selector.
/// @return impl The implementation contract address. /// @return impl The implementation contract address.

View File

@ -37,8 +37,6 @@ contract ZeroExOptimized {
LibProxyStorage.getStorage().impls[bootstrap.bootstrap.selector] = address(bootstrap); LibProxyStorage.getStorage().impls[bootstrap.bootstrap.selector] = address(bootstrap);
} }
// solhint-disable state-visibility
/// @dev Forwards calls to the appropriate implementation contract. /// @dev Forwards calls to the appropriate implementation contract.
fallback() external payable { fallback() external payable {
// This is used in assembly below as impls_slot. // This is used in assembly below as impls_slot.

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibCommonRichErrors { library LibCommonRichErrors {
// solhint-disable func-name-mixedcase
function OnlyCallableBySelfError(address sender) internal pure returns (bytes memory) { function OnlyCallableBySelfError(address sender) internal pure returns (bytes memory) {
return abi.encodeWithSelector(bytes4(keccak256("OnlyCallableBySelfError(address)")), sender); return abi.encodeWithSelector(bytes4(keccak256("OnlyCallableBySelfError(address)")), sender);
} }

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibLiquidityProviderRichErrors { library LibLiquidityProviderRichErrors {
// solhint-disable func-name-mixedcase
function LiquidityProviderIncompleteSellError( function LiquidityProviderIncompleteSellError(
address providerAddress, address providerAddress,
address makerToken, address makerToken,

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibMetaTransactionsRichErrors { library LibMetaTransactionsRichErrors {
// solhint-disable func-name-mixedcase
function InvalidMetaTransactionsArrayLengthsError(uint256 mtxCount, uint256 signatureCount) function InvalidMetaTransactionsArrayLengthsError(uint256 mtxCount, uint256 signatureCount)
internal internal
pure pure

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibNFTOrdersRichErrors { library LibNFTOrdersRichErrors {
// solhint-disable func-name-mixedcase
function OverspentEthError(uint256 ethSpent, uint256 ethAvailable) internal pure returns (bytes memory) { function OverspentEthError(uint256 ethSpent, uint256 ethAvailable) internal pure returns (bytes memory) {
return abi.encodeWithSelector(bytes4(keccak256("OverspentEthError(uint256,uint256)")), ethSpent, ethAvailable); return abi.encodeWithSelector(bytes4(keccak256("OverspentEthError(uint256,uint256)")), ethSpent, ethAvailable);
} }

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibNativeOrdersRichErrors { library LibNativeOrdersRichErrors {
// solhint-disable func-name-mixedcase
function ProtocolFeeRefundFailed(address receiver, uint256 refundAmount) internal pure returns (bytes memory) { function ProtocolFeeRefundFailed(address receiver, uint256 refundAmount) internal pure returns (bytes memory) {
return return
abi.encodeWithSelector( abi.encodeWithSelector(

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibOwnableRichErrors { library LibOwnableRichErrors {
// solhint-disable func-name-mixedcase
function OnlyOwnerError(address sender, address owner) internal pure returns (bytes memory) { function OnlyOwnerError(address sender, address owner) internal pure returns (bytes memory) {
return abi.encodeWithSelector(bytes4(keccak256("OnlyOwnerError(address,address)")), sender, owner); return abi.encodeWithSelector(bytes4(keccak256("OnlyOwnerError(address,address)")), sender, owner);
} }

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibProxyRichErrors { library LibProxyRichErrors {
// solhint-disable func-name-mixedcase
function NotImplementedError(bytes4 selector) internal pure returns (bytes memory) { function NotImplementedError(bytes4 selector) internal pure returns (bytes memory) {
return abi.encodeWithSelector(bytes4(keccak256("NotImplementedError(bytes4)")), selector); return abi.encodeWithSelector(bytes4(keccak256("NotImplementedError(bytes4)")), selector);
} }

View File

@ -29,8 +29,6 @@ library LibSignatureRichErrors {
BAD_SIGNATURE_DATA BAD_SIGNATURE_DATA
} }
// solhint-disable func-name-mixedcase
function SignatureValidationError( function SignatureValidationError(
SignatureValidationErrorCodes code, SignatureValidationErrorCodes code,
bytes32 hash, bytes32 hash,

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibSimpleFunctionRegistryRichErrors { library LibSimpleFunctionRegistryRichErrors {
// solhint-disable func-name-mixedcase
function NotInRollbackHistoryError(bytes4 selector, address targetImpl) internal pure returns (bytes memory) { function NotInRollbackHistoryError(bytes4 selector, address targetImpl) internal pure returns (bytes memory) {
return return
abi.encodeWithSelector( abi.encodeWithSelector(

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibTransformERC20RichErrors { library LibTransformERC20RichErrors {
// solhint-disable func-name-mixedcase,separate-by-one-line-in-contract
function InsufficientEthAttachedError(uint256 ethAttached, uint256 ethNeeded) internal pure returns (bytes memory) { function InsufficientEthAttachedError(uint256 ethAttached, uint256 ethNeeded) internal pure returns (bytes memory) {
return return
abi.encodeWithSelector( abi.encodeWithSelector(

View File

@ -20,8 +20,6 @@
pragma solidity ^0.6.5; pragma solidity ^0.6.5;
library LibWalletRichErrors { library LibWalletRichErrors {
// solhint-disable func-name-mixedcase
function WalletExecuteCallFailedError( function WalletExecuteCallFailedError(
address wallet, address wallet,
address callTarget, address callTarget,

View File

@ -27,15 +27,11 @@ import "./IFlashWallet.sol";
/// @dev A contract that can execute arbitrary calls from its owner. /// @dev A contract that can execute arbitrary calls from its owner.
contract FlashWallet is IFlashWallet { contract FlashWallet is IFlashWallet {
// solhint-disable no-unused-vars,indent,no-empty-blocks
using LibRichErrorsV06 for bytes; using LibRichErrorsV06 for bytes;
// solhint-disable
/// @dev Store the owner/deployer as an immutable to make this contract stateless. /// @dev Store the owner/deployer as an immutable to make this contract stateless.
address public immutable override owner; address public immutable override owner;
// solhint-enable
constructor() public { constructor() public {
// The deployer is the owner. // The deployer is the owner.
owner = msg.sender; owner = msg.sender;
@ -89,12 +85,9 @@ contract FlashWallet is IFlashWallet {
} }
} }
// solhint-disable
/// @dev Allows this contract to receive ether. /// @dev Allows this contract to receive ether.
receive() external payable override {} receive() external payable override {}
// solhint-enable
/// @dev Signal support for receiving ERC1155 tokens. /// @dev Signal support for receiving ERC1155 tokens.
/// @param interfaceID The interface ID, as per ERC-165 rules. /// @param interfaceID The interface ID, as per ERC-165 rules.
/// @return hasSupport `true` if this contract supports an ERC-165 interface. /// @return hasSupport `true` if this contract supports an ERC-165 interface.

View File

@ -44,9 +44,7 @@ contract BatchFillNativeOrdersFeature is IFeature, IBatchFillNativeOrdersFeature
/// @dev Version of this feature. /// @dev Version of this feature.
uint256 public immutable override FEATURE_VERSION = _encodeVersion(1, 1, 0); uint256 public immutable override FEATURE_VERSION = _encodeVersion(1, 1, 0);
constructor(address zeroExAddress) public FixinEIP712(zeroExAddress) { constructor(address zeroExAddress) public FixinEIP712(zeroExAddress) {}
// solhint-disable no-empty-blocks
}
/// @dev Initialize and register this feature. /// @dev Initialize and register this feature.
/// Should be delegatecalled by `Migrate.migrate()`. /// Should be delegatecalled by `Migrate.migrate()`.

View File

@ -27,7 +27,6 @@ import "./interfaces/IBootstrapFeature.sol";
/// @dev Detachable `bootstrap()` feature. /// @dev Detachable `bootstrap()` feature.
contract BootstrapFeature is IBootstrapFeature { contract BootstrapFeature is IBootstrapFeature {
// solhint-disable state-visibility,indent
/// @dev The ZeroEx contract. /// @dev The ZeroEx contract.
/// This has to be immutable to persist across delegatecalls. /// This has to be immutable to persist across delegatecalls.
address private immutable _deployer; address private immutable _deployer;
@ -37,7 +36,6 @@ contract BootstrapFeature is IBootstrapFeature {
/// @dev The deployer. /// @dev The deployer.
/// This has to be immutable to persist across delegatecalls. /// This has to be immutable to persist across delegatecalls.
address private immutable _bootstrapCaller; address private immutable _bootstrapCaller;
// solhint-enable state-visibility,indent
using LibRichErrorsV06 for bytes; using LibRichErrorsV06 for bytes;

View File

@ -113,9 +113,7 @@ contract MetaTransactionsFeature is
require(initialBalance <= address(this).balance, "MetaTransactionsFeature/ETH_LEAK"); require(initialBalance <= address(this).balance, "MetaTransactionsFeature/ETH_LEAK");
} }
constructor(address zeroExAddress) public FixinCommon() FixinEIP712(zeroExAddress) { constructor(address zeroExAddress) public FixinCommon() FixinEIP712(zeroExAddress) {}
// solhint-disable-next-line no-empty-blocks
}
/// @dev Initialize and register this feature. /// @dev Initialize and register this feature.
/// Should be delegatecalled by `Migrate.migrate()`. /// Should be delegatecalled by `Migrate.migrate()`.

View File

@ -38,9 +38,7 @@ contract NativeOrdersFeature is IFeature, NativeOrdersSettlement {
IStaking staking, IStaking staking,
FeeCollectorController feeCollectorController, FeeCollectorController feeCollectorController,
uint32 protocolFeeMultiplier uint32 protocolFeeMultiplier
) public NativeOrdersSettlement(zeroExAddress, weth, staking, feeCollectorController, protocolFeeMultiplier) { ) public NativeOrdersSettlement(zeroExAddress, weth, staking, feeCollectorController, protocolFeeMultiplier) {}
// solhint-disable no-empty-blocks
}
/// @dev Initialize and register this feature. /// @dev Initialize and register this feature.
/// Should be delegatecalled by `Migrate.migrate()`. /// Should be delegatecalled by `Migrate.migrate()`.

View File

@ -22,8 +22,6 @@ pragma experimental ABIEncoderV2;
/// @dev Basic interface for a feature contract. /// @dev Basic interface for a feature contract.
interface IFeature { interface IFeature {
// solhint-disable func-name-mixedcase
/// @dev The name of this feature set. /// @dev The name of this feature set.
function FEATURE_NAME() external view returns (string memory name); function FEATURE_NAME() external view returns (string memory name);

View File

@ -22,7 +22,6 @@ pragma experimental ABIEncoderV2;
import "@0x/contracts-utils/contracts/src/v06/interfaces/IOwnableV06.sol"; import "@0x/contracts-utils/contracts/src/v06/interfaces/IOwnableV06.sol";
// solhint-disable no-empty-blocks
/// @dev Owner management and migration features. /// @dev Owner management and migration features.
interface IOwnableFeature is IOwnableV06 { interface IOwnableFeature is IOwnableV06 {
/// @dev Emitted when `migrate()` is called. /// @dev Emitted when `migrate()` is called.

View File

@ -36,9 +36,7 @@ abstract contract NativeOrdersCancellation is INativeOrdersEvents, NativeOrdersI
/// @dev Highest bit of a uint256, used to flag cancelled orders. /// @dev Highest bit of a uint256, used to flag cancelled orders.
uint256 private constant HIGH_BIT = 1 << 255; uint256 private constant HIGH_BIT = 1 << 255;
constructor(address zeroExAddress) internal NativeOrdersInfo(zeroExAddress) { constructor(address zeroExAddress) internal NativeOrdersInfo(zeroExAddress) {}
// solhint-disable no-empty-blocks
}
/// @dev Cancel a single limit order. The caller must be the maker or a valid order signer. /// @dev Cancel a single limit order. The caller must be the maker or a valid order signer.
/// Silently succeeds if the order has already been cancelled. /// Silently succeeds if the order has already been cancelled.

View File

@ -46,9 +46,7 @@ abstract contract NativeOrdersInfo is FixinEIP712, FixinTokenSpender {
/// @dev Highest bit of a uint256, used to flag cancelled orders. /// @dev Highest bit of a uint256, used to flag cancelled orders.
uint256 private constant HIGH_BIT = 1 << 255; uint256 private constant HIGH_BIT = 1 << 255;
constructor(address zeroExAddress) internal FixinEIP712(zeroExAddress) { constructor(address zeroExAddress) internal FixinEIP712(zeroExAddress) {}
// solhint-disable no-empty-blocks
}
/// @dev Get the order info for a limit order. /// @dev Get the order info for a limit order.
/// @param order The limit order. /// @param order The limit order.

View File

@ -37,9 +37,7 @@ abstract contract NativeOrdersProtocolFees is FixinProtocolFees {
IStaking staking, IStaking staking,
FeeCollectorController feeCollectorController, FeeCollectorController feeCollectorController,
uint32 protocolFeeMultiplier uint32 protocolFeeMultiplier
) internal FixinProtocolFees(weth, staking, feeCollectorController, protocolFeeMultiplier) { ) internal FixinProtocolFees(weth, staking, feeCollectorController, protocolFeeMultiplier) {}
// solhint-disable no-empty-blocks
}
/// @dev Transfers protocol fees from the `FeeCollector` pools into /// @dev Transfers protocol fees from the `FeeCollector` pools into
/// the staking contract. /// the staking contract.

View File

@ -118,9 +118,7 @@ abstract contract NativeOrdersSettlement is
public public
NativeOrdersCancellation(zeroExAddress) NativeOrdersCancellation(zeroExAddress)
NativeOrdersProtocolFees(weth, staking, feeCollectorController, protocolFeeMultiplier) NativeOrdersProtocolFees(weth, staking, feeCollectorController, protocolFeeMultiplier)
{ {}
// solhint-disable no-empty-blocks
}
/// @dev Fill a limit order. The taker and sender will be the caller. /// @dev Fill a limit order. The taker and sender will be the caller.
/// @param order The limit order. ETH protocol fees can be /// @param order The limit order. ETH protocol fees can be
@ -501,6 +499,7 @@ abstract contract NativeOrdersSettlement is
} }
// Update filled state for the order. // Update filled state for the order.
// solhint-disable-next-line max-line-length
LibNativeOrdersStorage.getStorage().orderHashToTakerTokenFilledAmount[settleInfo.orderHash] = settleInfo // function if the order is cancelled. // OK to overwrite the whole word because we shouldn't get to this LibNativeOrdersStorage.getStorage().orderHashToTakerTokenFilledAmount[settleInfo.orderHash] = settleInfo // function if the order is cancelled. // OK to overwrite the whole word because we shouldn't get to this
.takerTokenFilledAmount .takerTokenFilledAmount
.safeAdd128(takerTokenFilledAmount); .safeAdd128(takerTokenFilledAmount);

View File

@ -30,8 +30,6 @@ import "./InitialMigration.sol";
/// @dev A contract for deploying and configuring the full ZeroEx contract. /// @dev A contract for deploying and configuring the full ZeroEx contract.
contract FullMigration { contract FullMigration {
// solhint-disable no-empty-blocks,indent
/// @dev Features to add the the proxy contract. /// @dev Features to add the the proxy contract.
struct Features { struct Features {
SimpleFunctionRegistryFeature registry; SimpleFunctionRegistryFeature registry;

View File

@ -43,8 +43,8 @@ library LibERC1155OrdersStorage {
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.ERC1155Orders); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.ERC1155Orders);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -35,8 +35,8 @@ library LibERC721OrdersStorage {
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.ERC721Orders); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.ERC721Orders);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -33,8 +33,8 @@ library LibMetaTransactionsStorage {
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.MetaTransactions); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.MetaTransactions);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -30,14 +30,13 @@ library LibNativeOrdersStorage {
// The lower `uint128` is the taker token fill amount. // The lower `uint128` is the taker token fill amount.
// The high bit will be `1` if the order was directly cancelled. // The high bit will be `1` if the order was directly cancelled.
mapping(bytes32 => uint256) orderHashToTakerTokenFilledAmount; mapping(bytes32 => uint256) orderHashToTakerTokenFilledAmount;
// The minimum valid order salt for a given maker and order pair (maker, taker) // The minimum valid order salt for a given maker and order pair (maker, taker) for limit orders.
// for limit orders. // solhint-disable-next-line max-line-length
mapping(address => mapping(address => mapping(address => uint256))) limitOrdersMakerToMakerTokenToTakerTokenToMinValidOrderSalt; mapping(address => mapping(address => mapping(address => uint256))) limitOrdersMakerToMakerTokenToTakerTokenToMinValidOrderSalt;
// The minimum valid order salt for a given maker and order pair (maker, taker) // The minimum valid order salt for a given maker and order pair (maker, taker) for RFQ orders.
// for RFQ orders. // solhint-disable-next-line max-line-length
mapping(address => mapping(address => mapping(address => uint256))) rfqOrdersMakerToMakerTokenToTakerTokenToMinValidOrderSalt; mapping(address => mapping(address => mapping(address => uint256))) rfqOrdersMakerToMakerTokenToTakerTokenToMinValidOrderSalt;
// For a given order origin, which tx.origin addresses are allowed to // For a given order origin, which tx.origin addresses are allowed to fill the order.
// fill the order.
mapping(address => mapping(address => bool)) originRegistry; mapping(address => mapping(address => bool)) originRegistry;
// For a given maker address, which addresses are allowed to // For a given maker address, which addresses are allowed to
// sign on its behalf. // sign on its behalf.
@ -47,8 +46,8 @@ library LibNativeOrdersStorage {
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.NativeOrders); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.NativeOrders);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -33,8 +33,8 @@ library LibOtcOrdersStorage {
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.OtcOrders); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.OtcOrders);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -35,6 +35,7 @@ library LibOwnableStorage {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.Ownable); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.Ownable);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local
// variable `stor`. // variable `stor`.
// solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -35,8 +35,8 @@ library LibProxyStorage {
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.Proxy); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.Proxy);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -27,16 +27,15 @@ import "../external/IFlashWallet.sol";
library LibReentrancyGuardStorage { library LibReentrancyGuardStorage {
/// @dev Storage bucket for this feature. /// @dev Storage bucket for this feature.
struct Storage { struct Storage {
// Reentrancy flags set whenever a non-reentrant function is entered // Reentrancy flags set whenever a non-reentrant function is entered and cleared when it is exited.
// and cleared when it is exited.
uint256 reentrancyFlags; uint256 reentrancyFlags;
} }
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.ReentrancyGuard); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.ReentrancyGuard);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -33,8 +33,8 @@ library LibSimpleFunctionRegistryStorage {
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.SimpleFunctionRegistry); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.SimpleFunctionRegistry);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -23,11 +23,11 @@ pragma experimental ABIEncoderV2;
/// @dev Common storage helpers /// @dev Common storage helpers
library LibStorage { library LibStorage {
/// @dev What to bit-shift a storage ID by to get its slot. /// @dev What to bit-shift a storage ID by to get its slot.
/// This gives us a maximum of 2**128 inline fields in each bucket. /// This gives us a maximum of 2**128 inline fields in each bucket.
uint256 private constant STORAGE_SLOT_EXP = 128; uint256 private constant STORAGE_SLOT_EXP = 128;
/// @dev Storage IDs for feature storage buckets. /// @dev Storage IDs for feature storage buckets.
/// WARNING: APPEND-ONLY. /// WARNING: APPEND-ONLY.
enum StorageId { enum StorageId {
Proxy, Proxy,
SimpleFunctionRegistry, SimpleFunctionRegistry,
@ -42,9 +42,10 @@ library LibStorage {
ERC1155Orders ERC1155Orders
} }
/// @dev Get the storage slot given a storage ID. We assign unique, well-spaced /// @dev Get the storage slot given a storage ID. We assign unique, well-spaced slots to storage bucket variables
/// slots to storage bucket variables to ensure they do not overlap. /// to ensure they do not overlap.
/// See: https://solidity.readthedocs.io/en/v0.6.6/assembly.html#access-to-external-variables-functions-and-libraries // solhint-disable-next-line max-line-length
/// See: https://solidity.readthedocs.io/en/v0.6.6/assembly.html#access-to-external-variables-functions-and-libraries
/// @param storageId An entry in `StorageId` /// @param storageId An entry in `StorageId`
/// @return slot The storage slot. /// @return slot The storage slot.
function getStorageSlot(StorageId storageId) internal pure returns (uint256 slot) { function getStorageSlot(StorageId storageId) internal pure returns (uint256 slot) {

View File

@ -38,8 +38,8 @@ library LibTransformERC20Storage {
/// @dev Get the storage bucket for this contract. /// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) { function getStorage() internal pure returns (Storage storage stor) {
uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.TransformERC20); uint256 storageSlot = LibStorage.getStorageSlot(LibStorage.StorageId.TransformERC20);
// Dip into assembly to change the slot pointed to by the local // Dip into assembly to change the slot pointed to by the local variable `stor`.
// variable `stor`. // solhint-disable-next-line max-line-length
// See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries
assembly { assembly {
stor_slot := storageSlot stor_slot := storageSlot

View File

@ -30,7 +30,6 @@ import "./LibERC20Transformer.sol";
/// @dev A transformer that transfers tokens to the taker. /// @dev A transformer that transfers tokens to the taker.
contract PayTakerTransformer is Transformer { contract PayTakerTransformer is Transformer {
// solhint-disable no-empty-blocks
using LibRichErrorsV06 for bytes; using LibRichErrorsV06 for bytes;
using LibSafeMathV06 for uint256; using LibSafeMathV06 for uint256;
using LibERC20Transformer for IERC20TokenV06; using LibERC20Transformer for IERC20TokenV06;

View File

@ -29,6 +29,7 @@ interface IBalancerV2Vault {
GIVEN_OUT GIVEN_OUT
} }
// solhint-disable max-line-length
/** /**
* @dev Performs a swap with a single Pool. * @dev Performs a swap with a single Pool.
* *
@ -43,6 +44,9 @@ interface IBalancerV2Vault {
* Emits a `Swap` event. * Emits a `Swap` event.
* For full documentation see https://github.com/balancer-labs/balancer-core-v2/blob/master/contracts/vault/interfaces/IVault.sol * For full documentation see https://github.com/balancer-labs/balancer-core-v2/blob/master/contracts/vault/interfaces/IVault.sol
*/ */
// solhint-enable max-line-length
function swap( function swap(
SingleSwap calldata request, SingleSwap calldata request,
FundManagement calldata funds, FundManagement calldata funds,

View File

@ -25,13 +25,14 @@ import "../IBridgeAdapter.sol";
UniswapV2 UniswapV2
*/ */
interface IGmxRouter { interface IGmxRouter {
// /// @dev Swaps an exact amount of input tokens for as many output tokens as possible, along the route determined by the path. /// @dev Swaps an exact amount of input tokens for as many output tokens as possible, along the route determined by
// /// The first element of path is the input token, the last is the output token, and any intermediate elements represent /// the path. The first element of path is the input token, the last is the output token, and any intermediate
// /// intermediate pairs to trade through (if, for example, a direct pair does not exist). /// elements represent intermediate pairs to trade through (if, for example, a direct pair does not exist).
// /// @param _path An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity. /// @param _path An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses
// /// @param _amountIn The amount of input tokens to send. /// must exist and have liquidity.
// /// @param _minOut The minimum amount of output tokens that must be received for the transaction not to revert. /// @param _amountIn The amount of input tokens to send.
// /// @param _reciever Recipient of the output tokens. /// @param _minOut The minimum amount of output tokens that must be received for the transaction not to revert.
/// @param _receiver Recipient of the output tokens.
function swap( function swap(
address[] calldata _path, address[] calldata _path,
uint256 _amountIn, uint256 _amountIn,

View File

@ -29,13 +29,14 @@ import "../IBridgeAdapter.sol";
KyberDmm Router KyberDmm Router
*/ */
interface IKyberDmmRouter { interface IKyberDmmRouter {
/// @dev Swaps an exact amount of input tokens for as many output tokens as possible, along the route determined by the path. /// @dev Swaps an exact amount of input tokens for as many output tokens as possible, along the route determined by
/// The first element of path is the input token, the last is the output token, and any intermediate elements represent /// the path. The first element of path is the input token, the last is the output token, and any intermediate
/// intermediate pairs to trade through (if, for example, a direct pair does not exist). /// elements represent intermediate pairs to trade through (if, for example, a direct pair does not exist).
/// @param amountIn The amount of input tokens to send. /// @param amountIn The amount of input tokens to send.
/// @param amountOutMin The minimum amount of output tokens that must be received for the transaction not to revert. /// @param amountOutMin The minimum amount of output tokens that must be received for the transaction not to revert.
/// @param pools An array of pool addresses. pools.length must be >= 1. /// @param pools An array of pool addresses. pools.length must be >= 1.
/// @param path An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity. /// @param path An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses
/// must exist and have liquidity.
/// @param to Recipient of the output tokens. /// @param to Recipient of the output tokens.
/// @param deadline Unix timestamp after which the transaction will revert. /// @param deadline Unix timestamp after which the transaction will revert.
/// @return amounts The input token amount and all subsequent output token amounts. /// @return amounts The input token amount and all subsequent output token amounts.

View File

@ -41,7 +41,9 @@ interface ISynthetix {
} }
contract MixinSynthetix { contract MixinSynthetix {
// solhint-disable-next-line const-name-snakecase
address private constant rewardAddress = 0x5C80239D97E1eB216b5c3D8fBa5DE5Be5d38e4C9; address private constant rewardAddress = 0x5C80239D97E1eB216b5c3D8fBa5DE5Be5d38e4C9;
// solhint-disable-next-line const-name-snakecase
bytes32 constant trackingCode = 0x3058000000000000000000000000000000000000000000000000000000000000; bytes32 constant trackingCode = 0x3058000000000000000000000000000000000000000000000000000000000000;
function _tradeSynthetix(uint256 sellAmount, bytes memory bridgeData) public returns (uint256 boughtAmount) { function _tradeSynthetix(uint256 sellAmount, bytes memory bridgeData) public returns (uint256 boughtAmount) {

View File

@ -29,12 +29,13 @@ import "../IBridgeAdapter.sol";
UniswapV2 UniswapV2
*/ */
interface IUniswapV2Router02 { interface IUniswapV2Router02 {
/// @dev Swaps an exact amount of input tokens for as many output tokens as possible, along the route determined by the path. /// @dev Swaps an exact amount of input tokens for as many output tokens as possible, along the route determined by
/// The first element of path is the input token, the last is the output token, and any intermediate elements represent /// the path. The first element of path is the input token, the last is the output token, and any intermediate
/// intermediate pairs to trade through (if, for example, a direct pair does not exist). /// elements represent intermediate pairs to trade through (if, for example, a direct pair does not exist).
/// @param amountIn The amount of input tokens to send. /// @param amountIn The amount of input tokens to send.
/// @param amountOutMin The minimum amount of output tokens that must be received for the transaction not to revert. /// @param amountOutMin The minimum amount of output tokens that must be received for the transaction not to revert.
/// @param path An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity. /// @param path An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses
/// must exist and have liquidity.
/// @param to Recipient of the output tokens. /// @param to Recipient of the output tokens.
/// @param deadline Unix timestamp after which the transaction will revert. /// @param deadline Unix timestamp after which the transaction will revert.
/// @return amounts The input token amount and all subsequent output token amounts. /// @return amounts The input token amount and all subsequent output token amounts.

View File

@ -54,11 +54,13 @@ contract MixinWOOFi {
using LibERC20TokenV06 for IEtherTokenV06; using LibERC20TokenV06 for IEtherTokenV06;
using LibSafeMathV06 for uint256; using LibSafeMathV06 for uint256;
// solhint-disable-next-line const-name-snakecase
address constant rebateAddress = 0xBfdcBB4C05843163F491C24f9c0019c510786304; address constant rebateAddress = 0xBfdcBB4C05843163F491C24f9c0019c510786304;
// /// @dev Swaps an exact amount of input tokens for as many output tokens as possible. // /// @dev Swaps an exact amount of input tokens for as many output tokens as possible.
// /// @param _amountIn Amount of input tokens to send // /// @param _amountIn Amount of input tokens to send
// /// @param _minAmountOut The minimum amount of output tokens that must be received for the transaction not to revert. // /// @param _minAmountOut The minimum amount of output tokens that must be received for the transaction
// /// not to revert
// /// @param _tokenIn Input token // /// @param _tokenIn Input token
// /// @param _tokenOut Output token // /// @param _tokenOut Output token
// /// @param _to recipient of tokens // /// @param _to recipient of tokens

View File

@ -24,7 +24,8 @@ interface IUniswapV3Pool {
/// @dev The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback /// @dev The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback
/// @param recipient The address to receive the output of the swap /// @param recipient The address to receive the output of the swap
/// @param zeroForOne The direction of the swap, true for token0 to token1, false for token1 to token0 /// @param zeroForOne The direction of the swap, true for token0 to token1, false for token1 to token0
/// @param amountSpecified The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative) /// @param amountSpecified The amount of the swap, which implicitly configures the swap as exact input (positive),
/// or exact output (negative)
/// @param sqrtPriceLimitX96 The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this /// @param sqrtPriceLimitX96 The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this
/// value after the swap. If one for zero, the price cannot be greater than this value after the swap /// value after the swap. If one for zero, the price cannot be greater than this value after the swap
/// @param data Any data to be passed through to the callback /// @param data Any data to be passed through to the callback

View File

@ -28,9 +28,7 @@ contract TestFixinProtocolFees is FixinProtocolFees {
IStaking staking, IStaking staking,
FeeCollectorController feeCollectorController, FeeCollectorController feeCollectorController,
uint32 protocolFeeMultiplier uint32 protocolFeeMultiplier
) public FixinProtocolFees(weth, staking, feeCollectorController, protocolFeeMultiplier) { ) public FixinProtocolFees(weth, staking, feeCollectorController, protocolFeeMultiplier) {}
// solhint-disalbe no-empty-blocks
}
function collectProtocolFee(bytes32 poolId) external payable { function collectProtocolFee(bytes32 poolId) external payable {
_collectProtocolFee(poolId); _collectProtocolFee(poolId);

View File

@ -26,7 +26,6 @@ import "../src/migrations/FullMigration.sol";
contract TestFullMigration is FullMigration { contract TestFullMigration is FullMigration {
address public dieRecipient; address public dieRecipient;
// solhint-disable-next-line no-empty-blocks
constructor(address payable deployer) public FullMigration(deployer) {} constructor(address payable deployer) public FullMigration(deployer) {}
function die(address payable ethRecipient) external override { function die(address payable ethRecipient) external override {

View File

@ -28,7 +28,6 @@ contract TestInitialMigration is InitialMigration {
address public bootstrapFeature; address public bootstrapFeature;
address public dieRecipient; address public dieRecipient;
// solhint-disable-next-line no-empty-blocks
constructor(address deployer) public InitialMigration(deployer) {} constructor(address deployer) public InitialMigration(deployer) {}
function callBootstrap(ZeroEx zeroEx) external { function callBootstrap(ZeroEx zeroEx) external {

View File

@ -21,9 +21,7 @@ contract TestNativeOrdersFeature is NativeOrdersFeature {
FeeCollectorController(address(new TestFeeCollectorController())), FeeCollectorController(address(new TestFeeCollectorController())),
protocolFeeMultiplier protocolFeeMultiplier
) )
{ {}
// solhint-disable no-empty-blocks
}
modifier onlySelf() override { modifier onlySelf() override {
_; _;

View File

@ -44,7 +44,5 @@ contract TestTransformerHost {
); );
} }
// solhint-disable
receive() external payable {} receive() external payable {}
// solhint-enable
} }

View File

@ -26,11 +26,8 @@ import "./TestTransformerHost.sol";
import "./tokens/TestWeth.sol"; import "./tokens/TestWeth.sol";
contract TestWethTransformerHost is TestTransformerHost { contract TestWethTransformerHost is TestTransformerHost {
// solhint-disable
TestWeth private immutable _weth; TestWeth private immutable _weth;
// solhint-enable
constructor(TestWeth weth) public { constructor(TestWeth weth) public {
_weth = weth; _weth = weth;
} }

View File

@ -35,7 +35,6 @@ contract TestZeroExFeature is FixinCommon {
emit NotPayableFnCalled(); emit NotPayableFnCalled();
} }
// solhint-disable no-empty-blocks
function unimplmentedFn() external {} function unimplmentedFn() external {}
function internalFn() external onlySelf {} function internalFn() external onlySelf {}

View File

@ -42,8 +42,6 @@ The only requirement is that the Feature implements the interface in `IFeature <
/// @dev Basic interface for a feature contract. /// @dev Basic interface for a feature contract.
interface IFeature { interface IFeature {
// solhint-disable func-name-mixedcase
/// @dev The name of this feature set. /// @dev The name of this feature set.
function FEATURE_NAME() external view returns (string memory name); function FEATURE_NAME() external view returns (string memory name);

View File

@ -34,6 +34,7 @@
"watch:ts": "tsc -b -w", "watch:ts": "tsc -b -w",
"clean": "wsrun --fast-exit -r --parallel --exclude-missing -p $PKG -c clean", "clean": "wsrun --fast-exit -r --parallel --exclude-missing -p $PKG -c clean",
"contracts:watch": "wsrun --parallel --exclude-missing -p $PKG -c watch", "contracts:watch": "wsrun --parallel --exclude-missing -p $PKG -c watch",
"lint:contracts": "npx solhint contracts/**/*.sol",
"remove_node_modules": "lerna clean --yes; rm -rf node_modules", "remove_node_modules": "lerna clean --yes; rm -rf node_modules",
"rebuild": "run-s clean build", "rebuild": "run-s clean build",
"test": "wsrun --fast-exit --serial --exclude-missing -p $(echo $(echo ${npm_package_config_contractsPackages} ${npm_package_config_nonContractPackages} | tr ' ' '\n' | sort | uniq) ${npm_package_config_ignoreTestsForPackages} | tr ' ' '\n' | sort | uniq -u | tr '\n' ' ') -c test", "test": "wsrun --fast-exit --serial --exclude-missing -p $(echo $(echo ${npm_package_config_contractsPackages} ${npm_package_config_nonContractPackages} | tr ' ' '\n' | sort | uniq) ${npm_package_config_ignoreTestsForPackages} | tr ' ' '\n' | sort | uniq -u | tr '\n' ' ') -c test",
@ -45,7 +46,8 @@
"diff_md_docs:ci": "wsrun --exclude-missing -c diff_docs", "diff_md_docs:ci": "wsrun --exclude-missing -c diff_docs",
"test:generate_docs:circleci": "for i in ${npm_package_config_packagesWithDocPages}; do yarn generate_doc --package $i || break -1; done;", "test:generate_docs:circleci": "for i in ${npm_package_config_packagesWithDocPages}; do yarn generate_doc --package $i || break -1; done;",
"bundlewatch": "bundlewatch", "bundlewatch": "bundlewatch",
"lint": "wsrun --fast-exit --parallel --exclude-missing -p $PKG -c lint", "lint:ts": "wsrun --fast-exit --parallel --exclude-missing -p $PKG -c lint",
"lint": "yarn lint:ts && yarn lint:contracts",
"upgrade_tools": "node node_modules/@0x/monorepo-scripts/lib/upgrade_deps.js -p '@0x/abi-gen|@0x/assert|@0x/base-contract|@0x/contracts-gen|@0x/dev-utils|@0x/json-schemas|@0x/monorepo-scripts|@0x/sol-compiler|@0x/sol-coverage|@0x/sol-doc|@0x/sol-profiler|@0x/sol-resolver|@0x/sol-trace|@0x/sol-tracing-utils|@0x/subproviders|@0x/tslint-config|@0x/types|@0x/typescript-typings|@0x/utils|@0x/verdaccio|@0x/web3-wrapper|ethereum-types'", "upgrade_tools": "node node_modules/@0x/monorepo-scripts/lib/upgrade_deps.js -p '@0x/abi-gen|@0x/assert|@0x/base-contract|@0x/contracts-gen|@0x/dev-utils|@0x/json-schemas|@0x/monorepo-scripts|@0x/sol-compiler|@0x/sol-coverage|@0x/sol-doc|@0x/sol-profiler|@0x/sol-resolver|@0x/sol-trace|@0x/sol-tracing-utils|@0x/subproviders|@0x/tslint-config|@0x/types|@0x/typescript-typings|@0x/utils|@0x/verdaccio|@0x/web3-wrapper|ethereum-types'",
"upgrade_deps": "node node_modules/@0x/monorepo-scripts/lib/upgrade_deps.js", "upgrade_deps": "node node_modules/@0x/monorepo-scripts/lib/upgrade_deps.js",
"verdaccio": "docker run --rm -i -p 4873:4873 0xorg/verdaccio" "verdaccio": "docker run --rm -i -p 4873:4873 0xorg/verdaccio"
@ -71,11 +73,14 @@
"npm-run-all": "^4.1.2", "npm-run-all": "^4.1.2",
"prettier": "2.7.1", "prettier": "2.7.1",
"prettier-plugin-solidity": "^1.0.0-beta.24", "prettier-plugin-solidity": "^1.0.0-beta.24",
"solhint": "^3.3.7",
"solhint-plugin-prettier": "^0.0.5",
"source-map-support": "^0.5.6", "source-map-support": "^0.5.6",
"typescript": "4.6.3", "typescript": "4.6.3",
"wsrun": "^5.2.4" "wsrun": "^5.2.4"
}, },
"resolutions": { "resolutions": {
"**/bignumber.js": "^9.0.2" "**/bignumber.js": "^9.0.2"
} },
"dependencies": {}
} }

View File

@ -155,7 +155,7 @@ contract CurveSampler is
if (!success) { if (!success) {
return 0; return 0;
} }
// solhint-disable-next-line indent
return abi.decode(resultData, (uint256[]))[0]; return abi.decode(resultData, (uint256[]))[0];
} }
} }

View File

@ -89,7 +89,7 @@ contract GMXSampler is
if(!success) { if(!success) {
return 0; return 0;
} }
// solhint-disable-next-line indent
return abi.decode(resultData, (uint256[]))[0]; return abi.decode(resultData, (uint256[]))[0];
} }

View File

@ -83,7 +83,7 @@ contract PlatypusSampler is
if(!success) { if(!success) {
return 0; return 0;
} }
// solhint-disable-next-line indent
return abi.decode(resultData, (uint256[]))[0]; return abi.decode(resultData, (uint256[]))[0];
} }
} }

View File

@ -19,8 +19,6 @@
pragma solidity ^0.6; pragma solidity ^0.6;
// solhint-disable func-name-mixedcase
interface ICurve { interface ICurve {
/// @dev Sell `sellAmount` of `fromToken` token and receive `toToken` token. /// @dev Sell `sellAmount` of `fromToken` token and receive `toToken` token.

252
yarn.lock
View File

@ -3359,6 +3359,13 @@
resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918"
integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==
"@solidity-parser/parser@^0.14.1":
version "0.14.5"
resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804"
integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==
dependencies:
antlr4ts "^0.5.0-alpha.4"
"@solidity-parser/parser@^0.14.3": "@solidity-parser/parser@^0.14.3":
version "0.14.3" version "0.14.3"
resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.3.tgz#0d627427b35a40d8521aaa933cc3df7d07bfa36f" resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.3.tgz#0d627427b35a40d8521aaa933cc3df7d07bfa36f"
@ -4138,11 +4145,16 @@ accepts@^1.3.5, accepts@~1.3.8:
mime-types "~2.1.34" mime-types "~2.1.34"
negotiator "0.6.3" negotiator "0.6.3"
acorn-jsx@^5.3.2: acorn-jsx@^5.0.0, acorn-jsx@^5.3.2:
version "5.3.2" version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^6.0.7:
version "6.4.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
acorn@^8.8.0: acorn@^8.8.0:
version "8.8.0" version "8.8.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
@ -4193,7 +4205,7 @@ ajv-formats@^2.1.1:
dependencies: dependencies:
ajv "^8.0.0" ajv "^8.0.0"
ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.6.1, ajv@^6.9.1:
version "6.12.6" version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@ -4284,6 +4296,11 @@ ansi@^0.3.0, ansi@~0.3.1:
resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21"
integrity sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A== integrity sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A==
antlr4@4.7.1:
version "4.7.1"
resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.7.1.tgz#69984014f096e9e775f53dd9744bf994d8959773"
integrity sha512-haHyTW7Y9joE5MVs37P2lNYfU2RWBLfcRDD8OWldcdZm5TiCE91B5Xl1oWSwiDUSd4rlExpt2pu1fksYQjRBYQ==
antlr4ts@^0.5.0-alpha.4: antlr4ts@^0.5.0-alpha.4:
version "0.5.0-alpha.4" version "0.5.0-alpha.4"
resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a"
@ -4605,6 +4622,16 @@ assign-symbols@^1.0.0:
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==
ast-parents@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3"
integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==
astral-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
async-child-process@^1.1.1: async-child-process@^1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/async-child-process/-/async-child-process-1.1.1.tgz#27d0a598b5738707f9898c048bd231340583747b" resolved "https://registry.yarnpkg.com/async-child-process/-/async-child-process-1.1.1.tgz#27d0a598b5738707f9898c048bd231340583747b"
@ -6390,6 +6417,11 @@ command-line-usage@^6.1.0:
table-layout "^1.0.2" table-layout "^1.0.2"
typical "^5.2.0" typical "^5.2.0"
commander@2.18.0:
version "2.18.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970"
integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==
commander@^2.12.1, commander@^2.20.3, commander@^2.8.1: commander@^2.12.1, commander@^2.20.3, commander@^2.8.1:
version "2.20.3" version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@ -6663,7 +6695,7 @@ cors@^2.8.1, cors@^2.8.5:
object-assign "^4" object-assign "^4"
vary "^1" vary "^1"
cosmiconfig@^5.1.0: cosmiconfig@^5.0.7, cosmiconfig@^5.1.0:
version "5.2.1" version "5.2.1"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
@ -6903,7 +6935,7 @@ debug@3.2.6:
dependencies: dependencies:
ms "^2.1.1" ms "^2.1.1"
debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
version "4.3.4" version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@ -7660,6 +7692,14 @@ eslint-config-prettier@^8.5.0:
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1"
integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==
eslint-scope@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
dependencies:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-scope@^5.1.1: eslint-scope@^5.1.1:
version "5.1.1" version "5.1.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
@ -7676,6 +7716,13 @@ eslint-scope@^7.1.1:
esrecurse "^4.3.0" esrecurse "^4.3.0"
estraverse "^5.2.0" estraverse "^5.2.0"
eslint-utils@^1.3.1:
version "1.4.3"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
dependencies:
eslint-visitor-keys "^1.1.0"
eslint-utils@^3.0.0: eslint-utils@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
@ -7683,6 +7730,11 @@ eslint-utils@^3.0.0:
dependencies: dependencies:
eslint-visitor-keys "^2.0.0" eslint-visitor-keys "^2.0.0"
eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
eslint-visitor-keys@^2.0.0: eslint-visitor-keys@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
@ -7693,6 +7745,48 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
eslint@^5.6.0:
version "5.16.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==
dependencies:
"@babel/code-frame" "^7.0.0"
ajv "^6.9.1"
chalk "^2.1.0"
cross-spawn "^6.0.5"
debug "^4.0.1"
doctrine "^3.0.0"
eslint-scope "^4.0.3"
eslint-utils "^1.3.1"
eslint-visitor-keys "^1.0.0"
espree "^5.0.1"
esquery "^1.0.1"
esutils "^2.0.2"
file-entry-cache "^5.0.1"
functional-red-black-tree "^1.0.1"
glob "^7.1.2"
globals "^11.7.0"
ignore "^4.0.6"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
inquirer "^6.2.2"
js-yaml "^3.13.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.3.0"
lodash "^4.17.11"
minimatch "^3.0.4"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
optionator "^0.8.2"
path-is-inside "^1.0.2"
progress "^2.0.0"
regexpp "^2.0.1"
semver "^5.5.1"
strip-ansi "^4.0.0"
strip-json-comments "^2.0.1"
table "^5.2.3"
text-table "^0.2.0"
eslint@^8.23.1: eslint@^8.23.1:
version "8.23.1" version "8.23.1"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc"
@ -7738,6 +7832,15 @@ eslint@^8.23.1:
strip-json-comments "^3.1.0" strip-json-comments "^3.1.0"
text-table "^0.2.0" text-table "^0.2.0"
espree@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==
dependencies:
acorn "^6.0.7"
acorn-jsx "^5.0.0"
eslint-visitor-keys "^1.0.0"
espree@^9.4.0: espree@^9.4.0:
version "9.4.0" version "9.4.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a"
@ -7757,14 +7860,14 @@ esprima@^4.0.0:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esquery@^1.4.0: esquery@^1.0.1, esquery@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
dependencies: dependencies:
estraverse "^5.1.0" estraverse "^5.1.0"
esrecurse@^4.3.0: esrecurse@^4.1.0, esrecurse@^4.3.0:
version "4.3.0" version "4.3.0"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
@ -8565,6 +8668,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-diff@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
fast-glob@^2.2.6: fast-glob@^2.2.6:
version "2.2.7" version "2.2.7"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
@ -8650,6 +8758,13 @@ figures@^3.0.0:
dependencies: dependencies:
escape-string-regexp "^1.0.5" escape-string-regexp "^1.0.5"
file-entry-cache@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
dependencies:
flat-cache "^2.0.1"
file-entry-cache@^6.0.1: file-entry-cache@^6.0.1:
version "6.0.1" version "6.0.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
@ -8790,6 +8905,15 @@ find-yarn-workspace-root@^1.2.1:
fs-extra "^4.0.3" fs-extra "^4.0.3"
micromatch "^3.1.4" micromatch "^3.1.4"
flat-cache@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
dependencies:
flatted "^2.0.0"
rimraf "2.6.3"
write "1.0.3"
flat-cache@^3.0.4: flat-cache@^3.0.4:
version "3.0.4" version "3.0.4"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
@ -8810,6 +8934,11 @@ flat@^5.0.2:
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
flatted@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
flatted@^3.1.0: flatted@^3.1.0:
version "3.2.7" version "3.2.7"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
@ -9461,6 +9590,11 @@ global@~4.4.0:
min-document "^2.19.0" min-document "^2.19.0"
process "^0.11.10" process "^0.11.10"
globals@^11.7.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
globals@^13.15.0: globals@^13.15.0:
version "13.17.0" version "13.17.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4"
@ -9931,7 +10065,7 @@ ignore-walk@^3.0.1:
dependencies: dependencies:
minimatch "^3.0.4" minimatch "^3.0.4"
ignore@^4.0.3: ignore@^4.0.3, ignore@^4.0.6:
version "4.0.6" version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
@ -10049,7 +10183,7 @@ init-package-json@^1.10.3:
validate-npm-package-license "^3.0.1" validate-npm-package-license "^3.0.1"
validate-npm-package-name "^3.0.0" validate-npm-package-name "^3.0.0"
inquirer@^6.2.0: inquirer@^6.2.0, inquirer@^6.2.2:
version "6.5.2" version "6.5.2"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
@ -10806,7 +10940,7 @@ js-yaml@3.13.1:
argparse "^1.0.7" argparse "^1.0.7"
esprima "^4.0.0" esprima "^4.0.0"
js-yaml@3.x, js-yaml@^3.13.1, js-yaml@^3.7.0: js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.7.0:
version "3.14.1" version "3.14.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
@ -11361,6 +11495,14 @@ levelup@^1.2.1:
semver "~5.4.1" semver "~5.4.1"
xtend "~4.0.0" xtend "~4.0.0"
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
levn@^0.4.1: levn@^0.4.1:
version "0.4.1" version "0.4.1"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
@ -11369,14 +11511,6 @@ levn@^0.4.1:
prelude-ls "^1.2.1" prelude-ls "^1.2.1"
type-check "~0.4.0" type-check "~0.4.0"
levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
lines-and-columns@^1.1.6: lines-and-columns@^1.1.6:
version "1.2.4" version "1.2.4"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@ -13078,7 +13212,7 @@ onetime@^5.1.0, onetime@^5.1.2:
dependencies: dependencies:
mimic-fn "^2.1.0" mimic-fn "^2.1.0"
optionator@^0.8.1: optionator@^0.8.1, optionator@^0.8.2:
version "0.8.3" version "0.8.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
@ -13489,7 +13623,7 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
path-is-inside@^1.0.1: path-is-inside@^1.0.1, path-is-inside@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==
@ -14021,6 +14155,13 @@ preserve@^0.2.0:
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
integrity sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ== integrity sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==
prettier-linter-helpers@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
dependencies:
fast-diff "^1.1.2"
prettier-plugin-solidity@^1.0.0-beta.24: prettier-plugin-solidity@^1.0.0-beta.24:
version "1.0.0-beta.24" version "1.0.0-beta.24"
resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.24.tgz#67573ca87098c14f7ccff3639ddd8a4cab2a87eb" resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.24.tgz#67573ca87098c14f7ccff3639ddd8a4cab2a87eb"
@ -14038,7 +14179,7 @@ prettier@2.7.1, prettier@^2.3.1, prettier@^2.7.1:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
prettier@^1.16.3: prettier@^1.14.3, prettier@^1.16.3:
version "1.19.1" version "1.19.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
@ -14074,7 +14215,7 @@ progress-stream@^1.0.1:
speedometer "~0.1.2" speedometer "~0.1.2"
through2 "~0.2.3" through2 "~0.2.3"
progress@^2.0.3: progress@^2.0.0, progress@^2.0.3:
version "2.0.3" version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@ -14703,6 +14844,11 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3:
define-properties "^1.1.3" define-properties "^1.1.3"
functions-have-names "^1.2.2" functions-have-names "^1.2.2"
regexpp@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
regexpp@^3.2.0: regexpp@^3.2.0:
version "3.2.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
@ -14948,6 +15094,13 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.
dependencies: dependencies:
glob "^7.1.3" glob "^7.1.3"
rimraf@2.6.3:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
dependencies:
glob "^7.1.3"
rimraf@^3.0.2: rimraf@^3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
@ -15431,6 +15584,15 @@ slash@^3.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
slice-ansi@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
dependencies:
ansi-styles "^3.2.0"
astral-regex "^1.0.0"
is-fullwidth-code-point "^2.0.0"
slide@^1.1.3, slide@^1.1.5, slide@^1.1.6: slide@^1.1.3, slide@^1.1.5, slide@^1.1.6:
version "1.1.6" version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
@ -15507,6 +15669,35 @@ solc@^0.8:
semver "^5.5.0" semver "^5.5.0"
tmp "0.0.33" tmp "0.0.33"
solhint-plugin-prettier@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz#e3b22800ba435cd640a9eca805a7f8bc3e3e6a6b"
integrity sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==
dependencies:
prettier-linter-helpers "^1.0.0"
solhint@^3.3.7:
version "3.3.7"
resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.3.7.tgz#b5da4fedf7a0fee954cb613b6c55a5a2b0063aa7"
integrity sha512-NjjjVmXI3ehKkb3aNtRJWw55SUVJ8HMKKodwe0HnejA+k0d2kmhw7jvpa+MCTbcEgt8IWSwx0Hu6aCo/iYOZzQ==
dependencies:
"@solidity-parser/parser" "^0.14.1"
ajv "^6.6.1"
antlr4 "4.7.1"
ast-parents "0.0.1"
chalk "^2.4.2"
commander "2.18.0"
cosmiconfig "^5.0.7"
eslint "^5.6.0"
fast-diff "^1.1.2"
glob "^7.1.3"
ignore "^4.0.6"
js-yaml "^3.12.0"
lodash "^4.17.11"
semver "^6.3.0"
optionalDependencies:
prettier "^1.14.3"
solidity-comments-extractor@^0.0.7: solidity-comments-extractor@^0.0.7:
version "0.0.7" version "0.0.7"
resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19"
@ -15950,7 +16141,7 @@ strip-indent@^3.0.0:
dependencies: dependencies:
min-indent "^1.0.0" min-indent "^1.0.0"
strip-json-comments@2.0.1, strip-json-comments@~2.0.1: strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
@ -16082,6 +16273,16 @@ table-layout@^1.0.2:
typical "^5.2.0" typical "^5.2.0"
wordwrapjs "^4.0.0" wordwrapjs "^4.0.0"
table@^5.2.3:
version "5.4.6"
resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
dependencies:
ajv "^6.10.2"
lodash "^4.17.14"
slice-ansi "^2.1.0"
string-width "^3.0.0"
tape@^4.4.0, tape@^4.6.3: tape@^4.4.0, tape@^4.6.3:
version "4.16.0" version "4.16.0"
resolved "https://registry.yarnpkg.com/tape/-/tape-4.16.0.tgz#18310f57b71c0ac21b3ef94fe5c16033b3d6362b" resolved "https://registry.yarnpkg.com/tape/-/tape-4.16.0.tgz#18310f57b71c0ac21b3ef94fe5c16033b3d6362b"
@ -18302,6 +18503,13 @@ write-stream@~0.4.3:
dependencies: dependencies:
readable-stream "~0.0.2" readable-stream "~0.0.2"
write@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
dependencies:
mkdirp "^0.5.1"
ws@7.4.6: ws@7.4.6:
version "7.4.6" version "7.4.6"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"