The following functions could be set external to save gas and improve code quality.
External call cost is less expensive than of public functions.
The function setUp in demo.sol could be set external
The function test_pass in demo.sol could be set external
The function setAuthority in Auth.sol could be set external
The function setOwner in Auth.sol could be set external
The function setUserRole in RolesAuthority.sol could be set external
The function doesRoleHaveCapability in RolesAuthority.sol could be set external
The function setPublicCapability in RolesAuthority.sol could be set external
The function setRootUser in RolesAuthority.sol could be set external
The function doesUserHaveRole in RolesAuthority.sol could be set external
The function setRoleCapability in RolesAuthority.sol could be set external
The function canCall in RolesAuthority.sol could be set external
The function canCall in TrustAuthority.sol could be set external
The function setIsTrusted in Trust.sol could be set external
The function testFailRejectingAuthority2 in Auth.t.sol could be set external
The function invariantOwner in Auth.t.sol could be set external
The function testAcceptingOwner in Auth.t.sol could be set external
The function invariantAuthority in Auth.t.sol could be set external
The function setUp in Auth.t.sol could be set external
The function testFailNonOwner1 in Auth.t.sol could be set external
The function testFailNonOwner2 in Auth.t.sol could be set external
The function testFailRejectingAuthority1 in Auth.t.sol could be set external
The function testFillLast12Bytes in Bytes32AddressLib.t.sol could be set external
The function testFromLast20Bytes in Bytes32AddressLib.t.sol could be set external
The function testFailDoubleDeployDifferentBytecode in CREATE3.t.sol could be set external
The function testDeployERC20 in CREATE3.t.sol could be set external
The function testFailDoubleDeploySameBytecode in CREATE3.t.sol could be set external
The function burn in ERC20.t.sol could be set external
The function transferFrom in ERC20.t.sol could be set external
The function transfer in ERC20.t.sol could be set external
The function mint in ERC20.t.sol could be set external
The function approve in ERC20.t.sol could be set external
The function testMin in FixedPointMathLib.t.sol could be set external
The function testFailFDivOverflow in FixedPointMathLib.t.sol could be set external
The function testFMulEdgeCases in FixedPointMathLib.t.sol could be set external
The function testFailFDivZeroXY in FixedPointMathLib.t.sol could be set external
The function testFailFDivXYB in FixedPointMathLib.t.sol could be set external
The function testFailFMulOverflow in FixedPointMathLib.t.sol could be set external
The function testFDiv in FixedPointMathLib.t.sol could be set external
The function testFMul in FixedPointMathLib.t.sol could be set external
The function testFPow in FixedPointMathLib.t.sol could be set external
The function testFDivEdgeCases in FixedPointMathLib.t.sol could be set external
The function testFailFDivYZero in FixedPointMathLib.t.sol could be set external
The function testFailFDivZeroY in FixedPointMathLib.t.sol could be set external
The function testMax in FixedPointMathLib.t.sol could be set external
The function testSqrt in FixedPointMathLib.t.sol could be set external
The function testFailUnprotectedCall in ReentrancyGuard.t.sol could be set external
The function testNoReentrancy in ReentrancyGuard.t.sol could be set external
The function setUp in ReentrancyGuard.t.sol could be set external
The function invariantReentrancyStatusAlways1 in ReentrancyGuard.t.sol could be set external
The function testProtectedCall in ReentrancyGuard.t.sol could be set external
The function invariantOwner in RolesAuthority.t.sol could be set external
The function testSanityChecks in RolesAuthority.t.sol could be set external
The function invariantAuthority in RolesAuthority.t.sol could be set external
The function testPublicCapabilities in RolesAuthority.t.sol could be set external
The function setUp in RolesAuthority.t.sol could be set external
The function testBasics in RolesAuthority.t.sol could be set external
The function testRoot in RolesAuthority.t.sol could be set external
The function testSafeCastTo64 in SafeCastLib.t.sol could be set external
The function testFailSafeCastTo64 in SafeCastLib.t.sol could be set external
The function testSafeCastTo224 in SafeCastLib.t.sol could be set external
The function testFailSafeCastTo128 in SafeCastLib.t.sol could be set external
The function testFailSafeCastTo224 in SafeCastLib.t.sol could be set external
The function testSafeCastTo128 in SafeCastLib.t.sol could be set external
The function testFailApproveWithPausable in SafeTransferLib.t.sol could be set external
The function testTransferWithNonContract in SafeTransferLib.t.sol could be set external
The function testFailApproveWithReturnsFalse in SafeTransferLib.t.sol could be set external
The function testFailTransferWithPausable in SafeTransferLib.t.sol could be set external
The function testFailTransferWithReturnsFalse in SafeTransferLib.t.sol could be set external
The function testTransferFromWithTransferFromSelf in SafeTransferLib.t.sol could be set external
The function testFailTransferFromWithReturnsFalse in SafeTransferLib.t.sol could be set external
The function testTransferWithTransferFromSelf in SafeTransferLib.t.sol could be set external
The function setUp in SafeTransferLib.t.sol could be set external
The function testTransferFromWithNonContract in SafeTransferLib.t.sol could be set external
The function testFailTransferETHToContractWithoutFallback in SafeTransferLib.t.sol could be set external
The function testTransferETH in SafeTransferLib.t.sol could be set external
The function testApproveWithNonContract in SafeTransferLib.t.sol could be set external
The function testFailTransferFromWithPausable in SafeTransferLib.t.sol could be set external
The function testApproveWithStandardERC20 in SafeTransferLib.t.sol could be set external
The function testTransferWithMissingReturn in SafeTransferLib.t.sol could be set external
The function testTransferFromWithStandardERC20 in SafeTransferLib.t.sol could be set external
The function testApproveWithTransferFromSelf in SafeTransferLib.t.sol could be set external
The function testTransferFromWithMissingReturn in SafeTransferLib.t.sol could be set external
The function testTransferWithStandardERC20 in SafeTransferLib.t.sol could be set external
The function testApproveWithMissingReturn in SafeTransferLib.t.sol could be set external
The function testDistrust in Trust.t.sol could be set external
The function testFailDistrustNotTrusted in Trust.t.sol could be set external
The function testTrust in Trust.t.sol could be set external
The function setUp in Trust.t.sol could be set external
The function testFailTrustNotTrusted in Trust.t.sol could be set external
The function invariantOwner in TrustAuthority.t.sol could be set external
The function testSanityChecks in TrustAuthority.t.sol could be set external
The function invariantAuthority in TrustAuthority.t.sol could be set external
The function setUp in TrustAuthority.t.sol could be set external
The function testUpdateTrust in TrustAuthority.t.sol could be set external
The function targetContracts in DSInvariantTest.sol could be set external
The function updateFlag in MockAuthChild.sol could be set external
The function mint in MockERC20.sol could be set external
The function burn in MockERC20.sol could be set external
The function updateFlag in MockTrustChild.sol could be set external
The function permit in ERC20User.sol could be set external
The function transferFrom in ERC20User.sol could be set external
The function approve in ERC20User.sol could be set external
The function transfer in ERC20User.sol could be set external
The function call in GenericUser.sol could be set external
The function tryCall in GenericUser.sol could be set external
The function permit in ERC20.sol could be set external
The function DOMAIN_SEPARATOR in ERC20.sol could be set external
The function transferFrom in ERC20.sol could be set external
The function transfer in ERC20.sol could be set external
The function approve in ERC20.sol could be set external
The function deposit in WETH.sol could be set external
The function permit in LockeERC20.sol could be set external
The function DOMAIN_SEPARATOR in LockeERC20.sol could be set external
The function transferFrom in LockeERC20.sol could be set external
The function transfer in LockeERC20.sol could be set external
The function approve in LockeERC20.sol could be set external
The function test_createStream in Locke.t.sol could be set external
The function test_updateFeeParams in Locke.t.sol could be set external
The function test_updateStreamParams in Locke.t.sol could be set external
The function write_flat in HEVMHelpers.sol could be set external
The function addKnownHEVM in HEVMHelpers.sol could be set external
The function write_map in HEVMHelpers.sol could be set external
The function sigs in HEVMHelpers.sol could be set external
The function write_deep_map_struct in HEVMHelpers.sol could be set external
The function find in HEVMHelpers.sol could be set external
The function write_deep_map in HEVMHelpers.sol could be set external
The function writ in HEVMHelpers.sol could be set external
The function flatten in HEVMHelpers.sol could be set external
The function write_balanceOf_ts in HEVMTokenExtension.sol could be set external
The function write_balanceOfUnderlying in HEVMTokenExtension.sol could be set external
The function write_balanceOf in HEVMTokenExtension.sol could be set external
The function write_last_checkpoint in HEVMTokenExtension.sol could be set external
The function write_checkpoint in HEVMTokenExtension.sol could be set external
The function createDefaultStream in LockeTest.sol could be set external
The function setUp in LockeTest.sol could be set external
The function constructor in TestToken.sol could be set external
Handle
robee
Vulnerability details
The following functions could be set external to save gas and improve code quality. External call cost is less expensive than of public functions.
THIS WILL SAVE YOU TONS OF GAS!!!!! :)