code-423n4 / 2021-11-streaming-findings

0 stars 0 forks source link

Public functions to external #8

Closed code423n4 closed 2 years ago

code423n4 commented 2 years ago

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.

    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

THIS WILL SAVE YOU TONS OF GAS!!!!! :)

0xean commented 2 years ago

dupe of #260