From 43590b24449a65ac7fa0f445f0b0d9aa004b8128 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Sat, 11 Nov 2023 15:57:11 -0300
Subject: [PATCH 01/64] separate exercise & add tests
---
remappings.txt | 2 +
src/OptionsToken.sol | 126 +++++++++++-----------------
src/exercise/BaseExercise.sol | 31 +++++++
src/exercise/DiscountExercise.sol | 135 ++++++++++++++++++++++++++++++
src/interfaces/IExercise.sol | 10 +++
test/OptionsToken.t.sol | 82 +++++++++++++++---
6 files changed, 298 insertions(+), 88 deletions(-)
create mode 100644 remappings.txt
create mode 100644 src/exercise/BaseExercise.sol
create mode 100644 src/exercise/DiscountExercise.sol
create mode 100644 src/interfaces/IExercise.sol
diff --git a/remappings.txt b/remappings.txt
new file mode 100644
index 0000000..dc0fb24
--- /dev/null
+++ b/remappings.txt
@@ -0,0 +1,2 @@
+create3-factory/=lib/create3-factory/src/
+
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 062bcc2..9ce21d7 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -3,39 +3,34 @@ pragma solidity ^0.8.13;
import {Owned} from "solmate/auth/Owned.sol";
import {ERC20} from "solmate/tokens/ERC20.sol";
-import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";
-import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IOracle} from "./interfaces/IOracle.sol";
import {IERC20Mintable} from "./interfaces/IERC20Mintable.sol";
+import {IExercise} from "./interfaces/IExercise.sol";
+
+struct Option {
+ address impl;
+ bool isActive;
+}
/// @title Options Token
/// @author zefram.eth
-/// @notice Options token representing the right to purchase the underlying token
-/// at an oracle-specified rate. Similar to call options but with a variable strike
-/// price that's always at a certain discount to the market price.
-/// @dev Assumes the underlying token and the payment token both use 18 decimals.
+/// @notice Options token representing the right to perform an advantageous action,
+/// such as purchasing the underlying token at a discount to the market price.
contract OptionsToken is ERC20, Owned, IERC20Mintable {
- /// -----------------------------------------------------------------------
- /// Library usage
- /// -----------------------------------------------------------------------
-
- using SafeTransferLib for ERC20;
- using FixedPointMathLib for uint256;
-
/// -----------------------------------------------------------------------
/// Errors
/// -----------------------------------------------------------------------
error OptionsToken__PastDeadline();
error OptionsToken__NotTokenAdmin();
- error OptionsToken__SlippageTooHigh();
+ error OptionsToken__NotActive();
/// -----------------------------------------------------------------------
/// Events
/// -----------------------------------------------------------------------
- event Exercise(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
+ event Exercise(address indexed sender, address indexed recipient, uint256 amount, bytes parameters);
event SetOracle(IOracle indexed newOracle);
event SetTreasury(address indexed newTreasury);
@@ -46,22 +41,11 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
/// @notice The contract that has the right to mint options tokens
address public immutable tokenAdmin;
- /// @notice The token paid by the options token holder during redemption
- ERC20 public immutable paymentToken;
-
- /// @notice The underlying token purchased during redemption
- IERC20Mintable public immutable underlyingToken;
-
/// -----------------------------------------------------------------------
/// Storage variables
/// -----------------------------------------------------------------------
- /// @notice The oracle contract that provides the current price to purchase
- /// the underlying token while exercising options (the strike price)
- IOracle public oracle;
-
- /// @notice The treasury address which receives tokens paid during redemption
- address public treasury;
+ Option[] public options;
/// -----------------------------------------------------------------------
/// Constructor
@@ -71,20 +55,9 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
string memory name_,
string memory symbol_,
address owner_,
- address tokenAdmin_,
- ERC20 paymentToken_,
- IERC20Mintable underlyingToken_,
- IOracle oracle_,
- address treasury_
+ address tokenAdmin_
) ERC20(name_, symbol_, 18) Owned(owner_) {
tokenAdmin = tokenAdmin_;
- paymentToken = paymentToken_;
- underlyingToken = underlyingToken_;
- oracle = oracle_;
- treasury = treasury_;
-
- emit SetOracle(oracle_);
- emit SetTreasury(treasury_);
}
/// -----------------------------------------------------------------------
@@ -112,83 +85,82 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
_mint(to, amount);
}
- /// @notice Exercises options tokens to purchase the underlying tokens.
+ /// @notice Exercises options tokens, giving the reward to the recipient.
+ /// @dev WARNING: If `amount` is zero, the bytes returned will be empty and therefore, not decodable.
/// @dev The options tokens are not burnt but sent to address(0) to avoid messing up the
/// inflation schedule.
- /// The oracle may revert if it cannot give a secure result.
/// @param amount The amount of options tokens to exercise
- /// @param maxPaymentAmount The maximum acceptable amount to pay. Used for slippage protection.
- /// @param recipient The recipient of the purchased underlying tokens
- /// @return paymentAmount The amount paid to the treasury to purchase the underlying tokens
- function exercise(uint256 amount, uint256 maxPaymentAmount, address recipient)
+ /// @param recipient The recipient of the reward
+ /// @param params Extra parameters to be used by the exercise function
+ function exercise(uint256 amount, address recipient, uint256 optionId, bytes calldata params)
external
virtual
- returns (uint256 paymentAmount)
+ returns (bytes memory)
{
- return _exercise(amount, maxPaymentAmount, recipient);
+ return _exercise(amount, recipient, optionId, params);
}
- /// @notice Exercises options tokens to purchase the underlying tokens.
+ /// @notice Exercises options tokens, giving the reward to the recipient.
+ /// @dev WARNING: If `amount` is zero, the bytes returned will be empty and therefore, not decodable.
/// @dev The options tokens are not burnt but sent to address(0) to avoid messing up the
/// inflation schedule.
- /// The oracle may revert if it cannot give a secure result.
/// @param amount The amount of options tokens to exercise
- /// @param maxPaymentAmount The maximum acceptable amount to pay. Used for slippage protection.
- /// @param recipient The recipient of the purchased underlying tokens
- /// @param deadline The Unix timestamp (in seconds) after which the call will revert
- /// @return paymentAmount The amount paid to the treasury to purchase the underlying tokens
- function exercise(uint256 amount, uint256 maxPaymentAmount, address recipient, uint256 deadline)
+ /// @param recipient The recipient of the reward
+ /// @param params Extra parameters to be used by the exercise function
+ /// @param deadline The deadline by which the transaction must be mined
+ function exercise(uint256 amount, address recipient, uint256 optionId, bytes calldata params, uint256 deadline)
external
virtual
- returns (uint256 paymentAmount)
+ returns (bytes memory)
{
if (block.timestamp > deadline) revert OptionsToken__PastDeadline();
- return _exercise(amount, maxPaymentAmount, recipient);
+ return _exercise(amount, recipient, optionId, params);
}
/// -----------------------------------------------------------------------
/// Owner functions
/// -----------------------------------------------------------------------
- /// @notice Sets the oracle contract. Only callable by the owner.
- /// @param oracle_ The new oracle contract
- function setOracle(IOracle oracle_) external onlyOwner {
- oracle = oracle_;
- emit SetOracle(oracle_);
+ /// @notice Adds a new Exercise contract to the available options.
+ /// @param impl Address of the Exercise contract, that implements BaseExercise.
+ /// @param isActive Whether oToken holders should be allowed to exercise using this option.
+ function addOption(address impl, bool isActive) external onlyOwner {
+ options.push(Option({impl: impl, isActive: isActive}));
}
- /// @notice Sets the treasury address. Only callable by the owner.
- /// @param treasury_ The new treasury address
- function setTreasury(address treasury_) external onlyOwner {
- treasury = treasury_;
- emit SetTreasury(treasury_);
+ /// @notice Sets an option as active or not. Determines if holders can use it to exercise.
+ /// @param optionId The option's ID.
+ /// @param isActive Whether oToken holders should be allowed to exercise using this option.
+ function setOptionActive(uint256 optionId, bool isActive) external onlyOwner {
+ options[optionId].isActive = isActive;
}
/// -----------------------------------------------------------------------
/// Internal functions
/// -----------------------------------------------------------------------
- function _exercise(uint256 amount, uint256 maxPaymentAmount, address recipient)
+ function _exercise(uint256 amount, address recipient, uint256 optionId, bytes calldata params)
internal
virtual
- returns (uint256 paymentAmount)
+ returns (bytes memory data)
{
// skip if amount is zero
- if (amount == 0) return 0;
+ if (amount == 0) return new bytes(0);
+
+ // get option
+ Option memory option = options[optionId];
+
+ // skip if option is not active
+ if (!option.isActive) revert OptionsToken__NotActive();
// transfer options tokens from msg.sender to address(0)
// we transfer instead of burn because TokenAdmin cares about totalSupply
// which we don't want to change in order to follow the emission schedule
transfer(address(0), amount);
- // transfer payment tokens from msg.sender to the treasury
- paymentAmount = amount.mulWadUp(oracle.getPrice());
- if (paymentAmount > maxPaymentAmount) revert OptionsToken__SlippageTooHigh();
- paymentToken.safeTransferFrom(msg.sender, treasury, paymentAmount);
-
- // mint underlying tokens to recipient
- underlyingToken.mint(recipient, amount);
+ // give rewards to recipient
+ data = IExercise(option.impl).exercise(msg.sender, amount, recipient, params);
- emit Exercise(msg.sender, recipient, amount, paymentAmount);
+ emit Exercise(msg.sender, recipient, amount, params);
}
}
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
new file mode 100644
index 0000000..e101ddf
--- /dev/null
+++ b/src/exercise/BaseExercise.sol
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import {IExercise} from "../interfaces/IExercise.sol";
+import {OptionsToken} from "../OptionsToken.sol";
+
+abstract contract BaseExercise is IExercise {
+ error Exercise__NotOToken();
+
+ OptionsToken public immutable oToken;
+
+ constructor (OptionsToken _oToken) {
+ oToken = _oToken;
+ }
+
+ modifier onlyOToken() {
+ if (msg.sender != address(oToken)) revert Exercise__NotOToken();
+ _;
+ }
+
+ /// @notice Called by the oToken and handles rewarding logic for the user.
+ /// @dev *Must* have onlyOToken modifier.
+ /// @param from Wallet that is exercising tokens
+ /// @param amount Amount of tokens being exercised
+ /// @param recipient Wallet that will receive the rewards for exercising the oTokens
+ /// @param params Extraneous parameters that the function may use - abi.encoded struct
+ function exercise(address from, uint256 amount, address recipient, bytes memory params)
+ external
+ virtual
+ returns (bytes memory data);
+}
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
new file mode 100644
index 0000000..a70e08d
--- /dev/null
+++ b/src/exercise/DiscountExercise.sol
@@ -0,0 +1,135 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import {Owned} from "solmate/auth/Owned.sol";
+import {ERC20} from "solmate/tokens/ERC20.sol";
+import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+
+import {BaseExercise} from "../exercise/BaseExercise.sol";
+import {IOracle} from "../interfaces/IOracle.sol";
+import {IERC20Mintable} from "../interfaces/IERC20Mintable.sol";
+import {OptionsToken} from "../OptionsToken.sol";
+
+struct DiscountExerciseParams {
+ uint256 maxPaymentAmount;
+}
+
+struct DiscountExerciseReturnData {
+ uint256 paymentAmount;
+}
+
+/// @title Options Token Exercise Contract
+/// @author @bigbadbeard, @lookee, @eidolon
+/// @notice Contract that allows the holder of options tokens to exercise them,
+/// in this case, by purchasing the underlying token at a discount to the market price.
+/// @dev Assumes the underlying token and the payment token both use 18 decimals.
+contract DiscountExercise is BaseExercise, Owned {
+ /// Library usage
+ using SafeTransferLib for ERC20;
+ using FixedPointMathLib for uint256;
+
+ /// Errors
+ error Exercise__SlippageTooHigh();
+
+ /// Events
+ event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
+ event SetOracle(IOracle indexed newOracle);
+ event SetTreasury(address indexed newTreasury);
+
+ /// Immutable parameters
+
+ /// @notice The token paid by the options token holder during redemption
+ ERC20 public immutable paymentToken;
+
+ /// @notice The underlying token purchased during redemption
+ IERC20Mintable public immutable underlyingToken;
+
+ /// Storage variables
+
+ /// @notice The oracle contract that provides the current price to purchase
+ /// the underlying token while exercising options (the strike price)
+ IOracle public oracle;
+
+ /// @notice The treasury address which receives tokens paid during redemption
+ address public treasury;
+
+ constructor(
+ OptionsToken oToken_,
+ address owner_,
+ ERC20 paymentToken_,
+ IERC20Mintable underlyingToken_,
+ IOracle oracle_,
+ address treasury_
+ ) BaseExercise(oToken_) Owned(owner_) {
+ paymentToken = paymentToken_;
+ underlyingToken = underlyingToken_;
+ oracle = oracle_;
+ treasury = treasury_;
+
+ emit SetOracle(oracle_);
+ emit SetTreasury(treasury_);
+ }
+
+ /// External functions
+
+ /// @notice Exercises options tokens to purchase the underlying tokens.
+ /// @dev The oracle may revert if it cannot give a secure result.
+ /// @param from The user that is exercising their options tokens
+ /// @param amount The amount of options tokens to exercise
+ /// @param recipient The recipient of the purchased underlying tokens
+ /// @param params Extra parameters to be used by the exercise function
+ function exercise(address from, uint256 amount, address recipient, bytes memory params)
+ external
+ virtual
+ override
+ onlyOToken
+ returns (bytes memory data)
+ {
+ if (msg.sender != address(oToken)) revert Exercise__NotOToken();
+ return _exercise(from, amount, recipient, params);
+ }
+
+ /// Owner functions
+
+ /// @notice Sets the oracle contract. Only callable by the owner.
+ /// @param oracle_ The new oracle contract
+ function setOracle(IOracle oracle_) external onlyOwner {
+ oracle = oracle_;
+ emit SetOracle(oracle_);
+ }
+
+ /// @notice Sets the treasury address. Only callable by the owner.
+ /// @param treasury_ The new treasury address
+ function setTreasury(address treasury_) external onlyOwner {
+ treasury = treasury_;
+ emit SetTreasury(treasury_);
+ }
+
+ /// Internal functions
+
+ function _exercise(address from, uint256 amount, address recipient, bytes memory params)
+ internal
+ virtual
+ returns (bytes memory data)
+ {
+ // decode params
+ DiscountExerciseParams memory _params = abi.decode(params, (DiscountExerciseParams));
+
+ // transfer payment tokens from user to the treasury
+ uint256 paymentAmount = amount.mulWadUp(oracle.getPrice());
+ if (paymentAmount > _params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
+ paymentToken.safeTransferFrom(from, treasury, paymentAmount);
+
+ // mint underlying tokens to recipient
+ underlyingToken.mint(recipient, amount);
+
+ data = abi.encode(
+ DiscountExerciseReturnData({
+ paymentAmount: paymentAmount
+ })
+ );
+
+ emit Exercised(from, recipient, amount, paymentAmount);
+ }
+}
diff --git a/src/interfaces/IExercise.sol b/src/interfaces/IExercise.sol
new file mode 100644
index 0000000..3f12149
--- /dev/null
+++ b/src/interfaces/IExercise.sol
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+interface IExercise {
+ /// @notice Exercise the options token
+ /// @param amount The amount of options tokens to exercise
+ /// @param recipient The address that receives the underlying tokens
+ /// @param params Additional parameters for the exercise
+ function exercise(address from, uint256 amount, address recipient, bytes memory params) external returns (bytes memory data);
+}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index bd8c3d4..8ba400c 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -6,11 +6,13 @@ import "forge-std/Test.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {OptionsToken} from "../src/OptionsToken.sol";
+import {DiscountExerciseParams, DiscountExerciseReturnData, DiscountExercise} from "../src/exercise/DiscountExercise.sol";
import {TestERC20Mintable} from "./mocks/TestERC20Mintable.sol";
import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
import {IERC20Mintable} from "../src/interfaces/IERC20Mintable.sol";
import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
+
contract OptionsTokenTest is Test {
using FixedPointMathLib for uint256;
@@ -28,6 +30,7 @@ contract OptionsTokenTest is Test {
address treasury;
OptionsToken optionsToken;
+ DiscountExercise exerciser;
BalancerOracle oracle;
MockBalancerTwapOracle balancerTwapOracle;
TestERC20Mintable paymentToken;
@@ -45,12 +48,18 @@ contract OptionsTokenTest is Test {
new BalancerOracle(balancerTwapOracle, owner, ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
paymentToken = new TestERC20Mintable();
underlyingToken = IERC20Mintable(address(new TestERC20Mintable()));
- optionsToken =
- new OptionsToken("TIT Call Option Token", "oTIT", owner, tokenAdmin, paymentToken, underlyingToken, oracle, treasury);
+ optionsToken = new OptionsToken("TIT Call Option Token", "oTIT", owner, tokenAdmin);
+
+ exerciser = new DiscountExercise(optionsToken, owner, paymentToken, underlyingToken, oracle, treasury);
+
+ // add exerciser to the list of options
+ vm.startPrank(owner);
+ optionsToken.addOption(address(exerciser), true);
+ vm.stopPrank();
// set up contracts
balancerTwapOracle.setTwapValue(ORACLE_INIT_TWAP_VALUE);
- paymentToken.approve(address(optionsToken), type(uint256).max);
+ paymentToken.approve(address(exerciser), type(uint256).max);
}
function test_onlyTokenAdminCanMint(uint256 amount, address hacker) public {
@@ -83,7 +92,8 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- uint256 actualPaymentAmount = optionsToken.exercise(amount, expectedPaymentAmount, recipient);
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ bytes memory returnBytes = optionsToken.exercise(amount, recipient, 0, abi.encode(params));
// verify options tokens were transferred
assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
@@ -95,7 +105,10 @@ contract OptionsTokenTest is Test {
assertEqDecimal(
paymentToken.balanceOf(treasury), expectedPaymentAmount, 18, "treasury didn't receive payment tokens"
);
- assertEqDecimal(actualPaymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
+ if (amount != 0) {
+ DiscountExerciseReturnData memory returnData = abi.decode(returnBytes, (DiscountExerciseReturnData));
+ assertEqDecimal(returnData.paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
+ }
}
function test_exerciseMinPrice(uint256 amount, address recipient) public {
@@ -113,7 +126,8 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- uint256 actualPaymentAmount = optionsToken.exercise(amount, expectedPaymentAmount, recipient);
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ bytes memory returnBytes = optionsToken.exercise(amount, recipient, 0, abi.encode(params));
// verify options tokens were transferred
assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
@@ -125,7 +139,10 @@ contract OptionsTokenTest is Test {
assertEqDecimal(
paymentToken.balanceOf(treasury), expectedPaymentAmount, 18, "treasury didn't receive payment tokens"
);
- assertEqDecimal(actualPaymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
+ if (amount != 0) {
+ DiscountExerciseReturnData memory returnData = abi.decode(returnBytes, (DiscountExerciseReturnData));
+ assertEqDecimal(returnData.paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
+ }
}
function test_exerciseHighSlippage(uint256 amount, address recipient) public {
@@ -141,8 +158,9 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- vm.expectRevert(bytes4(keccak256("OptionsToken__SlippageTooHigh()")));
- optionsToken.exercise(amount, expectedPaymentAmount - 1, recipient);
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1});
+ vm.expectRevert(bytes4(keccak256("Exercise__SlippageTooHigh()")));
+ optionsToken.exercise(amount, recipient, 0, abi.encode(params));
}
function test_exerciseTwapOracleNotReady(uint256 amount, address recipient) public {
@@ -164,8 +182,9 @@ contract OptionsTokenTest is Test {
oracle.setParams(ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
// exercise options tokens which should fail
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
vm.expectRevert(bytes4(keccak256("BalancerOracle__TWAPOracleNotReady()")));
- optionsToken.exercise(amount, expectedPaymentAmount, recipient);
+ optionsToken.exercise(amount, recipient, 0, abi.encode(params));
}
function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
@@ -182,7 +201,48 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
vm.expectRevert(bytes4(keccak256("OptionsToken__PastDeadline()")));
- optionsToken.exercise(amount, expectedPaymentAmount, recipient, deadline);
+ optionsToken.exercise(amount, recipient, 0, abi.encode(params), deadline);
+ }
+
+ function test_exerciseNotOToken(uint256 amount, address recipient) public {
+ amount = bound(amount, 0, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ uint256 expectedPaymentAmount =
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(ORACLE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ paymentToken.mint(address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ vm.expectRevert(bytes4(keccak256("Exercise__NotOToken()")));
+ exerciser.exercise(address(this), amount, recipient, abi.encode(params));
}
+
+ function test_exerciseOptionNotActive(uint256 amount, address recipient) public {
+ amount = bound(amount, 1, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // set option inactive
+ vm.prank(owner);
+ optionsToken.setOptionActive(0, false);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount =
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(ORACLE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ paymentToken.mint(address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ vm.expectRevert(bytes4(keccak256("OptionsToken__NotActive()")));
+ optionsToken.exercise(amount, recipient, 0, abi.encode(params));
+ }
+
}
From 93dda5d124cb9ae4b2e9e898efe73fb1b7c9912d Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Sun, 12 Nov 2023 22:21:22 -0300
Subject: [PATCH 02/64] forge install: v3-core
0.8
---
.gitmodules | 3 +++
lib/v3-core | 1 +
2 files changed, 4 insertions(+)
create mode 160000 lib/v3-core
diff --git a/.gitmodules b/.gitmodules
index 5e0106b..522601e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,3 +7,6 @@
[submodule "lib/create3-factory"]
path = lib/create3-factory
url = https://github.com/zeframlou/create3-factory
+[submodule "lib/v3-core"]
+ path = lib/v3-core
+ url = https://github.com/uniswap/v3-core
diff --git a/lib/v3-core b/lib/v3-core
new file mode 160000
index 0000000..6562c52
--- /dev/null
+++ b/lib/v3-core
@@ -0,0 +1 @@
+Subproject commit 6562c52e8f75f0c10f9deaf44861847585fc8129
From a29b4aeb95d8e3c667f332e0c69ecd78af5695c9 Mon Sep 17 00:00:00 2001
From: Eidolon <92181746+imrtlfarm@users.noreply.github.com>
Date: Sat, 18 Nov 2023 11:02:10 +0000
Subject: [PATCH 03/64] begin adding fees to base exercise
---
src/exercise/BaseExercise.sol | 52 +++++++++++++++++++-
src/exercise/DiscountExercise.sol | 16 ++-----
src/interfaces/IERC20.sol | 79 +++++++++++++++++++++++++++++++
3 files changed, 133 insertions(+), 14 deletions(-)
create mode 100644 src/interfaces/IERC20.sol
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index e101ddf..aeda18f 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -3,14 +3,37 @@ pragma solidity ^0.8.13;
import {IExercise} from "../interfaces/IExercise.sol";
import {OptionsToken} from "../OptionsToken.sol";
+import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {Owned} from "solmate/auth/Owned.sol";
+import {ERC20} from "solmate/tokens/ERC20.sol";
+
+abstract contract BaseExercise is IExercise, Owned {
+ using SafeTransferLib for ERC20;
+ using FixedPointMathLib for uint256;
-abstract contract BaseExercise is IExercise {
error Exercise__NotOToken();
+ error Exercise__feeArrayLengthMismatch();
+
+ event SetFees(address[] feeRecipients, uint256[] feeBPS);
+ event DistributeFees(address[] feeRecipients, uint256[] feeBPS, uint256 totalAmount);
+
+ uint256 public constant FEE_DENOMINATOR = 10_000;
OptionsToken public immutable oToken;
- constructor (OptionsToken _oToken) {
+ /// @notice The fee addresses which receive any tokens paid during redemption
+ address[] public feeRecipients;
+
+ /// @notice The fee percentage in basis points, feeRecipients[n] receives
+ /// feeBPS[n] * fee / 10_000 in fees
+ uint256[] public feeBPS;
+
+ constructor (OptionsToken _oToken, address[] memory _feeRecipients, uint256[] memory _feeBPS) {
oToken = _oToken;
+ if (_feeRecipients.length != _feeBPS.length) revert Exercise__feeArrayLengthMismatch();
+ feeRecipients = _feeRecipients;
+ feeBPS = _feeBPS;
}
modifier onlyOToken() {
@@ -28,4 +51,29 @@ abstract contract BaseExercise is IExercise {
external
virtual
returns (bytes memory data);
+
+ function setFees(address[] memory _feeRecipients, uint256[] memory _feeBPS) external onlyOwner {
+ if (_feeRecipients.length != _feeBPS.length) revert Exercise__feeArrayLengthMismatch();
+ feeRecipients = _feeRecipients;
+ feeBPS = _feeBPS;
+ emit SetFees(_feeRecipients, _feeBPS);
+ }
+
+ /// @notice Distributes fees to the fee recipients from a token holder who has approved
+ function distributeFeesFrom(uint256 totalAmount, ERC20 token, address from) internal virtual{
+ for (uint256 i = 0; i < feeRecipients.length; i++) {
+ uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
+ token.safeTransferFrom(from, feeRecipients[i], feeAmount);
+ }
+ emit DistributeFees(feeRecipients, feeBPS, totalAmount);
+ }
+
+ /// @notice Distributes fees to the fee recipients from token balance of exercise contract
+ function distributeFees(uint256 totalAmount, ERC20 token, address from) internal virtual{
+ for (uint256 i = 0; i < feeRecipients.length; i++) {
+ uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
+ token.safeTransfer(feeRecipients[i], feeAmount);
+ }
+ emit DistributeFees(feeRecipients, feeBPS, totalAmount);
+ }
}
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index a70e08d..17816ee 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -24,7 +24,7 @@ struct DiscountExerciseReturnData {
/// @notice Contract that allows the holder of options tokens to exercise them,
/// in this case, by purchasing the underlying token at a discount to the market price.
/// @dev Assumes the underlying token and the payment token both use 18 decimals.
-contract DiscountExercise is BaseExercise, Owned {
+contract DiscountExercise is BaseExercise {
/// Library usage
using SafeTransferLib for ERC20;
using FixedPointMathLib for uint256;
@@ -60,15 +60,14 @@ contract DiscountExercise is BaseExercise, Owned {
ERC20 paymentToken_,
IERC20Mintable underlyingToken_,
IOracle oracle_,
- address treasury_
- ) BaseExercise(oToken_) Owned(owner_) {
+ address[] memory feeRecipients_,
+ uint256[] memory feeBPS_
+ ) BaseExercise(oToken_, feeRecipients_, feeBPS_) Owned(owner_) {
paymentToken = paymentToken_;
underlyingToken = underlyingToken_;
oracle = oracle_;
- treasury = treasury_;
emit SetOracle(oracle_);
- emit SetTreasury(treasury_);
}
/// External functions
@@ -99,13 +98,6 @@ contract DiscountExercise is BaseExercise, Owned {
emit SetOracle(oracle_);
}
- /// @notice Sets the treasury address. Only callable by the owner.
- /// @param treasury_ The new treasury address
- function setTreasury(address treasury_) external onlyOwner {
- treasury = treasury_;
- emit SetTreasury(treasury_);
- }
-
/// Internal functions
function _exercise(address from, uint256 amount, address recipient, bytes memory params)
diff --git a/src/interfaces/IERC20.sol b/src/interfaces/IERC20.sol
new file mode 100644
index 0000000..4ca8545
--- /dev/null
+++ b/src/interfaces/IERC20.sol
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
+
+pragma solidity ^0.8.20;
+
+/**
+ * @dev Interface of the ERC20 standard as defined in the EIP.
+ */
+interface IERC20 {
+ /**
+ * @dev Emitted when `value` tokens are moved from one account (`from`) to
+ * another (`to`).
+ *
+ * Note that `value` may be zero.
+ */
+ event Transfer(address indexed from, address indexed to, uint256 value);
+
+ /**
+ * @dev Emitted when the allowance of a `spender` for an `owner` is set by
+ * a call to {approve}. `value` is the new allowance.
+ */
+ event Approval(address indexed owner, address indexed spender, uint256 value);
+
+ /**
+ * @dev Returns the value of tokens in existence.
+ */
+ function totalSupply() external view returns (uint256);
+
+ /**
+ * @dev Returns the value of tokens owned by `account`.
+ */
+ function balanceOf(address account) external view returns (uint256);
+
+ /**
+ * @dev Moves a `value` amount of tokens from the caller's account to `to`.
+ *
+ * Returns a boolean value indicating whether the operation succeeded.
+ *
+ * Emits a {Transfer} event.
+ */
+ function transfer(address to, uint256 value) external returns (bool);
+
+ /**
+ * @dev Returns the remaining number of tokens that `spender` will be
+ * allowed to spend on behalf of `owner` through {transferFrom}. This is
+ * zero by default.
+ *
+ * This value changes when {approve} or {transferFrom} are called.
+ */
+ function allowance(address owner, address spender) external view returns (uint256);
+
+ /**
+ * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
+ * caller's tokens.
+ *
+ * Returns a boolean value indicating whether the operation succeeded.
+ *
+ * IMPORTANT: Beware that changing an allowance with this method brings the risk
+ * that someone may use both the old and the new allowance by unfortunate
+ * transaction ordering. One possible solution to mitigate this race
+ * condition is to first reduce the spender's allowance to 0 and set the
+ * desired value afterwards:
+ * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
+ *
+ * Emits an {Approval} event.
+ */
+ function approve(address spender, uint256 value) external returns (bool);
+
+ /**
+ * @dev Moves a `value` amount of tokens from `from` to `to` using the
+ * allowance mechanism. `value` is then deducted from the caller's
+ * allowance.
+ *
+ * Returns a boolean value indicating whether the operation succeeded.
+ *
+ * Emits a {Transfer} event.
+ */
+ function transferFrom(address from, address to, uint256 value) external returns (bool);
+}
\ No newline at end of file
From dc94d13195cbcc5843c4c33eca4796f8f35e69b2 Mon Sep 17 00:00:00 2001
From: Eidolon <92181746+imrtlfarm@users.noreply.github.com>
Date: Sat, 18 Nov 2023 11:02:44 +0000
Subject: [PATCH 04/64] delete IERC20.sol
---
src/interfaces/IERC20.sol | 79 ---------------------------------------
1 file changed, 79 deletions(-)
delete mode 100644 src/interfaces/IERC20.sol
diff --git a/src/interfaces/IERC20.sol b/src/interfaces/IERC20.sol
deleted file mode 100644
index 4ca8545..0000000
--- a/src/interfaces/IERC20.sol
+++ /dev/null
@@ -1,79 +0,0 @@
-// SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
-
-pragma solidity ^0.8.20;
-
-/**
- * @dev Interface of the ERC20 standard as defined in the EIP.
- */
-interface IERC20 {
- /**
- * @dev Emitted when `value` tokens are moved from one account (`from`) to
- * another (`to`).
- *
- * Note that `value` may be zero.
- */
- event Transfer(address indexed from, address indexed to, uint256 value);
-
- /**
- * @dev Emitted when the allowance of a `spender` for an `owner` is set by
- * a call to {approve}. `value` is the new allowance.
- */
- event Approval(address indexed owner, address indexed spender, uint256 value);
-
- /**
- * @dev Returns the value of tokens in existence.
- */
- function totalSupply() external view returns (uint256);
-
- /**
- * @dev Returns the value of tokens owned by `account`.
- */
- function balanceOf(address account) external view returns (uint256);
-
- /**
- * @dev Moves a `value` amount of tokens from the caller's account to `to`.
- *
- * Returns a boolean value indicating whether the operation succeeded.
- *
- * Emits a {Transfer} event.
- */
- function transfer(address to, uint256 value) external returns (bool);
-
- /**
- * @dev Returns the remaining number of tokens that `spender` will be
- * allowed to spend on behalf of `owner` through {transferFrom}. This is
- * zero by default.
- *
- * This value changes when {approve} or {transferFrom} are called.
- */
- function allowance(address owner, address spender) external view returns (uint256);
-
- /**
- * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
- * caller's tokens.
- *
- * Returns a boolean value indicating whether the operation succeeded.
- *
- * IMPORTANT: Beware that changing an allowance with this method brings the risk
- * that someone may use both the old and the new allowance by unfortunate
- * transaction ordering. One possible solution to mitigate this race
- * condition is to first reduce the spender's allowance to 0 and set the
- * desired value afterwards:
- * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
- *
- * Emits an {Approval} event.
- */
- function approve(address spender, uint256 value) external returns (bool);
-
- /**
- * @dev Moves a `value` amount of tokens from `from` to `to` using the
- * allowance mechanism. `value` is then deducted from the caller's
- * allowance.
- *
- * Returns a boolean value indicating whether the operation succeeded.
- *
- * Emits a {Transfer} event.
- */
- function transferFrom(address from, address to, uint256 value) external returns (bool);
-}
\ No newline at end of file
From b49b349bc434107854fe947f2ff502aff453f916 Mon Sep 17 00:00:00 2001
From: Eidolon <92181746+imrtlfarm@users.noreply.github.com>
Date: Sat, 18 Nov 2023 11:07:54 +0000
Subject: [PATCH 05/64] change fee fees in discount exercsise
---
src/exercise/DiscountExercise.sol | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 17816ee..648a73a 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -111,8 +111,7 @@ contract DiscountExercise is BaseExercise {
// transfer payment tokens from user to the treasury
uint256 paymentAmount = amount.mulWadUp(oracle.getPrice());
if (paymentAmount > _params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
- paymentToken.safeTransferFrom(from, treasury, paymentAmount);
-
+ distributeFeesFrom(paymentAmount, paymentToken, from);
// mint underlying tokens to recipient
underlyingToken.mint(recipient, amount);
From 1ec57ad5f5e484410a27ca5062e08f19166fba04 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Mon, 20 Nov 2023 21:34:33 -0300
Subject: [PATCH 06/64] add univ3 oracle
---
.env.example | 4 +-
remappings.txt | 2 +
src/interfaces/IUniswapPool.sol | 10 ++
src/oracles/UniswapV3Oracle.sol | 188 ++++++++++++++++++++++++++++
test/UniswapV3Oracle.t.sol | 213 ++++++++++++++++++++++++++++++++
test/interfaces/ISwapRouter.sol | 67 ++++++++++
test/mocks/MockUniswapPool.sol | 49 ++++++++
7 files changed, 532 insertions(+), 1 deletion(-)
create mode 100644 remappings.txt
create mode 100644 src/interfaces/IUniswapPool.sol
create mode 100644 src/oracles/UniswapV3Oracle.sol
create mode 100644 test/UniswapV3Oracle.t.sol
create mode 100644 test/interfaces/ISwapRouter.sol
create mode 100644 test/mocks/MockUniswapPool.sol
diff --git a/.env.example b/.env.example
index 6bb663b..a8bd1d5 100644
--- a/.env.example
+++ b/.env.example
@@ -19,4 +19,6 @@ ORACLE_MIN_PRICE=XXX # 18 decimals
OT_NAME="LIT Call Option Token"
OT_SYMBOL="oLIT"
-OT_PAYMENT_TOKEN=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 # WETH
\ No newline at end of file
+OT_PAYMENT_TOKEN=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 # WETH
+
+OPTIMISM_RPC_URL="https://mainnet.optimism.io"
diff --git a/remappings.txt b/remappings.txt
new file mode 100644
index 0000000..a127e27
--- /dev/null
+++ b/remappings.txt
@@ -0,0 +1,2 @@
+create3-factory/=lib/create3-factory/src/
+v3-core/=lib/v3-core/contracts/
diff --git a/src/interfaces/IUniswapPool.sol b/src/interfaces/IUniswapPool.sol
new file mode 100644
index 0000000..1e6a893
--- /dev/null
+++ b/src/interfaces/IUniswapPool.sol
@@ -0,0 +1,10 @@
+pragma solidity ^0.8.0;
+
+import {IUniswapV3PoolDerivedState} from "v3-core/interfaces/pool/IUniswapV3PoolDerivedState.sol";
+import {IUniswapV3PoolImmutables} from "v3-core/interfaces/pool/IUniswapV3PoolImmutables.sol";
+
+/**
+ * @dev Interface for querying historical data from a UniswapV3 Pool that can be used as a Price Oracle.
+ * @notice From v3-core/interfaces
+ */
+interface IUniswapPool is IUniswapV3PoolDerivedState, IUniswapV3PoolImmutables {}
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
new file mode 100644
index 0000000..94d51e1
--- /dev/null
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -0,0 +1,188 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import {Owned} from "solmate/auth/Owned.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+
+import {IOracle} from "../interfaces/IOracle.sol";
+import "forge-std/console.sol";
+
+import {IUniswapPool} from "../interfaces/IUniswapPool.sol";
+import {TickMath} from "v3-core/libraries/TickMath.sol";
+import {FullMath} from "v3-core/libraries/FullMath.sol";
+
+/// @title Oracle using Uniswap TWAP oracle as data source
+/// @author zefram.eth & lookeey
+/// @notice The oracle contract that provides the current price to purchase
+/// the underlying token while exercising options. Uses UniswapV3 TWAP oracle
+/// as data source, and then applies a multiplier & lower bound.
+/// @dev IMPORTANT: This oracle assumes both tokens have 18 decimals, and
+/// returns the price with 18 decimals.
+contract UniswapV3Oracle is IOracle, Owned {
+ /// -----------------------------------------------------------------------
+ /// Library usage
+ /// -----------------------------------------------------------------------
+
+ using FixedPointMathLib for uint256;
+
+ /// -----------------------------------------------------------------------
+ /// Errors
+ /// -----------------------------------------------------------------------
+
+ error UniswapOracle__TWAPOracleNotReady();
+
+ /// -----------------------------------------------------------------------
+ /// Events
+ /// -----------------------------------------------------------------------
+
+ event SetParams(uint16 multiplier, uint56 secs, uint56 ago, uint128 minPrice);
+
+ /// -----------------------------------------------------------------------
+ /// Constants
+ /// -----------------------------------------------------------------------
+
+ /// @notice The denominator for converting the multiplier into a decimal number.
+ /// i.e. multiplier uses 4 decimals.
+ uint256 internal constant MULTIPLIER_DENOM = 10000;
+
+ /// -----------------------------------------------------------------------
+ /// Immutable parameters
+ /// -----------------------------------------------------------------------
+
+ /// @notice The UniswapV3 Pool contract (provides the oracle)
+ IUniswapPool public immutable uniswapPool;
+
+ /// -----------------------------------------------------------------------
+ /// Storage variables
+ /// -----------------------------------------------------------------------
+
+ /// @notice The multiplier applied to the TWAP value. Encodes the discount of
+ /// the options token. Uses 4 decimals.
+ uint16 public multiplier;
+
+ /// @notice The size of the window to take the TWAP value over in seconds.
+ uint32 public secs;
+
+ /// @notice The number of seconds in the past to take the TWAP from. The window
+ /// would be (block.timestamp - secs - ago, block.timestamp - ago].
+ uint32 public ago;
+
+ /// @notice The minimum value returned by getPrice(). Maintains a floor for the
+ /// price to mitigate potential attacks on the TWAP oracle.
+ uint128 public minPrice;
+
+ /// @notice Whether the price should be returned in terms of token0.
+ /// If false, the price is returned in terms of token1.
+ bool public isToken0;
+
+ /// -----------------------------------------------------------------------
+ /// Constructor
+ /// -----------------------------------------------------------------------
+
+ constructor(
+ IUniswapPool uniswapPool_,
+ address token,
+ address owner_,
+ uint16 multiplier_,
+ uint32 secs_,
+ uint32 ago_,
+ uint128 minPrice_
+ ) Owned(owner_) {
+ uniswapPool = uniswapPool_;
+ isToken0 = token == uniswapPool_.token0();
+ multiplier = multiplier_;
+ secs = secs_;
+ ago = ago_;
+ minPrice = minPrice_;
+
+ emit SetParams(multiplier_, secs_, ago_, minPrice_);
+ }
+
+ /// -----------------------------------------------------------------------
+ /// IOracle
+ /// -----------------------------------------------------------------------
+
+ /// @inheritdoc IOracle
+ function getPrice() external view override returns (uint256 price) {
+ /// -----------------------------------------------------------------------
+ /// Storage loads
+ /// -----------------------------------------------------------------------
+
+ uint256 multiplier_ = multiplier;
+ uint32 secs_ = secs;
+ uint32 ago_ = ago;
+ uint256 minPrice_ = minPrice;
+
+ /// -----------------------------------------------------------------------
+ /// Validation
+ /// -----------------------------------------------------------------------
+
+ // The UniswapV3 pool reverts on invalid TWAP queries, so we don't need to
+
+ /// -----------------------------------------------------------------------
+ /// Computation
+ /// -----------------------------------------------------------------------
+
+ // query Uniswap oracle to get TWAP tick
+ {
+ uint32 _twapDuration = secs_;
+ uint32 _twapAgo = ago_;
+ uint32[] memory secondsAgo = new uint32[](2);
+ secondsAgo[0] = _twapDuration + _twapAgo;
+ secondsAgo[1] = _twapAgo;
+
+ (int56[] memory tickCumulatives,) = uniswapPool.observe(secondsAgo);
+ int24 tick = int24((tickCumulatives[1] - tickCumulatives[0]) / int56(int32(_twapDuration)));
+
+ // token decimals is 18
+ uint256 decimals = 1e18;
+
+ // from https://optimistic.etherscan.io/address/0xB210CE856631EeEB767eFa666EC7C1C57738d438#code#F5#L49
+ uint160 sqrtRatioX96 = TickMath.getSqrtRatioAtTick(tick);
+
+ // Calculate quoteAmount with better precision if it doesn't overflow when multiplied by itself
+ if (sqrtRatioX96 <= type(uint128).max) {
+ uint256 ratioX192 = uint256(sqrtRatioX96) * sqrtRatioX96;
+ price = isToken0
+ ? FullMath.mulDiv(ratioX192, decimals, 1 << 192)
+ : FullMath.mulDiv(1 << 192, decimals, ratioX192);
+ } else {
+ uint256 ratioX128 = FullMath.mulDiv(sqrtRatioX96, sqrtRatioX96, 1 << 64);
+ price = isToken0
+ ? FullMath.mulDiv(ratioX128, decimals, 1 << 128)
+ : FullMath.mulDiv(1 << 128, decimals, ratioX128);
+ }
+ }
+
+ // apply multiplier to price
+ price = price.mulDivUp(multiplier_, MULTIPLIER_DENOM);
+
+ // bound price above minPrice
+ price = price < minPrice_ ? minPrice_ : price;
+ }
+
+ /// -----------------------------------------------------------------------
+ /// Owner functions
+ /// -----------------------------------------------------------------------
+
+ /// @notice Updates the oracle parameters. Only callable by the owner.
+ /// @param multiplier_ The multiplier applied to the TWAP value. Encodes the discount of
+ /// the options token. Uses 4 decimals.
+ /// @param secs_ The size of the window to take the TWAP value over in seconds.
+ /// @param ago_ The number of seconds in the past to take the TWAP from. The window
+ /// would be (block.timestamp - secs - ago, block.timestamp - ago].
+ /// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
+ /// price to mitigate potential attacks on the TWAP oracle.
+ /// @param isToken0_ Whether the price should be returned in terms of token0.
+ function setParams(uint16 multiplier_, uint32 secs_, uint32 ago_, uint128 minPrice_, bool isToken0_)
+ external
+ onlyOwner
+ {
+ multiplier = multiplier_;
+ secs = secs_;
+ ago = ago_;
+ minPrice = minPrice_;
+ isToken0 = isToken0_;
+ emit SetParams(multiplier_, secs_, ago_, minPrice_);
+ }
+}
diff --git a/test/UniswapV3Oracle.t.sol b/test/UniswapV3Oracle.t.sol
new file mode 100644
index 0000000..2a9b8b7
--- /dev/null
+++ b/test/UniswapV3Oracle.t.sol
@@ -0,0 +1,213 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import "forge-std/Test.sol";
+import "forge-std/console.sol";
+import {UniswapV3Oracle} from "../src/oracles/UniswapV3Oracle.sol";
+import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
+import {TickMath} from "v3-core/libraries/TickMath.sol";
+import {FullMath} from "v3-core/libraries/FullMath.sol";
+import {ISwapRouter} from "./interfaces/ISwapRouter.sol";
+import {IUniswapPool} from "../src/interfaces/IUniswapPool.sol";
+import {MockUniswapPool} from "./mocks/MockUniswapPool.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {IERC20} from "forge-std/interfaces/IERC20.sol";
+
+struct Params {
+ IUniswapPool pool;
+ address token;
+ address owner;
+ uint16 multiplier;
+ uint32 secs;
+ uint32 ago;
+ uint128 minPrice;
+}
+
+contract UniswapOracleTest is Test {
+ using stdStorage for StdStorage;
+
+ // mock config
+ Params _mock;
+ MockUniswapPool mockV3Pool;
+ // observation on 2023-09-20 11:26 UTC-3, UNIWETH Ethereum Pool
+ int56[2] sampleCumulatives = [int56(-4072715107990), int56(-4072608557758)];
+ // expected price in terms of token0
+ uint256 expectedPriceToken0 = 372078200928347021722;
+
+ string OPTIMISM_RPC_URL = vm.envString("OPTIMISM_RPC_URL");
+ uint32 FORK_BLOCK = 112198905;
+
+ address SWAP_ROUTER_ADDRESS = 0xE592427A0AEce92De3Edee1F18E0157C05861564;
+ address WETH_OP_POOL_ADDRESS = 0x68F5C0A2DE713a54991E01858Fd27a3832401849;
+ address OP_ADDRESS = 0x4200000000000000000000000000000000000042;
+ address WETH_ADDRESS = 0x4200000000000000000000000000000000000006;
+ uint24 POOL_FEE = 3000;
+
+ uint256 opFork;
+
+ ISwapRouter swapRouter;
+ Params _default;
+
+ function setUp() public {
+ mockV3Pool = new MockUniswapPool();
+ mockV3Pool.setCumulatives(sampleCumulatives);
+ mockV3Pool.setToken0(OP_ADDRESS);
+
+ _default = Params(IUniswapPool(WETH_OP_POOL_ADDRESS), OP_ADDRESS, address(this), 10000, 30 minutes, 0, 1000);
+ swapRouter = ISwapRouter(SWAP_ROUTER_ADDRESS);
+ }
+
+ /// ----------------------------------------------------------------------
+ /// Mock tests
+ /// ----------------------------------------------------------------------
+
+ function test_PriceToken0() public {
+ UniswapV3Oracle oracle = new UniswapV3Oracle(
+ mockV3Pool,
+ OP_ADDRESS,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ uint256 price = oracle.getPrice();
+ assertEq(price, expectedPriceToken0);
+ }
+
+ function test_PriceToken1() public {
+ UniswapV3Oracle oracle = new UniswapV3Oracle(
+ mockV3Pool,
+ address(0),
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ uint256 price = oracle.getPrice();
+ uint256 expectedPriceToken1 = price = FixedPointMathLib.divWadUp(1e18, price);
+ assertEq(price, expectedPriceToken1);
+ }
+
+ function test_PriceToken0Multiplier() public {
+ uint16 multiplier = 5000;
+ UniswapV3Oracle oracle = new UniswapV3Oracle(
+ mockV3Pool,
+ _default.token,
+ _default.owner,
+ multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ uint256 price = oracle.getPrice();
+ uint256 expectedPriceWithMultiplier = FixedPointMathLib.mulDivUp(expectedPriceToken0, multiplier, 10000);
+ assertEq(price, expectedPriceWithMultiplier);
+ }
+
+ /// ----------------------------------------------------------------------
+ /// Fork tests
+ /// ----------------------------------------------------------------------
+
+ function test_priceWithinAcceptableRange() public {
+ opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
+
+ UniswapV3Oracle oracle = new UniswapV3Oracle(
+ _default.pool,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ uint oraclePrice = oracle.getPrice();
+
+ (uint160 sqrtRatioX96,,,,,,) = IUniswapV3Pool(WETH_OP_POOL_ADDRESS).slot0();
+ uint256 spotPrice = computePriceFromX96(sqrtRatioX96);
+ assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too big"); // 1%
+ }
+
+ function test_priceManipulation() public {
+ opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
+
+ UniswapV3Oracle oracle = new UniswapV3Oracle(
+ _default.pool,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ address manipulator1 = makeAddr("manipulator");
+ deal(OP_ADDRESS, manipulator1, 1000000 ether);
+
+ // register initial oracle price
+ uint256 price_1 = oracle.getPrice();
+
+ // perform a large swap
+ vm.startPrank(manipulator1);
+ ISwapRouter.ExactInputSingleParams memory paramsIn =
+ ISwapRouter.ExactInputSingleParams({
+ tokenIn: OP_ADDRESS,
+ tokenOut: WETH_ADDRESS,
+ fee: POOL_FEE,
+ recipient: manipulator1,
+ deadline: block.timestamp,
+ amountIn: 1000000 ether,
+ amountOutMinimum: 0,
+ sqrtPriceLimitX96: 0
+ });
+ IERC20(OP_ADDRESS).approve(address(swapRouter), 1000000 ether);
+ uint amountOut = swapRouter.exactInputSingle(paramsIn);
+ vm.stopPrank();
+
+ // wait 60 seconds
+ skip(1 minutes);
+
+ // perform additional, smaller swap
+ address manipulator2 = makeAddr("manipulator");
+ deal(OP_ADDRESS, manipulator2, amountOut);
+ vm.startPrank(manipulator2);
+ ISwapRouter.ExactInputSingleParams memory paramsOut =
+ ISwapRouter.ExactInputSingleParams({
+ tokenIn: OP_ADDRESS,
+ tokenOut: WETH_ADDRESS,
+ fee: POOL_FEE,
+ recipient: manipulator1,
+ deadline: block.timestamp,
+ amountIn: amountOut / 100, // perform small swap
+ amountOutMinimum: 0,
+ sqrtPriceLimitX96: 0
+ });
+ IERC20(OP_ADDRESS).approve(address(swapRouter), amountOut / 100);
+ swapRouter.exactInputSingle(paramsOut);
+
+ assertApproxEqRel(price_1, oracle.getPrice(), 0.01 ether, "price variance too large");
+ }
+
+ function computePriceFromX96(uint160 sqrtRatioX96) internal view returns (uint256 price) {
+ bool isToken0 = OP_ADDRESS == IUniswapV3Pool(WETH_OP_POOL_ADDRESS).token0();
+ uint decimals = 1e18;
+
+ if (sqrtRatioX96 <= type(uint128).max) {
+ uint256 ratioX192 = uint256(sqrtRatioX96) * sqrtRatioX96;
+ price = isToken0
+ ? FullMath.mulDiv(ratioX192, decimals, 1 << 192)
+ : FullMath.mulDiv(1 << 192, decimals, ratioX192);
+ } else {
+ uint256 ratioX128 = FullMath.mulDiv(sqrtRatioX96, sqrtRatioX96, 1 << 64);
+ price = isToken0
+ ? FullMath.mulDiv(ratioX128, decimals, 1 << 128)
+ : FullMath.mulDiv(1 << 128, decimals, ratioX128);
+ }
+ }
+
+}
diff --git a/test/interfaces/ISwapRouter.sol b/test/interfaces/ISwapRouter.sol
new file mode 100644
index 0000000..b5fd3dd
--- /dev/null
+++ b/test/interfaces/ISwapRouter.sol
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+pragma solidity >=0.7.5;
+pragma abicoder v2;
+
+import 'v3-core/interfaces/callback/IUniswapV3SwapCallback.sol';
+
+/// @title Router token swapping functionality
+/// @notice Functions for swapping tokens via Uniswap V3
+interface ISwapRouter is IUniswapV3SwapCallback {
+ struct ExactInputSingleParams {
+ address tokenIn;
+ address tokenOut;
+ uint24 fee;
+ address recipient;
+ uint256 deadline;
+ uint256 amountIn;
+ uint256 amountOutMinimum;
+ uint160 sqrtPriceLimitX96;
+ }
+
+ /// @notice Swaps `amountIn` of one token for as much as possible of another token
+ /// @param params The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata
+ /// @return amountOut The amount of the received token
+ function exactInputSingle(ExactInputSingleParams calldata params) external payable returns (uint256 amountOut);
+
+ struct ExactInputParams {
+ bytes path;
+ address recipient;
+ uint256 deadline;
+ uint256 amountIn;
+ uint256 amountOutMinimum;
+ }
+
+ /// @notice Swaps `amountIn` of one token for as much as possible of another along the specified path
+ /// @param params The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata
+ /// @return amountOut The amount of the received token
+ function exactInput(ExactInputParams calldata params) external payable returns (uint256 amountOut);
+
+ struct ExactOutputSingleParams {
+ address tokenIn;
+ address tokenOut;
+ uint24 fee;
+ address recipient;
+ uint256 deadline;
+ uint256 amountOut;
+ uint256 amountInMaximum;
+ uint160 sqrtPriceLimitX96;
+ }
+
+ /// @notice Swaps as little as possible of one token for `amountOut` of another token
+ /// @param params The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata
+ /// @return amountIn The amount of the input token
+ function exactOutputSingle(ExactOutputSingleParams calldata params) external payable returns (uint256 amountIn);
+
+ struct ExactOutputParams {
+ bytes path;
+ address recipient;
+ uint256 deadline;
+ uint256 amountOut;
+ uint256 amountInMaximum;
+ }
+
+ /// @notice Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)
+ /// @param params The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata
+ /// @return amountIn The amount of the input token
+ function exactOutput(ExactOutputParams calldata params) external payable returns (uint256 amountIn);
+}
diff --git a/test/mocks/MockUniswapPool.sol b/test/mocks/MockUniswapPool.sol
new file mode 100644
index 0000000..2ab41a9
--- /dev/null
+++ b/test/mocks/MockUniswapPool.sol
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.11;
+
+import {IUniswapPool} from "../../src/interfaces/IUniswapPool.sol";
+
+contract MockUniswapPool is IUniswapPool {
+ int56[2] cumulatives;
+ address public token0;
+
+ function setCumulatives(int56[2] memory value) external {
+ cumulatives = value;
+ }
+
+ function setToken0(address value) external {
+ token0 = value;
+ }
+
+ function observe(uint32[] calldata secondsAgos)
+ external
+ view
+ returns (int56[] memory tickCumulatives, uint160[] memory secondsPerLiquidityCumulativeX128s)
+ {
+ secondsAgos;
+ secondsPerLiquidityCumulativeX128s;
+
+ tickCumulatives = new int56[](2);
+ tickCumulatives[0] = cumulatives[0];
+ tickCumulatives[1] = cumulatives[1];
+ }
+
+ // mandatory overrides
+
+ function snapshotCumulativesInside(int24 tickLower, int24 tickUpper)
+ external
+ view
+ override
+ returns (int56 tickCumulativeInside, uint160 secondsPerLiquidityInsideX128, uint32 secondsInside)
+ {}
+
+ function factory() external view override returns (address) {}
+
+ function token1() external view override returns (address) {}
+
+ function fee() external view override returns (uint24) {}
+
+ function tickSpacing() external view override returns (int24) {}
+
+ function maxLiquidityPerTick() external view override returns (uint128) {}
+}
From 5ea8c6f7bcff5e19dba51c3da1c70bc95074e3bf Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 28 Nov 2023 18:50:52 -0300
Subject: [PATCH 07/64] review 1
---
src/OptionsToken.sol | 44 +++++++------------
src/exercise/DiscountExercise.sol | 8 ++--
src/interfaces/IERC20.sol | 20 +++++++++
src/interfaces/IExercise.sol | 1 +
src/interfaces/IOptionsToken.sol | 12 +++++
test/OptionsToken.t.sol | 33 +++++++-------
.../{TestERC20Mintable.sol => TestERC20.sol} | 2 +-
7 files changed, 69 insertions(+), 51 deletions(-)
create mode 100644 src/interfaces/IERC20.sol
create mode 100644 src/interfaces/IOptionsToken.sol
rename test/mocks/{TestERC20Mintable.sol => TestERC20.sol} (80%)
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 9ce21d7..3755f59 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -4,27 +4,23 @@ pragma solidity ^0.8.13;
import {Owned} from "solmate/auth/Owned.sol";
import {ERC20} from "solmate/tokens/ERC20.sol";
+import {IOptionsToken} from "./interfaces/IOptionsToken.sol";
import {IOracle} from "./interfaces/IOracle.sol";
import {IERC20Mintable} from "./interfaces/IERC20Mintable.sol";
import {IExercise} from "./interfaces/IExercise.sol";
-struct Option {
- address impl;
- bool isActive;
-}
-
/// @title Options Token
/// @author zefram.eth
/// @notice Options token representing the right to perform an advantageous action,
/// such as purchasing the underlying token at a discount to the market price.
-contract OptionsToken is ERC20, Owned, IERC20Mintable {
+contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
/// -----------------------------------------------------------------------
/// Errors
/// -----------------------------------------------------------------------
error OptionsToken__PastDeadline();
error OptionsToken__NotTokenAdmin();
- error OptionsToken__NotActive();
+ error OptionsToken__NotOption();
/// -----------------------------------------------------------------------
/// Events
@@ -45,7 +41,7 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
/// Storage variables
/// -----------------------------------------------------------------------
- Option[] public options;
+ mapping (address => bool) public isOption;
/// -----------------------------------------------------------------------
/// Constructor
@@ -92,12 +88,12 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
/// @param amount The amount of options tokens to exercise
/// @param recipient The recipient of the reward
/// @param params Extra parameters to be used by the exercise function
- function exercise(uint256 amount, address recipient, uint256 optionId, bytes calldata params)
+ function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
virtual
returns (bytes memory)
{
- return _exercise(amount, recipient, optionId, params);
+ return _exercise(amount, recipient, option, params);
}
/// @notice Exercises options tokens, giving the reward to the recipient.
@@ -108,13 +104,13 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
/// @param recipient The recipient of the reward
/// @param params Extra parameters to be used by the exercise function
/// @param deadline The deadline by which the transaction must be mined
- function exercise(uint256 amount, address recipient, uint256 optionId, bytes calldata params, uint256 deadline)
+ function exercise(uint256 amount, address recipient, address option, bytes calldata params, uint256 deadline)
external
virtual
returns (bytes memory)
{
if (block.timestamp > deadline) revert OptionsToken__PastDeadline();
- return _exercise(amount, recipient, optionId, params);
+ return _exercise(amount, recipient, option, params);
}
/// -----------------------------------------------------------------------
@@ -122,24 +118,17 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
/// -----------------------------------------------------------------------
/// @notice Adds a new Exercise contract to the available options.
- /// @param impl Address of the Exercise contract, that implements BaseExercise.
- /// @param isActive Whether oToken holders should be allowed to exercise using this option.
- function addOption(address impl, bool isActive) external onlyOwner {
- options.push(Option({impl: impl, isActive: isActive}));
- }
-
- /// @notice Sets an option as active or not. Determines if holders can use it to exercise.
- /// @param optionId The option's ID.
- /// @param isActive Whether oToken holders should be allowed to exercise using this option.
- function setOptionActive(uint256 optionId, bool isActive) external onlyOwner {
- options[optionId].isActive = isActive;
+ /// @param _address Address of the Exercise contract, that implements BaseExercise.
+ /// @param _isOption Whether oToken holders should be allowed to exercise using this option.
+ function setOption(address _address, bool _isOption) external onlyOwner {
+ isOption[_address] = _isOption;
}
/// -----------------------------------------------------------------------
/// Internal functions
/// -----------------------------------------------------------------------
- function _exercise(uint256 amount, address recipient, uint256 optionId, bytes calldata params)
+ function _exercise(uint256 amount, address recipient, address option, bytes calldata params)
internal
virtual
returns (bytes memory data)
@@ -147,11 +136,8 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
// skip if amount is zero
if (amount == 0) return new bytes(0);
- // get option
- Option memory option = options[optionId];
-
// skip if option is not active
- if (!option.isActive) revert OptionsToken__NotActive();
+ if (!isOption[option]) revert OptionsToken__NotOption();
// transfer options tokens from msg.sender to address(0)
// we transfer instead of burn because TokenAdmin cares about totalSupply
@@ -159,7 +145,7 @@ contract OptionsToken is ERC20, Owned, IERC20Mintable {
transfer(address(0), amount);
// give rewards to recipient
- data = IExercise(option.impl).exercise(msg.sender, amount, recipient, params);
+ data = IExercise(option).exercise(msg.sender, amount, recipient, params);
emit Exercise(msg.sender, recipient, amount, params);
}
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index a70e08d..0fd8a9f 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -8,7 +8,6 @@ import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {BaseExercise} from "../exercise/BaseExercise.sol";
import {IOracle} from "../interfaces/IOracle.sol";
-import {IERC20Mintable} from "../interfaces/IERC20Mintable.sol";
import {OptionsToken} from "../OptionsToken.sol";
struct DiscountExerciseParams {
@@ -43,7 +42,7 @@ contract DiscountExercise is BaseExercise, Owned {
ERC20 public immutable paymentToken;
/// @notice The underlying token purchased during redemption
- IERC20Mintable public immutable underlyingToken;
+ ERC20 public immutable underlyingToken;
/// Storage variables
@@ -58,7 +57,7 @@ contract DiscountExercise is BaseExercise, Owned {
OptionsToken oToken_,
address owner_,
ERC20 paymentToken_,
- IERC20Mintable underlyingToken_,
+ ERC20 underlyingToken_,
IOracle oracle_,
address treasury_
) BaseExercise(oToken_) Owned(owner_) {
@@ -86,7 +85,6 @@ contract DiscountExercise is BaseExercise, Owned {
onlyOToken
returns (bytes memory data)
{
- if (msg.sender != address(oToken)) revert Exercise__NotOToken();
return _exercise(from, amount, recipient, params);
}
@@ -122,7 +120,7 @@ contract DiscountExercise is BaseExercise, Owned {
paymentToken.safeTransferFrom(from, treasury, paymentAmount);
// mint underlying tokens to recipient
- underlyingToken.mint(recipient, amount);
+ underlyingToken.safeTransfer(recipient, amount);
data = abi.encode(
DiscountExerciseReturnData({
diff --git a/src/interfaces/IERC20.sol b/src/interfaces/IERC20.sol
new file mode 100644
index 0000000..985aa77
--- /dev/null
+++ b/src/interfaces/IERC20.sol
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: MIT
+
+pragma solidity ^0.8.20;
+
+interface IERC20 {
+ event Transfer(address indexed from, address indexed to, uint256 value);
+ event Approval(address indexed owner, address indexed spender, uint256 value);
+
+ function totalSupply() external view returns (uint256);
+
+ function balanceOf(address account) external view returns (uint256);
+
+ function transfer(address to, uint256 value) external returns (bool);
+
+ function allowance(address owner, address spender) external view returns (uint256);
+
+ function approve(address spender, uint256 value) external returns (bool);
+
+ function transferFrom(address from, address to, uint256 value) external returns (bool);
+}
diff --git a/src/interfaces/IExercise.sol b/src/interfaces/IExercise.sol
index 3f12149..59b0385 100644
--- a/src/interfaces/IExercise.sol
+++ b/src/interfaces/IExercise.sol
@@ -3,6 +3,7 @@ pragma solidity ^0.8.13;
interface IExercise {
/// @notice Exercise the options token
+ /// @param from Address to exercise options tokens from.
/// @param amount The amount of options tokens to exercise
/// @param recipient The address that receives the underlying tokens
/// @param params Additional parameters for the exercise
diff --git a/src/interfaces/IOptionsToken.sol b/src/interfaces/IOptionsToken.sol
new file mode 100644
index 0000000..2f65e84
--- /dev/null
+++ b/src/interfaces/IOptionsToken.sol
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+interface IOptionsToken {
+ function exercise(uint256 amount, address recipient, address option, bytes calldata params, uint256 deadline)
+ external
+ returns (bytes memory);
+
+ function setOption(address _address, bool _isOption) external;
+
+ function isOption(address) external returns (bool);
+}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 8ba400c..7ca4fa8 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -4,12 +4,12 @@ pragma solidity ^0.8.13;
import "forge-std/Test.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {ERC20} from "solmate/tokens/ERC20.sol";
import {OptionsToken} from "../src/OptionsToken.sol";
import {DiscountExerciseParams, DiscountExerciseReturnData, DiscountExercise} from "../src/exercise/DiscountExercise.sol";
-import {TestERC20Mintable} from "./mocks/TestERC20Mintable.sol";
+import {TestERC20} from "./mocks/TestERC20.sol";
import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
-import {IERC20Mintable} from "../src/interfaces/IERC20Mintable.sol";
import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
@@ -33,8 +33,8 @@ contract OptionsTokenTest is Test {
DiscountExercise exerciser;
BalancerOracle oracle;
MockBalancerTwapOracle balancerTwapOracle;
- TestERC20Mintable paymentToken;
- IERC20Mintable underlyingToken;
+ TestERC20 paymentToken;
+ address underlyingToken;
function setUp() public {
// set up accounts
@@ -46,15 +46,16 @@ contract OptionsTokenTest is Test {
balancerTwapOracle = new MockBalancerTwapOracle();
oracle =
new BalancerOracle(balancerTwapOracle, owner, ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
- paymentToken = new TestERC20Mintable();
- underlyingToken = IERC20Mintable(address(new TestERC20Mintable()));
+ paymentToken = new TestERC20();
+ underlyingToken = address(new TestERC20());
optionsToken = new OptionsToken("TIT Call Option Token", "oTIT", owner, tokenAdmin);
- exerciser = new DiscountExercise(optionsToken, owner, paymentToken, underlyingToken, oracle, treasury);
+ exerciser = new DiscountExercise(optionsToken, owner, paymentToken, ERC20(underlyingToken), oracle, treasury);
+ TestERC20(underlyingToken).mint(address(exerciser), 1e20 ether);
// add exerciser to the list of options
vm.startPrank(owner);
- optionsToken.addOption(address(exerciser), true);
+ optionsToken.setOption(address(exerciser), true);
vm.stopPrank();
// set up contracts
@@ -93,7 +94,7 @@ contract OptionsTokenTest is Test {
// exercise options tokens
DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
- bytes memory returnBytes = optionsToken.exercise(amount, recipient, 0, abi.encode(params));
+ bytes memory returnBytes = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
@@ -127,7 +128,7 @@ contract OptionsTokenTest is Test {
// exercise options tokens
DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
- bytes memory returnBytes = optionsToken.exercise(amount, recipient, 0, abi.encode(params));
+ bytes memory returnBytes = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
@@ -160,7 +161,7 @@ contract OptionsTokenTest is Test {
// exercise options tokens which should fail
DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1});
vm.expectRevert(bytes4(keccak256("Exercise__SlippageTooHigh()")));
- optionsToken.exercise(amount, recipient, 0, abi.encode(params));
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
function test_exerciseTwapOracleNotReady(uint256 amount, address recipient) public {
@@ -184,7 +185,7 @@ contract OptionsTokenTest is Test {
// exercise options tokens which should fail
DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
vm.expectRevert(bytes4(keccak256("BalancerOracle__TWAPOracleNotReady()")));
- optionsToken.exercise(amount, recipient, 0, abi.encode(params));
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
@@ -203,7 +204,7 @@ contract OptionsTokenTest is Test {
// exercise options tokens
DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
vm.expectRevert(bytes4(keccak256("OptionsToken__PastDeadline()")));
- optionsToken.exercise(amount, recipient, 0, abi.encode(params), deadline);
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params), deadline);
}
function test_exerciseNotOToken(uint256 amount, address recipient) public {
@@ -232,7 +233,7 @@ contract OptionsTokenTest is Test {
// set option inactive
vm.prank(owner);
- optionsToken.setOptionActive(0, false);
+ optionsToken.setOption(address(exerciser), false);
// mint payment tokens
uint256 expectedPaymentAmount =
@@ -241,8 +242,8 @@ contract OptionsTokenTest is Test {
// exercise options tokens which should fail
DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
- vm.expectRevert(bytes4(keccak256("OptionsToken__NotActive()")));
- optionsToken.exercise(amount, recipient, 0, abi.encode(params));
+ vm.expectRevert(bytes4(keccak256("OptionsToken__NotOption()")));
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
}
diff --git a/test/mocks/TestERC20Mintable.sol b/test/mocks/TestERC20.sol
similarity index 80%
rename from test/mocks/TestERC20Mintable.sol
rename to test/mocks/TestERC20.sol
index 901683f..b9a5f3b 100644
--- a/test/mocks/TestERC20Mintable.sol
+++ b/test/mocks/TestERC20.sol
@@ -3,7 +3,7 @@ pragma solidity ^0.8.11;
import {ERC20} from "solmate/tokens/ERC20.sol";
-contract TestERC20Mintable is ERC20("", "", 18) {
+contract TestERC20 is ERC20("", "", 18) {
function mint(address to, uint256 amount) external {
_mint(to, amount);
}
From 8d146d7b50b354e81ca33129352e04cfe44535c9 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 28 Nov 2023 19:53:47 -0300
Subject: [PATCH 08/64] add thena oracle
---
.env.example | 4 +-
remappings.txt | 2 +
src/interfaces/IThenaPair.sol | 33 ++++++
src/oracles/ThenaOracle.sol | 179 +++++++++++++++++++++++++++++++
test/ThenaOracle.t.sol | 127 ++++++++++++++++++++++
test/interfaces/IThenaRouter.sol | 11 ++
6 files changed, 355 insertions(+), 1 deletion(-)
create mode 100644 remappings.txt
create mode 100644 src/interfaces/IThenaPair.sol
create mode 100644 src/oracles/ThenaOracle.sol
create mode 100644 test/ThenaOracle.t.sol
create mode 100644 test/interfaces/IThenaRouter.sol
diff --git a/.env.example b/.env.example
index 6bb663b..dc65e11 100644
--- a/.env.example
+++ b/.env.example
@@ -19,4 +19,6 @@ ORACLE_MIN_PRICE=XXX # 18 decimals
OT_NAME="LIT Call Option Token"
OT_SYMBOL="oLIT"
-OT_PAYMENT_TOKEN=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 # WETH
\ No newline at end of file
+OT_PAYMENT_TOKEN=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 # WETH
+
+BSC_RPC_URL="https://binance.llamarpc.com"
diff --git a/remappings.txt b/remappings.txt
new file mode 100644
index 0000000..dc0fb24
--- /dev/null
+++ b/remappings.txt
@@ -0,0 +1,2 @@
+create3-factory/=lib/create3-factory/src/
+
diff --git a/src/interfaces/IThenaPair.sol b/src/interfaces/IThenaPair.sol
new file mode 100644
index 0000000..93bfe65
--- /dev/null
+++ b/src/interfaces/IThenaPair.sol
@@ -0,0 +1,33 @@
+pragma solidity >=0.5;
+
+interface IThenaPair {
+ function getReserves()
+ external
+ view
+ returns (
+ uint112 _reserve0,
+ uint112 _reserve1,
+ uint32 _blockTimestampLast
+ );
+
+ function reserve0CumulativeLast() external view returns (uint256);
+
+ function reserve1CumulativeLast() external view returns (uint256);
+
+ function currentCumulativePrices()
+ external
+ view
+ returns (
+ uint256 reserve0Cumulative,
+ uint256 reserve1Cumulative,
+ uint256 blockTimestamp
+ );
+
+ function stable() external view returns (bool);
+
+ function observationLength() external view returns (uint256);
+
+ function observations(uint256) external view returns (uint256 timestamp, uint256 reserve0Cumulative, uint256 reserve1Cumulative);
+
+ function token0() external view returns (address);
+}
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
new file mode 100644
index 0000000..e263d17
--- /dev/null
+++ b/src/oracles/ThenaOracle.sol
@@ -0,0 +1,179 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import {Owned} from "solmate/auth/Owned.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+
+import {IOracle} from "../interfaces/IOracle.sol";
+import {IThenaPair} from "../interfaces/IThenaPair.sol";
+
+/// @title Oracle using Thena TWAP oracle as data source
+/// @author zefram.eth/lookee
+/// @notice The oracle contract that provides the current price to purchase
+/// the underlying token while exercising options. Uses Thena TWAP oracle
+/// as data source, and then applies a multiplier & lower bound.
+/// Furthermore, the payment token and the underlying token must use 18 decimals.
+/// This is because the Thena oracle returns the TWAP value in 18 decimals
+/// and the OptionsToken contract also expects 18 decimals.
+contract ThenaOracle is IOracle, Owned {
+ /// -----------------------------------------------------------------------
+ /// Library usage
+ /// -----------------------------------------------------------------------
+
+ using FixedPointMathLib for uint256;
+
+ /// -----------------------------------------------------------------------
+ /// Errors
+ /// -----------------------------------------------------------------------
+
+ error ThenaOracle__StablePairsUnsupported();
+ error ThenaOracle__Overflow();
+
+ /// -----------------------------------------------------------------------
+ /// Events
+ /// -----------------------------------------------------------------------
+
+ event SetParams(bool isToken0, uint16 multiplier, uint56 secs, uint128 minPrice);
+
+ /// -----------------------------------------------------------------------
+ /// Constants
+ /// -----------------------------------------------------------------------
+
+ /// @notice The denominator for converting the multiplier into a decimal number.
+ /// i.e. multiplier uses 4 decimals.
+ uint256 internal constant MULTIPLIER_DENOM = 10000;
+
+ /// -----------------------------------------------------------------------
+ /// Immutable parameters
+ /// -----------------------------------------------------------------------
+
+ /// @notice The Thena TWAP oracle contract (usually a pool with oracle support)
+ IThenaPair public immutable thenaPair;
+
+ /// -----------------------------------------------------------------------
+ /// Storage variables
+ /// -----------------------------------------------------------------------
+
+ /// @notice The multiplier applied to the TWAP value. Encodes the discount of
+ /// the options token. Uses 4 decimals.
+ uint16 public multiplier;
+
+ /// @notice The size of the window to take the TWAP value over in seconds.
+ uint56 public secs;
+
+ /// @notice The minimum value returned by getPrice(). Maintains a floor for the
+ /// price to mitigate potential attacks on the TWAP oracle.
+ uint128 public minPrice;
+
+ /// @notice Whether the price should be returned in terms of token0.
+ /// If false, the price is returned in terms of token1.
+ bool public isToken0;
+
+ /// -----------------------------------------------------------------------
+ /// Constructor
+ /// -----------------------------------------------------------------------
+
+ constructor(
+ IThenaPair thenaPair_,
+ address token,
+ address owner_,
+ uint16 multiplier_,
+ uint56 secs_,
+ uint128 minPrice_
+ ) Owned(owner_) {
+ if (thenaPair_.stable()) revert ThenaOracle__StablePairsUnsupported();
+ thenaPair = thenaPair_;
+ isToken0 = thenaPair_.token0() == token;
+ multiplier = multiplier_;
+ secs = secs_;
+ minPrice = minPrice_;
+
+ emit SetParams(isToken0, multiplier_, secs_, minPrice_);
+ }
+
+ /// -----------------------------------------------------------------------
+ /// IOracle
+ /// -----------------------------------------------------------------------
+
+ /// @inheritdoc IOracle
+ function getPrice() external view override returns (uint256 price) {
+ /// -----------------------------------------------------------------------
+ /// Storage loads
+ /// -----------------------------------------------------------------------
+
+ uint256 multiplier_ = multiplier;
+ uint256 secs_ = secs;
+ uint256 minPrice_ = minPrice;
+
+ /// -----------------------------------------------------------------------
+ /// Computation
+ /// -----------------------------------------------------------------------
+
+ // query Thena oracle to get TWAP value
+ {
+ (
+ uint256 reserve0CumulativeCurrent,
+ uint256 reserve1CumulativeCurrent,
+ uint256 blockTimestampCurrent
+ ) = thenaPair.currentCumulativePrices();
+ uint256 observationLength = IThenaPair(thenaPair).observationLength();
+ (
+ uint256 blockTimestampLast,
+ uint256 reserve0CumulativeLast,
+ uint256 reserve1CumulativeLast
+ ) = thenaPair.observations(observationLength - 1);
+ uint32 T = uint32(blockTimestampCurrent - blockTimestampLast);
+ if (T < secs_) {
+ (
+ blockTimestampLast,
+ reserve0CumulativeLast,
+ reserve1CumulativeLast
+ ) = thenaPair.observations(observationLength - 2);
+ T = uint32(blockTimestampCurrent - blockTimestampLast);
+ }
+ uint112 reserve0 = safe112((reserve0CumulativeCurrent - reserve0CumulativeLast) / T);
+ uint112 reserve1 = safe112((reserve1CumulativeCurrent - reserve1CumulativeLast) / T);
+
+ if (!isToken0) {
+ price = uint256(reserve0).divWadDown(reserve1);
+ } else {
+ price = uint256(reserve1).divWadDown(reserve0);
+ }
+ }
+
+ // apply multiplier to price
+ price = price.mulDivUp(multiplier_, MULTIPLIER_DENOM);
+
+ // bound price above minPrice
+ price = price < minPrice_ ? minPrice_ : price;
+ }
+
+ /// -----------------------------------------------------------------------
+ /// Owner functions
+ /// -----------------------------------------------------------------------
+
+ /// @notice Updates the oracle parameters. Only callable by the owner.
+ /// @param isToken0_ Whether to give the price of the token0 or token1.
+ /// @param multiplier_ The multiplier applied to the TWAP value. Encodes the discount of
+ /// the options token. Uses 4 decimals.
+ /// @param secs_ The size of the window to take the TWAP value over in seconds.
+ /// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
+ /// price to mitigate potential attacks on the TWAP oracle.
+ function setParams(bool isToken0_, uint16 multiplier_, uint56 secs_, uint128 minPrice_) external onlyOwner {
+ isToken0 = isToken0_;
+ multiplier = multiplier_;
+ secs = secs_;
+ minPrice = minPrice_;
+ emit SetParams(isToken0_, multiplier_, secs_, minPrice_);
+ }
+
+ /// -----------------------------------------------------------------------
+ /// Util functions
+ /// -----------------------------------------------------------------------
+
+ function safe112(uint256 n) internal pure returns (uint112) {
+ if (n >= 2**112) revert ThenaOracle__Overflow();
+ return uint112(n);
+ }
+
+}
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
new file mode 100644
index 0000000..331f694
--- /dev/null
+++ b/test/ThenaOracle.t.sol
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import "forge-std/Test.sol";
+import "forge-std/console.sol";
+import {ThenaOracle} from "../src/oracles/ThenaOracle.sol";
+import {IThenaPair} from "../src/interfaces/IThenaPair.sol";
+import {IThenaRouter} from "./interfaces/IThenaRouter.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {IERC20} from "forge-std/interfaces/IERC20.sol";
+
+struct Params {
+ IThenaPair pair;
+ address token;
+ address owner;
+ uint16 multiplier;
+ uint32 secs;
+ uint128 minPrice;
+}
+
+contract UniswapOracleTest is Test {
+ using stdStorage for StdStorage;
+ using FixedPointMathLib for uint256;
+
+ string BSC_RPC_URL = vm.envString("BSC_RPC_URL");
+ uint32 FORK_BLOCK = 33672842;
+
+ address THENA_POOL_ADDRESS = 0x63Db6ba9E512186C2FAaDaCEF342FB4A40dc577c;
+ address THENA_ADDRESS = 0xF4C8E32EaDEC4BFe97E0F595AdD0f4450a863a11;
+ address BNB_ADDRESS = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
+ address THENA_ROUTER = 0xd4ae6eCA985340Dd434D38F470aCCce4DC78D109;
+
+ uint256 bscFork;
+
+ Params _default;
+
+ function setUp() public {
+ _default = Params(IThenaPair(THENA_POOL_ADDRESS), THENA_ADDRESS, address(this), 10000, 30 minutes, 1000);
+ bscFork = vm.createSelectFork(BSC_RPC_URL, FORK_BLOCK);
+ }
+
+ function test_priceWithinAcceptableRange() public {
+
+ ThenaOracle oracle = new ThenaOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.minPrice
+ );
+
+ uint oraclePrice = oracle.getPrice();
+
+ uint256 spotPrice = getSpotPrice(_default.pair, _default.token);
+ assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too big"); // 1%
+ }
+
+ function test_priceManipulation() public {
+ ThenaOracle oracle = new ThenaOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.minPrice
+ );
+
+ address manipulator1 = makeAddr("manipulator");
+ deal(THENA_ADDRESS, manipulator1, 1000000 ether);
+
+ // register initial oracle price
+ uint256 price_1 = oracle.getPrice();
+
+ // perform a large swap
+ vm.startPrank(manipulator1);
+ IERC20(THENA_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
+
+ (uint256 reserve0, uint256 reserve1,) = _default.pair.getReserves();
+ (uint256[] memory amountOut) = IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
+ (THENA_ADDRESS == _default.pair.token0() ? reserve0 : reserve1) / 10,
+ 0,
+ THENA_ADDRESS,
+ BNB_ADDRESS,
+ false,
+ manipulator1,
+ type(uint32).max
+ );
+ vm.stopPrank();
+
+ // price should not have changed
+ assertEq(oracle.getPrice(), price_1);
+
+ // wait 60 seconds
+ skip(1 minutes);
+
+ // perform additional, smaller swap
+ address manipulator2 = makeAddr("manipulator");
+ deal(BNB_ADDRESS, manipulator2, amountOut[0] / 1000);
+ vm.startPrank(manipulator2);
+ IERC20(BNB_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
+
+ IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
+ amountOut[0] / 1000,
+ 0,
+ BNB_ADDRESS,
+ THENA_ADDRESS,
+ false,
+ manipulator2,
+ type(uint32).max
+ );
+ vm.stopPrank();
+
+ assertApproxEqRel(price_1, oracle.getPrice(), 0.01 ether, "price variance too large");
+ }
+
+ function getSpotPrice(IThenaPair pair, address token) internal view returns (uint256 price) {
+ bool isToken0 = token == pair.token0();
+ (uint112 reserve0, uint112 reserve1,) = pair.getReserves();
+ if (isToken0) {
+ price = uint256(reserve1).divWadDown(reserve0);
+ } else {
+ price = uint256(reserve0).divWadDown(reserve1);
+ }
+ }
+
+}
diff --git a/test/interfaces/IThenaRouter.sol b/test/interfaces/IThenaRouter.sol
new file mode 100644
index 0000000..a9f9061
--- /dev/null
+++ b/test/interfaces/IThenaRouter.sol
@@ -0,0 +1,11 @@
+interface IThenaRouter {
+ function swapExactTokensForTokensSimple(
+ uint amountIn,
+ uint amountOutMin,
+ address tokenFrom,
+ address tokenTo,
+ bool stable,
+ address to,
+ uint deadline
+ ) external returns (uint[] memory amounts);
+}
From 51135d0979573616dce5bc71088500f419f22444 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 28 Nov 2023 20:17:30 -0300
Subject: [PATCH 09/64] review 1
---
src/oracles/ThenaOracle.sol | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
index e263d17..1ac6818 100644
--- a/src/oracles/ThenaOracle.sol
+++ b/src/oracles/ThenaOracle.sol
@@ -153,18 +153,18 @@ contract ThenaOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
/// @notice Updates the oracle parameters. Only callable by the owner.
- /// @param isToken0_ Whether to give the price of the token0 or token1.
+ /// @param token Target token used for pricing.
/// @param multiplier_ The multiplier applied to the TWAP value. Encodes the discount of
/// the options token. Uses 4 decimals.
/// @param secs_ The size of the window to take the TWAP value over in seconds.
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
- function setParams(bool isToken0_, uint16 multiplier_, uint56 secs_, uint128 minPrice_) external onlyOwner {
- isToken0 = isToken0_;
+ function setParams(address token, uint16 multiplier_, uint56 secs_, uint128 minPrice_) external onlyOwner {
+ isToken0 = thenaPair.token0() == token;
multiplier = multiplier_;
secs = secs_;
minPrice = minPrice_;
- emit SetParams(isToken0_, multiplier_, secs_, minPrice_);
+ emit SetParams(isToken0, multiplier_, secs_, minPrice_);
}
/// -----------------------------------------------------------------------
From 0fed3d3e129e86c52a71b1ac0448c6533681473c Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 28 Nov 2023 21:02:34 -0300
Subject: [PATCH 10/64] review 1
---
src/oracles/UniswapV3Oracle.sol | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index 94d51e1..4750e2d 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -35,7 +35,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Events
/// -----------------------------------------------------------------------
- event SetParams(uint16 multiplier, uint56 secs, uint56 ago, uint128 minPrice);
+ event SetParams(bool isToken0, uint16 multiplier, uint56 secs, uint56 ago, uint128 minPrice);
/// -----------------------------------------------------------------------
/// Constants
@@ -95,7 +95,7 @@ contract UniswapV3Oracle is IOracle, Owned {
ago = ago_;
minPrice = minPrice_;
- emit SetParams(multiplier_, secs_, ago_, minPrice_);
+ emit SetParams(isToken0, multiplier_, secs_, ago_, minPrice_);
}
/// -----------------------------------------------------------------------
@@ -134,8 +134,7 @@ contract UniswapV3Oracle is IOracle, Owned {
(int56[] memory tickCumulatives,) = uniswapPool.observe(secondsAgo);
int24 tick = int24((tickCumulatives[1] - tickCumulatives[0]) / int56(int32(_twapDuration)));
- // token decimals is 18
- uint256 decimals = 1e18;
+ uint256 decimalPrecision = 1e18;
// from https://optimistic.etherscan.io/address/0xB210CE856631EeEB767eFa666EC7C1C57738d438#code#F5#L49
uint160 sqrtRatioX96 = TickMath.getSqrtRatioAtTick(tick);
@@ -144,13 +143,13 @@ contract UniswapV3Oracle is IOracle, Owned {
if (sqrtRatioX96 <= type(uint128).max) {
uint256 ratioX192 = uint256(sqrtRatioX96) * sqrtRatioX96;
price = isToken0
- ? FullMath.mulDiv(ratioX192, decimals, 1 << 192)
- : FullMath.mulDiv(1 << 192, decimals, ratioX192);
+ ? FullMath.mulDiv(ratioX192, decimalPrecision, 1 << 192)
+ : FullMath.mulDiv(1 << 192, decimalPrecision, ratioX192);
} else {
uint256 ratioX128 = FullMath.mulDiv(sqrtRatioX96, sqrtRatioX96, 1 << 64);
price = isToken0
- ? FullMath.mulDiv(ratioX128, decimals, 1 << 128)
- : FullMath.mulDiv(1 << 128, decimals, ratioX128);
+ ? FullMath.mulDiv(ratioX128, decimalPrecision, 1 << 128)
+ : FullMath.mulDiv(1 << 128, decimalPrecision, ratioX128);
}
}
@@ -166,6 +165,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// -----------------------------------------------------------------------
/// @notice Updates the oracle parameters. Only callable by the owner.
+ /// @param token Target token used for pricing.
/// @param multiplier_ The multiplier applied to the TWAP value. Encodes the discount of
/// the options token. Uses 4 decimals.
/// @param secs_ The size of the window to take the TWAP value over in seconds.
@@ -173,16 +173,15 @@ contract UniswapV3Oracle is IOracle, Owned {
/// would be (block.timestamp - secs - ago, block.timestamp - ago].
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
- /// @param isToken0_ Whether the price should be returned in terms of token0.
- function setParams(uint16 multiplier_, uint32 secs_, uint32 ago_, uint128 minPrice_, bool isToken0_)
+ function setParams(address token, uint16 multiplier_, uint32 secs_, uint32 ago_, uint128 minPrice_)
external
onlyOwner
{
+ isToken0 = token == uniswapPool.token0();
multiplier = multiplier_;
secs = secs_;
ago = ago_;
minPrice = minPrice_;
- isToken0 = isToken0_;
- emit SetParams(multiplier_, secs_, ago_, minPrice_);
+ emit SetParams(isToken0, multiplier_, secs_, ago_, minPrice_);
}
}
From d84496cf8fbf90a5a37bd36b205c1e8c8cb6d33a Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Wed, 29 Nov 2023 15:55:55 -0300
Subject: [PATCH 11/64] increase coverage
---
src/interfaces/IThenaPair.sol | 2 ++
test/ThenaOracle.t.sol | 64 +++++++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+)
diff --git a/src/interfaces/IThenaPair.sol b/src/interfaces/IThenaPair.sol
index 93bfe65..543a982 100644
--- a/src/interfaces/IThenaPair.sol
+++ b/src/interfaces/IThenaPair.sol
@@ -30,4 +30,6 @@ interface IThenaPair {
function observations(uint256) external view returns (uint256 timestamp, uint256 reserve0Cumulative, uint256 reserve1Cumulative);
function token0() external view returns (address);
+
+ function token1() external view returns (address);
}
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
index 331f694..7c7733b 100644
--- a/test/ThenaOracle.t.sol
+++ b/test/ThenaOracle.t.sol
@@ -30,6 +30,8 @@ contract UniswapOracleTest is Test {
address BNB_ADDRESS = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
address THENA_ROUTER = 0xd4ae6eCA985340Dd434D38F470aCCce4DC78D109;
+ uint MULTIPLIER_DENOM = 10000;
+
uint256 bscFork;
Params _default;
@@ -56,6 +58,64 @@ contract UniswapOracleTest is Test {
assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too big"); // 1%
}
+ function test_priceToken1() public {
+
+ ThenaOracle oracleToken0 = new ThenaOracle(
+ _default.pair,
+ IThenaPair(_default.pair).token0(),
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.minPrice
+ );
+
+ ThenaOracle oracleToken1 = new ThenaOracle(
+ _default.pair,
+ IThenaPair(_default.pair).token1(),
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.minPrice
+ );
+
+ uint priceToken0 = oracleToken0.getPrice();
+ uint priceToken1 = oracleToken1.getPrice();
+
+ assertEq(priceToken1, uint256(1e18).divWadDown(priceToken0), "incorrect price"); // 1%
+ }
+
+ function test_priceMultiplier(uint multiplier) public {
+ multiplier = bound(multiplier, 0, 10000);
+
+ ThenaOracle oracle0 = new ThenaOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.minPrice
+ );
+
+ ThenaOracle oracle1 = new ThenaOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ uint16(multiplier),
+ _default.secs,
+ _default.minPrice
+ );
+
+ uint price0 = oracle0.getPrice();
+ uint price1 = oracle1.getPrice();
+
+ uint expectedPrice = max(
+ price0.mulDivUp(multiplier, MULTIPLIER_DENOM),
+ _default.minPrice
+ );
+
+ assertEq(price1, expectedPrice, "incorrect price multiplier"); // 1%
+ }
+
function test_priceManipulation() public {
ThenaOracle oracle = new ThenaOracle(
_default.pair,
@@ -124,4 +184,8 @@ contract UniswapOracleTest is Test {
}
}
+ function max(uint x, uint y) internal pure returns (uint z) {
+ z = x > y ? x : y;
+ }
+
}
From 42abf165df003e064f5c8c0b86236c997716d0ee Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Fri, 1 Dec 2023 14:40:56 -0300
Subject: [PATCH 12/64] fix test address
---
test/ThenaOracle.t.sol | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
index 7c7733b..f6ba49c 100644
--- a/test/ThenaOracle.t.sol
+++ b/test/ThenaOracle.t.sol
@@ -155,7 +155,7 @@ contract UniswapOracleTest is Test {
skip(1 minutes);
// perform additional, smaller swap
- address manipulator2 = makeAddr("manipulator");
+ address manipulator2 = makeAddr("manipulator2");
deal(BNB_ADDRESS, manipulator2, amountOut[0] / 1000);
vm.startPrank(manipulator2);
IERC20(BNB_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
From e8e2db9100c007cc294c08619897a37b6de43ce9 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Fri, 1 Dec 2023 14:47:31 -0300
Subject: [PATCH 13/64] remove console import, optimize variables
---
src/oracles/UniswapV3Oracle.sol | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index 4750e2d..696a6d4 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -5,7 +5,6 @@ import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IOracle} from "../interfaces/IOracle.sol";
-import "forge-std/console.sol";
import {IUniswapPool} from "../interfaces/IUniswapPool.sol";
import {TickMath} from "v3-core/libraries/TickMath.sol";
@@ -108,9 +107,6 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Storage loads
/// -----------------------------------------------------------------------
- uint256 multiplier_ = multiplier;
- uint32 secs_ = secs;
- uint32 ago_ = ago;
uint256 minPrice_ = minPrice;
/// -----------------------------------------------------------------------
@@ -125,8 +121,8 @@ contract UniswapV3Oracle is IOracle, Owned {
// query Uniswap oracle to get TWAP tick
{
- uint32 _twapDuration = secs_;
- uint32 _twapAgo = ago_;
+ uint32 _twapDuration = secs;
+ uint32 _twapAgo = ago;
uint32[] memory secondsAgo = new uint32[](2);
secondsAgo[0] = _twapDuration + _twapAgo;
secondsAgo[1] = _twapAgo;
@@ -154,7 +150,7 @@ contract UniswapV3Oracle is IOracle, Owned {
}
// apply multiplier to price
- price = price.mulDivUp(multiplier_, MULTIPLIER_DENOM);
+ price = price.mulDivUp(multiplier, MULTIPLIER_DENOM);
// bound price above minPrice
price = price < minPrice_ ? minPrice_ : price;
From 296b52632ec0fc007faca70c6941c882fe512ee2 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Mon, 11 Dec 2023 23:26:09 -0300
Subject: [PATCH 14/64] feat/test: balancer oracle tests and target token
---
src/interfaces/IBalancer2TokensPool.sol | 8 +
src/interfaces/IBalancerTwapOracle.sol | 9 +
src/interfaces/IBalancerVault.sol | 177 ++++++++++++++++
src/oracles/BalancerOracle.sol | 34 +++-
test/BalancerOracle.t.sol | 256 ++++++++++++++++++++++++
test/OptionsToken.t.sol | 33 ++-
test/mocks/MockBalancerTwapOracle.sol | 84 ++++++--
7 files changed, 555 insertions(+), 46 deletions(-)
create mode 100644 src/interfaces/IBalancer2TokensPool.sol
create mode 100644 src/interfaces/IBalancerVault.sol
create mode 100644 test/BalancerOracle.t.sol
diff --git a/src/interfaces/IBalancer2TokensPool.sol b/src/interfaces/IBalancer2TokensPool.sol
new file mode 100644
index 0000000..0f8b086
--- /dev/null
+++ b/src/interfaces/IBalancer2TokensPool.sol
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import "../interfaces/IBalancerTwapOracle.sol";
+
+interface IBalancer2TokensPool is IBalancerTwapOracle {
+ function getNormalizedWeights() external view returns (uint256[] memory);
+}
diff --git a/src/interfaces/IBalancerTwapOracle.sol b/src/interfaces/IBalancerTwapOracle.sol
index dec77ba..5044d79 100644
--- a/src/interfaces/IBalancerTwapOracle.sol
+++ b/src/interfaces/IBalancerTwapOracle.sol
@@ -14,6 +14,8 @@
pragma solidity ^0.8.0;
+import {IVault} from "../interfaces/IBalancerVault.sol";
+
/**
* @dev Interface for querying historical data from a Pool that can be used as a Price Oracle.
*
@@ -25,6 +27,13 @@ pragma solidity ^0.8.0;
* is not older than the largest safe query window.
*/
interface IBalancerTwapOracle {
+ /**
+ * @notice Returns the Balancer Vault
+ */
+ function getVault() external view returns (IVault);
+
+ function getPoolId() external view returns (bytes32);
+
// The three values that can be queried:
//
// - PAIR_PRICE: the price of the tokens in the Pool, expressed as the price of the second token in units of the
diff --git a/src/interfaces/IBalancerVault.sol b/src/interfaces/IBalancerVault.sol
new file mode 100644
index 0000000..2628237
--- /dev/null
+++ b/src/interfaces/IBalancerVault.sol
@@ -0,0 +1,177 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+
+pragma experimental ABIEncoderV2;
+
+pragma solidity >=0.7.0 <0.9.0;
+
+/**
+ * @dev This is an empty interface used to represent either ERC20-conforming token contracts or ETH (using the zero
+ * address sentinel value). We're just relying on the fact that `interface` can be used to declare new address-like
+ * types.
+ *
+ * This concept is unrelated to a Pool's Asset Managers.
+ */
+interface IAsset {
+ // solhint-disable-previous-line no-empty-blocks
+}
+
+/**
+ * @dev Minimal interface for interacting with Balancer's vault.
+ */
+interface IVault {
+
+/**
+ * @dev Called by users to join a Pool, which transfers tokens from `sender` into the Pool's balance. This will
+ * trigger custom Pool behavior, which will typically grant something in return to `recipient` - often tokenized
+ * Pool shares.
+ *
+ * If the caller is not `sender`, it must be an authorized relayer for them.
+ *
+ * The `assets` and `maxAmountsIn` arrays must have the same length, and each entry indicates the maximum amount
+ * to send for each asset. The amounts to send are decided by the Pool and not the Vault: it just enforces
+ * these maximums.
+ *
+ * If joining a Pool that holds WETH, it is possible to send ETH directly: the Vault will do the wrapping. To enable
+ * this mechanism, the IAsset sentinel value (the zero address) must be passed in the `assets` array instead of the
+ * WETH address. Note that it is not possible to combine ETH and WETH in the same join. Any excess ETH will be sent
+ * back to the caller (not the sender, which is important for relayers).
+ *
+ * `assets` must have the same length and order as the array returned by `getPoolTokens`. This prevents issues when
+ * interacting with Pools that register and deregister tokens frequently. If sending ETH however, the array must be
+ * sorted *before* replacing the WETH address with the ETH sentinel value (the zero address), which means the final
+ * `assets` array might not be sorted. Pools with no registered tokens cannot be joined.
+ *
+ * If `fromInternalBalance` is true, the caller's Internal Balance will be preferred: ERC20 transfers will only
+ * be made for the difference between the requested amount and Internal Balance (if any). Note that ETH cannot be
+ * withdrawn from Internal Balance: attempting to do so will trigger a revert.
+ *
+ * This causes the Vault to call the `IBasePool.onJoinPool` hook on the Pool's contract, where Pools implement
+ * their own custom logic. This typically requires additional information from the user (such as the expected number
+ * of Pool shares). This can be encoded in the `userData` argument, which is ignored by the Vault and passed
+ * directly to the Pool's contract, as is `recipient`.
+ *
+ * Emits a `PoolBalanceChanged` event.
+ */
+ function joinPool(
+ bytes32 poolId,
+ address sender,
+ address recipient,
+ JoinPoolRequest memory request
+ ) external payable;
+
+ struct JoinPoolRequest {
+ IAsset[] assets;
+ uint256[] maxAmountsIn;
+ bytes userData;
+ bool fromInternalBalance;
+ }
+
+ enum PoolSpecialization { GENERAL, MINIMAL_SWAP_INFO, TWO_TOKEN }
+
+ /**
+ * @dev Returns a Pool's contract address and specialization setting.
+ */
+ function getPool(bytes32 poolId) external view returns (address, PoolSpecialization);
+
+ /**
+ * @dev Returns a Pool's registered tokens, the total balance for each, and the latest block when *any* of
+ * the tokens' `balances` changed.
+ *
+ * The order of the `tokens` array is the same order that will be used in `joinPool`, `exitPool`, as well as in all
+ * Pool hooks (where applicable). Calls to `registerTokens` and `deregisterTokens` may change this order.
+ *
+ * If a Pool only registers tokens once, and these are sorted in ascending order, they will be stored in the same
+ * order as passed to `registerTokens`.
+ *
+ * Total balances include both tokens held by the Vault and those withdrawn by the Pool's Asset Managers. These are
+ * the amounts used by joins, exits and swaps. For a detailed breakdown of token balances, use `getPoolTokenInfo`
+ * instead.
+ */
+ function getPoolTokens(bytes32 poolId)
+ external
+ view
+ returns (
+ address[] memory tokens,
+ uint256[] memory,
+ uint256
+ );
+
+
+ /**
+ * @dev All tokens in a swap are either sent from the `sender` account to the Vault, or from the Vault to the
+ * `recipient` account.
+ *
+ * If the caller is not `sender`, it must be an authorized relayer for them.
+ *
+ * If `fromInternalBalance` is true, the `sender`'s Internal Balance will be preferred, performing an ERC20
+ * transfer for the difference between the requested amount and the User's Internal Balance (if any). The `sender`
+ * must have allowed the Vault to use their tokens via `IERC20.approve()`. This matches the behavior of
+ * `joinPool`.
+ *
+ * If `toInternalBalance` is true, tokens will be deposited to `recipient`'s internal balance instead of
+ * transferred. This matches the behavior of `exitPool`.
+ *
+ * Note that ETH cannot be deposited to or withdrawn from Internal Balance: attempting to do so will trigger a
+ * revert.
+ */
+ struct FundManagement {
+ address sender;
+ bool fromInternalBalance;
+ address payable recipient;
+ bool toInternalBalance;
+ }
+
+ enum SwapKind { GIVEN_IN, GIVEN_OUT }
+
+ /**
+ * @dev Performs a swap with a single Pool.
+ *
+ * If the swap is 'given in' (the number of tokens to send to the Pool is known), it returns the amount of tokens
+ * taken from the Pool, which must be greater than or equal to `limit`.
+ *
+ * If the swap is 'given out' (the number of tokens to take from the Pool is known), it returns the amount of tokens
+ * sent to the Pool, which must be less than or equal to `limit`.
+ *
+ * Internal Balance usage and the recipient are determined by the `funds` struct.
+ *
+ * Emits a `Swap` event.
+ */
+ function swap(
+ SingleSwap memory singleSwap,
+ FundManagement memory funds,
+ uint256 limit,
+ uint256 deadline
+ ) external payable returns (uint256);
+
+ /**
+ * @dev Data for a single swap executed by `swap`. `amount` is either `amountIn` or `amountOut` depending on
+ * the `kind` value.
+ *
+ * `assetIn` and `assetOut` are either token addresses, or the IAsset sentinel value for ETH (the zero address).
+ * Note that Pools never interact with ETH directly: it will be wrapped to or unwrapped from WETH by the Vault.
+ *
+ * The `userData` field is ignored by the Vault, but forwarded to the Pool in the `onSwap` hook, and may be
+ * used to extend swap behavior.
+ */
+ struct SingleSwap {
+ bytes32 poolId;
+ SwapKind kind;
+ IAsset assetIn;
+ IAsset assetOut;
+ uint256 amount;
+ bytes userData;
+ }
+}
diff --git a/src/oracles/BalancerOracle.sol b/src/oracles/BalancerOracle.sol
index d5f04b4..2f57251 100644
--- a/src/oracles/BalancerOracle.sol
+++ b/src/oracles/BalancerOracle.sol
@@ -5,6 +5,7 @@ import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IOracle} from "../interfaces/IOracle.sol";
+import {IVault} from "../interfaces/IBalancerVault.sol";
import {IBalancerTwapOracle} from "../interfaces/IBalancerTwapOracle.sol";
/// @title Oracle using Balancer TWAP oracle as data source
@@ -12,10 +13,7 @@ import {IBalancerTwapOracle} from "../interfaces/IBalancerTwapOracle.sol";
/// @notice The oracle contract that provides the current price to purchase
/// the underlying token while exercising options. Uses Balancer TWAP oracle
/// as data source, and then applies a multiplier & lower bound.
-/// @dev IMPORTANT: The Balancer pool must use the payment token of the options
-/// token as the first token and the underlying token as the second token, due to
-/// how the Balancer oracle represents the price.
-/// Furthermore, the payment token and the underlying token must use 18 decimals.
+/// @dev IMPORTANT: The payment token and the underlying token must use 18 decimals.
/// This is because the Balancer oracle returns the TWAP value in 18 decimals
/// and the OptionsToken contract also expects 18 decimals.
contract BalancerOracle is IOracle, Owned {
@@ -30,6 +28,7 @@ contract BalancerOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
error BalancerOracle__TWAPOracleNotReady();
+ error BalancerOracle__BelowMinPrice();
/// -----------------------------------------------------------------------
/// Events
@@ -71,12 +70,17 @@ contract BalancerOracle is IOracle, Owned {
/// price to mitigate potential attacks on the TWAP oracle.
uint128 public minPrice;
+ /// @notice Whether the price should be returned in terms of token0.
+ /// If false, the price is returned in terms of token1.
+ bool public isToken0;
+
/// -----------------------------------------------------------------------
/// Constructor
/// -----------------------------------------------------------------------
constructor(
IBalancerTwapOracle balancerTwapOracle_,
+ address token,
address owner_,
uint16 multiplier_,
uint56 secs_,
@@ -84,6 +88,11 @@ contract BalancerOracle is IOracle, Owned {
uint128 minPrice_
) Owned(owner_) {
balancerTwapOracle = balancerTwapOracle_;
+
+ IVault vault = balancerTwapOracle.getVault();
+ (address[] memory poolTokens,,) = vault.getPoolTokens(balancerTwapOracle_.getPoolId());
+ isToken0 = poolTokens[0] == token;
+
multiplier = multiplier_;
secs = secs_;
ago = ago_;
@@ -132,11 +141,16 @@ contract BalancerOracle is IOracle, Owned {
price = balancerTwapOracle.getTimeWeightedAverage(queries)[0];
}
+ if (isToken0) {
+ // convert price to token0
+ price = uint256(1e18).divWadDown(price);
+ }
+
+ // apply min price
+ if (price < minPrice_) revert BalancerOracle__BelowMinPrice();
+
// apply multiplier to price
price = price.mulDivUp(multiplier_, MULTIPLIER_DENOM);
-
- // bound price above minPrice
- price = price < minPrice_ ? minPrice_ : price;
}
/// -----------------------------------------------------------------------
@@ -151,7 +165,11 @@ contract BalancerOracle is IOracle, Owned {
/// would be (block.timestamp - secs - ago, block.timestamp - ago].
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
- function setParams(uint16 multiplier_, uint56 secs_, uint56 ago_, uint128 minPrice_) external onlyOwner {
+ function setParams(address token, uint16 multiplier_, uint56 secs_, uint56 ago_, uint128 minPrice_) external onlyOwner {
+ IVault vault = balancerTwapOracle.getVault();
+ (address[] memory poolTokens,,) = vault.getPoolTokens(balancerTwapOracle.getPoolId());
+ isToken0 = poolTokens[0] == token;
+
multiplier = multiplier_;
secs = secs_;
ago = ago_;
diff --git a/test/BalancerOracle.t.sol b/test/BalancerOracle.t.sol
new file mode 100644
index 0000000..cdf949f
--- /dev/null
+++ b/test/BalancerOracle.t.sol
@@ -0,0 +1,256 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import "forge-std/Test.sol";
+import "forge-std/console.sol";
+import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
+import {IBalancerTwapOracle} from "../src/interfaces/IBalancerTwapOracle.sol";
+import {IVault, IAsset} from "../src/interfaces/IBalancerVault.sol";
+import {IBalancer2TokensPool} from "../src/interfaces/IBalancer2TokensPool.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {IERC20} from "forge-std/interfaces/IERC20.sol";
+
+struct Params {
+ IBalancerTwapOracle pair;
+ address token;
+ address owner;
+ uint16 multiplier;
+ uint32 secs;
+ uint32 ago;
+ uint128 minPrice;
+}
+
+contract BalancerOracleTest is Test {
+ using stdStorage for StdStorage;
+ using FixedPointMathLib for uint256;
+
+ string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL");
+ uint32 FORK_BLOCK = 18764758;
+
+ address TOKEN_ADDRESS = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
+ address PAYMENT_ADDRESS = 0xfd0205066521550D7d7AB19DA8F72bb004b4C341;
+ address POOL_ADDRESS = 0x9232a548DD9E81BaC65500b5e0d918F8Ba93675C;
+
+ uint MULTIPLIER_DENOM = 10000;
+
+ uint256 opFork;
+
+ Params _default;
+
+ function setUp() public {
+ _default = Params(IBalancerTwapOracle(POOL_ADDRESS), TOKEN_ADDRESS, address(this), 10000, 30 minutes, 0, 1000);
+ opFork = vm.createSelectFork(MAINNET_RPC_URL, FORK_BLOCK);
+ }
+
+ function test_priceWithinAcceptableRange() public {
+
+ BalancerOracle oracle = new BalancerOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ uint oraclePrice = oracle.getPrice();
+
+ uint256 spotPrice = getSpotPrice(address(_default.pair), _default.token);
+ assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too big"); // 1%
+ }
+
+ function test_priceToken1() public {
+ IVault vault = _default.pair.getVault();
+ (address[] memory poolTokens,,) = vault.getPoolTokens(_default.pair.getPoolId());
+
+ BalancerOracle oracleToken0 = new BalancerOracle(
+ _default.pair,
+ poolTokens[0],
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ BalancerOracle oracleToken1 = new BalancerOracle(
+ _default.pair,
+ poolTokens[1],
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ uint priceToken0 = oracleToken0.getPrice();
+ uint priceToken1 = oracleToken1.getPrice();
+
+ assertEq(priceToken1, uint256(1e18).divWadDown(priceToken0), "incorrect price"); // 1%
+ }
+
+ function test_priceMultiplier(uint multiplier) public {
+ multiplier = bound(multiplier, 0, 10000);
+
+ BalancerOracle oracle0 = new BalancerOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ BalancerOracle oracle1 = new BalancerOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ uint16(multiplier),
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ uint price0 = oracle0.getPrice();
+ uint price1 = oracle1.getPrice();
+
+ uint expectedPrice = price0.mulDivUp(multiplier, MULTIPLIER_DENOM);
+
+ assertEq(price1, expectedPrice, "incorrect price multiplier");
+ }
+
+ function test_singleBlockManipulation() public {
+ IVault vault = _default.pair.getVault();
+ BalancerOracle oracle = new BalancerOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ address manipulator1 = makeAddr("manipulator");
+ deal(TOKEN_ADDRESS, manipulator1, 1000000 ether);
+
+ vm.startPrank(manipulator1);
+ IERC20(TOKEN_ADDRESS).approve(address(vault), 1000000 ether);
+
+ (address[] memory tokens, uint256[] memory reserves,) = vault.getPoolTokens(_default.pair.getPoolId());
+
+ // swap 1 token to update oracle to latest block
+ swap(address(_default.pair), tokens[0], tokens[1], 1, manipulator1);
+
+ // register initial oracle price
+ uint256 price_1 = oracle.getPrice();
+
+ swap(address(_default.pair), tokens[0], tokens[1], reserves[0] / 10, manipulator1);
+
+ vm.stopPrank();
+
+ // check price variation
+ assertEq(oracle.getPrice(), price_1, "single block price variation");
+ }
+
+ function test_priceManipulation(uint256 skipTime) public {
+ skipTime = bound(skipTime, 1, _default.secs);
+ IVault vault = _default.pair.getVault();
+ BalancerOracle oracle = new BalancerOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ address manipulator1 = makeAddr("manipulator");
+ deal(TOKEN_ADDRESS, manipulator1, 1000000 ether);
+
+ vm.startPrank(manipulator1);
+
+ // swap 1 token to update oracle to latest block
+ IERC20(TOKEN_ADDRESS).approve(address(vault), 1000000 ether);
+ swap(address(_default.pair), TOKEN_ADDRESS, PAYMENT_ADDRESS, 1, manipulator1);
+
+ // register initial oracle price
+ uint256 price_1 = oracle.getPrice();
+
+ // perform a large swap (25% of reserves)
+ (address[] memory tokens, uint256[] memory reserves,) = vault.getPoolTokens(_default.pair.getPoolId());
+ swap(address(_default.pair), tokens[0], tokens[1], reserves[0] / 4, manipulator1);
+
+ vm.stopPrank();
+
+ // wait
+ skip(skipTime);
+ // update block
+ vm.roll(block.number + 1);
+
+ // oracle price is only updated on swaps
+ assertEq(price_1, oracle.getPrice(), "price updated");
+
+ // perform additional, smaller swap
+ address manipulator2 = makeAddr("manipulator2");
+ deal(PAYMENT_ADDRESS, manipulator2, 1);
+ vm.startPrank(manipulator2);
+ IERC20(PAYMENT_ADDRESS).approve(address(vault), 1);
+ swap(address(_default.pair), tokens[1], tokens[0], 1, manipulator2);
+ vm.stopPrank();
+
+ // weighted average of the first recorded oracle price and the current spot price
+ // weighted by the time since the last update
+ uint256 spotAverage = ((price_1 * (_default.secs - skipTime)) + (getSpotPrice(address(_default.pair), _default.token) * skipTime)) / _default.secs;
+
+ assertApproxEqRel(spotAverage, oracle.getPrice(), 0.01 ether, "price variance too large");
+ }
+
+ function getSpotPrice(address pool, address token) internal view returns (uint256 price) {
+ IVault vault = IBalancerTwapOracle(pool).getVault();
+ bytes32 poolId = IBalancerTwapOracle(pool).getPoolId();
+ (address[] memory poolTokens,,) = vault.getPoolTokens(poolId);
+
+ bool isToken0 = token == poolTokens[0];
+ (,uint[] memory balances, ) = vault.getPoolTokens(poolId);
+ uint[] memory weights = IBalancer2TokensPool(pool).getNormalizedWeights();
+
+ price = isToken0 ?
+ (balances[1] * weights[0]).divWadDown(balances[0] * weights[1]) :
+ (balances[0] * weights[1]).divWadDown(balances[1] * weights[0]);
+ }
+
+ function max(uint x, uint y) internal pure returns (uint z) {
+ z = x > y ? x : y;
+ }
+
+ function swap(address pool, address tokenIn, address tokenOut, uint amountIn, address sender) internal returns (uint amountOut) {
+ bytes32 poolId = IBalancerTwapOracle(pool).getPoolId();
+ IVault.SingleSwap memory singleSwap = IVault.SingleSwap(
+ poolId,
+ IVault.SwapKind.GIVEN_IN,
+ IAsset(tokenIn),
+ IAsset(tokenOut),
+ amountIn,
+ ""
+ );
+
+ IVault.FundManagement memory funds = IVault.FundManagement(
+ sender,
+ false,
+ payable(sender),
+ false
+ );
+
+ return IVault(IBalancer2TokensPool(pool).getVault()).swap(
+ singleSwap,
+ funds,
+ 0,
+ type(uint256).max
+ );
+ }
+
+}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 7ca4fa8..81107ae 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -43,13 +43,18 @@ contract OptionsTokenTest is Test {
treasury = makeAddr("treasury");
// deploy contracts
- balancerTwapOracle = new MockBalancerTwapOracle();
- oracle =
- new BalancerOracle(balancerTwapOracle, owner, ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
paymentToken = new TestERC20();
underlyingToken = address(new TestERC20());
optionsToken = new OptionsToken("TIT Call Option Token", "oTIT", owner, tokenAdmin);
+ address[] memory tokens = new address[](2);
+ tokens[0] = underlyingToken;
+ tokens[1] = address(paymentToken);
+
+ balancerTwapOracle = new MockBalancerTwapOracle(tokens);
+ oracle =
+ new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
+
exerciser = new DiscountExercise(optionsToken, owner, paymentToken, ERC20(underlyingToken), oracle, treasury);
TestERC20(underlyingToken).mint(address(exerciser), 1e20 ether);
@@ -113,7 +118,7 @@ contract OptionsTokenTest is Test {
}
function test_exerciseMinPrice(uint256 amount, address recipient) public {
- amount = bound(amount, 0, MAX_SUPPLY);
+ amount = bound(amount, 1, MAX_SUPPLY);
// mint options tokens
vm.prank(tokenAdmin);
@@ -128,22 +133,8 @@ contract OptionsTokenTest is Test {
// exercise options tokens
DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
- bytes memory returnBytes = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
-
- // verify options tokens were transferred
- assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
- assertEqDecimal(optionsToken.balanceOf(address(0)), amount, 18, "address(0) didn't get options tokens");
- assertEqDecimal(optionsToken.totalSupply(), amount, 18, "total supply changed");
-
- // verify payment tokens were transferred
- assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
- assertEqDecimal(
- paymentToken.balanceOf(treasury), expectedPaymentAmount, 18, "treasury didn't receive payment tokens"
- );
- if (amount != 0) {
- DiscountExerciseReturnData memory returnData = abi.decode(returnBytes, (DiscountExerciseReturnData));
- assertEqDecimal(returnData.paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
- }
+ vm.expectRevert(bytes4(keccak256("BalancerOracle__BelowMinPrice()")));
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
function test_exerciseHighSlippage(uint256 amount, address recipient) public {
@@ -180,7 +171,7 @@ contract OptionsTokenTest is Test {
// such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
// which is outside of the largest safety window
vm.prank(owner);
- oracle.setParams(ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
+ oracle.setParams(address(0), ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
// exercise options tokens which should fail
DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
diff --git a/test/mocks/MockBalancerTwapOracle.sol b/test/mocks/MockBalancerTwapOracle.sol
index 0ace245..1f31322 100644
--- a/test/mocks/MockBalancerTwapOracle.sol
+++ b/test/mocks/MockBalancerTwapOracle.sol
@@ -2,39 +2,89 @@
pragma solidity ^0.8.11;
import {IBalancerTwapOracle} from "../../src/interfaces/IBalancerTwapOracle.sol";
+import {IVault} from "../../src/interfaces/IBalancerTwapOracle.sol";
-contract MockBalancerTwapOracle is IBalancerTwapOracle {
- uint256 twapValue;
+contract MockVault is IVault {
+ address[] tokens = new address[](2);
- function setTwapValue(uint256 value) external {
- twapValue = value;
+ constructor (address[] memory _tokens) {
+ tokens = _tokens;
}
- function getTimeWeightedAverage(IBalancerTwapOracle.OracleAverageQuery[] memory queries)
+ function joinPool(
+ bytes32 poolId,
+ address sender,
+ address recipient,
+ JoinPoolRequest memory request
+ ) external payable override {}
+
+ function getPool(
+ bytes32 poolId
+ ) external view override returns (address, PoolSpecialization) {}
+
+ function getPoolTokens(
+ bytes32 poolId
+ )
external
view
override
- returns (uint256[] memory results)
+ returns (address[] memory tokens, uint256[] memory, uint256)
{
- queries;
- results = new uint256[](1);
- results[0] = twapValue;
+ tokens = new address[](2);
+ tokens[0] = tokens[0];
+ tokens[1] = tokens[1];
}
- function getLatest(IBalancerTwapOracle.Variable variable) external view override returns (uint256) {
- // not implemented
+ function swap(
+ SingleSwap memory singleSwap,
+ FundManagement memory funds,
+ uint256 limit,
+ uint256 deadline
+ ) external payable override returns (uint256) {}
+}
+
+contract MockBalancerTwapOracle is IBalancerTwapOracle {
+ uint256 twapValue;
+ IVault mockVault;
+
+ constructor (address[] memory tokens) {
+ mockVault = new MockVault(tokens);
}
- function getLargestSafeQueryWindow() external pure override returns (uint256) {
- return 24 hours; // simulates an oracle that can look back at most 24 hours
+ function setTwapValue(uint256 value) external {
+ twapValue = value;
+ }
+
+ function getTimeWeightedAverage(
+ IBalancerTwapOracle.OracleAverageQuery[] memory queries
+ ) external view override returns (uint256[] memory results) {
+ queries;
+ results = new uint256[](1);
+ results[0] = twapValue;
}
- function getPastAccumulators(IBalancerTwapOracle.OracleAccumulatorQuery[] memory queries)
+ function getLargestSafeQueryWindow()
external
- view
+ pure
override
- returns (int256[] memory results)
+ returns (uint256)
{
- // not implemented
+ return 24 hours; // simulates an oracle that can look back at most 24 hours
}
+
+ function getPastAccumulators(
+ IBalancerTwapOracle.OracleAccumulatorQuery[] memory queries
+ ) external view override returns (int256[] memory results) {
+ }
+
+ function getLatest(
+ IBalancerTwapOracle.Variable variable
+ ) external view override returns (uint256) {
+ }
+
+ function getVault() external view override returns (IVault) {
+ return mockVault;
+ }
+
+ function getPoolId() external view override returns (bytes32) {}
}
From 598f06688df26d3efd797d530a38af0b46f721c6 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Mon, 11 Dec 2023 23:31:25 -0300
Subject: [PATCH 15/64] remove unnecessary function
---
test/BalancerOracle.t.sol | 4 ----
1 file changed, 4 deletions(-)
diff --git a/test/BalancerOracle.t.sol b/test/BalancerOracle.t.sol
index cdf949f..450c494 100644
--- a/test/BalancerOracle.t.sol
+++ b/test/BalancerOracle.t.sol
@@ -223,10 +223,6 @@ contract BalancerOracleTest is Test {
(balances[0] * weights[1]).divWadDown(balances[1] * weights[0]);
}
- function max(uint x, uint y) internal pure returns (uint z) {
- z = x > y ? x : y;
- }
-
function swap(address pool, address tokenIn, address tokenOut, uint amountIn, address sender) internal returns (uint amountOut) {
bytes32 poolId = IBalancerTwapOracle(pool).getPoolId();
IVault.SingleSwap memory singleSwap = IVault.SingleSwap(
From ea56289cfca249f1a1c08a0820f32f212250f2da Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Wed, 13 Dec 2023 12:46:17 -0300
Subject: [PATCH 16/64] change pool used for tests
---
test/ThenaOracle.t.sol | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
index f6ba49c..c851b26 100644
--- a/test/ThenaOracle.t.sol
+++ b/test/ThenaOracle.t.sol
@@ -18,16 +18,16 @@ struct Params {
uint128 minPrice;
}
-contract UniswapOracleTest is Test {
+contract ThenaOracleTest is Test {
using stdStorage for StdStorage;
using FixedPointMathLib for uint256;
string BSC_RPC_URL = vm.envString("BSC_RPC_URL");
uint32 FORK_BLOCK = 33672842;
- address THENA_POOL_ADDRESS = 0x63Db6ba9E512186C2FAaDaCEF342FB4A40dc577c;
- address THENA_ADDRESS = 0xF4C8E32EaDEC4BFe97E0F595AdD0f4450a863a11;
- address BNB_ADDRESS = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
+ address POOL_ADDRESS = 0x63Db6ba9E512186C2FAaDaCEF342FB4A40dc577c;
+ address TOKEN_ADDRESS = 0x4d2d32d8652058Bf98c772953E1Df5c5c85D9F45;
+ address PAYMENT_TOKEN_ADDRESS = 0x55d398326f99059fF775485246999027B3197955;
address THENA_ROUTER = 0xd4ae6eCA985340Dd434D38F470aCCce4DC78D109;
uint MULTIPLIER_DENOM = 10000;
@@ -37,7 +37,7 @@ contract UniswapOracleTest is Test {
Params _default;
function setUp() public {
- _default = Params(IThenaPair(THENA_POOL_ADDRESS), THENA_ADDRESS, address(this), 10000, 30 minutes, 1000);
+ _default = Params(IThenaPair(POOL_ADDRESS), TOKEN_ADDRESS, address(this), 10000, 30 minutes, 1000);
bscFork = vm.createSelectFork(BSC_RPC_URL, FORK_BLOCK);
}
@@ -127,21 +127,21 @@ contract UniswapOracleTest is Test {
);
address manipulator1 = makeAddr("manipulator");
- deal(THENA_ADDRESS, manipulator1, 1000000 ether);
+ deal(TOKEN_ADDRESS, manipulator1, 1000000 ether);
// register initial oracle price
uint256 price_1 = oracle.getPrice();
// perform a large swap
vm.startPrank(manipulator1);
- IERC20(THENA_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
+ IERC20(TOKEN_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
(uint256 reserve0, uint256 reserve1,) = _default.pair.getReserves();
(uint256[] memory amountOut) = IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
- (THENA_ADDRESS == _default.pair.token0() ? reserve0 : reserve1) / 10,
+ (TOKEN_ADDRESS == _default.pair.token0() ? reserve0 : reserve1) / 10,
0,
- THENA_ADDRESS,
- BNB_ADDRESS,
+ TOKEN_ADDRESS,
+ PAYMENT_TOKEN_ADDRESS,
false,
manipulator1,
type(uint32).max
@@ -156,15 +156,15 @@ contract UniswapOracleTest is Test {
// perform additional, smaller swap
address manipulator2 = makeAddr("manipulator2");
- deal(BNB_ADDRESS, manipulator2, amountOut[0] / 1000);
+ deal(PAYMENT_TOKEN_ADDRESS, manipulator2, amountOut[0] / 1000);
vm.startPrank(manipulator2);
- IERC20(BNB_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
+ IERC20(PAYMENT_TOKEN_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
amountOut[0] / 1000,
0,
- BNB_ADDRESS,
- THENA_ADDRESS,
+ PAYMENT_TOKEN_ADDRESS,
+ TOKEN_ADDRESS,
false,
manipulator2,
type(uint32).max
From 34eaf89cbe93d46743d96bf707f6a29c78bd4d62 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Fri, 15 Dec 2023 14:41:55 -0300
Subject: [PATCH 17/64] improve/fix tests
---
src/interfaces/IThenaPair.sol | 2 +
test/ThenaOracle.t.sol | 69 +++++++++++++++++++++++------------
2 files changed, 48 insertions(+), 23 deletions(-)
diff --git a/src/interfaces/IThenaPair.sol b/src/interfaces/IThenaPair.sol
index 543a982..974cb14 100644
--- a/src/interfaces/IThenaPair.sol
+++ b/src/interfaces/IThenaPair.sol
@@ -32,4 +32,6 @@ interface IThenaPair {
function token0() external view returns (address);
function token1() external view returns (address);
+
+ function sync() external;
}
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
index c851b26..09b2faa 100644
--- a/test/ThenaOracle.t.sol
+++ b/test/ThenaOracle.t.sol
@@ -2,7 +2,6 @@
pragma solidity ^0.8.13;
import "forge-std/Test.sol";
-import "forge-std/console.sol";
import {ThenaOracle} from "../src/oracles/ThenaOracle.sol";
import {IThenaPair} from "../src/interfaces/IThenaPair.sol";
import {IThenaRouter} from "./interfaces/IThenaRouter.sol";
@@ -25,7 +24,7 @@ contract ThenaOracleTest is Test {
string BSC_RPC_URL = vm.envString("BSC_RPC_URL");
uint32 FORK_BLOCK = 33672842;
- address POOL_ADDRESS = 0x63Db6ba9E512186C2FAaDaCEF342FB4A40dc577c;
+ address POOL_ADDRESS = 0x56EDFf25385B1DaE39d816d006d14CeCf96026aF;
address TOKEN_ADDRESS = 0x4d2d32d8652058Bf98c772953E1Df5c5c85D9F45;
address PAYMENT_TOKEN_ADDRESS = 0x55d398326f99059fF775485246999027B3197955;
address THENA_ROUTER = 0xd4ae6eCA985340Dd434D38F470aCCce4DC78D109;
@@ -55,7 +54,7 @@ contract ThenaOracleTest is Test {
uint oraclePrice = oracle.getPrice();
uint256 spotPrice = getSpotPrice(_default.pair, _default.token);
- assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too big"); // 1%
+ assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too large"); // 1%
}
function test_priceToken1() public {
@@ -116,7 +115,7 @@ contract ThenaOracleTest is Test {
assertEq(price1, expectedPrice, "incorrect price multiplier"); // 1%
}
- function test_priceManipulation() public {
+ function test_singleBlockManipulation() public {
ThenaOracle oracle = new ThenaOracle(
_default.pair,
_default.token,
@@ -126,52 +125,76 @@ contract ThenaOracleTest is Test {
_default.minPrice
);
- address manipulator1 = makeAddr("manipulator");
- deal(TOKEN_ADDRESS, manipulator1, 1000000 ether);
+ address manipulator = makeAddr("manipulator");
+ deal(TOKEN_ADDRESS, manipulator, 1000000 ether);
// register initial oracle price
uint256 price_1 = oracle.getPrice();
// perform a large swap
- vm.startPrank(manipulator1);
+ vm.startPrank(manipulator);
IERC20(TOKEN_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
(uint256 reserve0, uint256 reserve1,) = _default.pair.getReserves();
- (uint256[] memory amountOut) = IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
+ IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
(TOKEN_ADDRESS == _default.pair.token0() ? reserve0 : reserve1) / 10,
0,
TOKEN_ADDRESS,
PAYMENT_TOKEN_ADDRESS,
false,
- manipulator1,
+ manipulator,
type(uint32).max
);
vm.stopPrank();
// price should not have changed
- assertEq(oracle.getPrice(), price_1);
+ assertEq(oracle.getPrice(), price_1, "single block price variation");
+ }
- // wait 60 seconds
- skip(1 minutes);
-
- // perform additional, smaller swap
- address manipulator2 = makeAddr("manipulator2");
- deal(PAYMENT_TOKEN_ADDRESS, manipulator2, amountOut[0] / 1000);
- vm.startPrank(manipulator2);
- IERC20(PAYMENT_TOKEN_ADDRESS).approve(THENA_ROUTER, 1000000 ether);
+ function test_priceManipulation(uint256 skipTime) public {
+ skipTime = bound(skipTime, 1, _default.secs);
+ ThenaOracle oracle = new ThenaOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.minPrice
+ );
+
+ // clean twap for test
+ skip(1 hours);
+ _default.pair.sync();
+ skip(1 hours);
+ _default.pair.sync();
+ skip(1 hours);
+ // register initial oracle price
+ uint256 price_1 = oracle.getPrice();
+
+ // perform a large swap
+ address manipulator = makeAddr("manipulator");
+ vm.startPrank(manipulator);
+ (uint256 reserve0, uint256 reserve1,) = _default.pair.getReserves();
+ uint256 amountIn = (TOKEN_ADDRESS == _default.pair.token0() ? reserve0 : reserve1) / 4;
+ IERC20(TOKEN_ADDRESS).approve(THENA_ROUTER, amountIn);
IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
- amountOut[0] / 1000,
+ amountIn,
0,
- PAYMENT_TOKEN_ADDRESS,
TOKEN_ADDRESS,
+ PAYMENT_TOKEN_ADDRESS,
false,
- manipulator2,
+ manipulator,
type(uint32).max
);
vm.stopPrank();
-
- assertApproxEqRel(price_1, oracle.getPrice(), 0.01 ether, "price variance too large");
+
+ // wait
+ skip(skipTime);
+
+ uint256 expectedMinPrice = (price_1 * (_default.secs - skipTime) + getSpotPrice(_default.pair, _default.token) * skipTime) / _default.secs;
+
+ assertGeDecimal(oracle.getPrice(), expectedMinPrice, 18, "price variation too large");
}
function getSpotPrice(IThenaPair pair, address token) internal view returns (uint256 price) {
From c63565be2ffe13416deb81486e491ddfb0339ed6 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Fri, 15 Dec 2023 16:57:29 -0300
Subject: [PATCH 18/64] improve tests, revert on minPrice
---
src/interfaces/IUniswapPool.sol | 10 ---
src/oracles/UniswapV3Oracle.sol | 14 ++--
test/UniswapV3Oracle.t.sol | 130 ++++++++++++++++++++++++------
test/mocks/MockUniswapPool.sol | 137 +++++++++++++++++++++++++++++++-
4 files changed, 247 insertions(+), 44 deletions(-)
delete mode 100644 src/interfaces/IUniswapPool.sol
diff --git a/src/interfaces/IUniswapPool.sol b/src/interfaces/IUniswapPool.sol
deleted file mode 100644
index 1e6a893..0000000
--- a/src/interfaces/IUniswapPool.sol
+++ /dev/null
@@ -1,10 +0,0 @@
-pragma solidity ^0.8.0;
-
-import {IUniswapV3PoolDerivedState} from "v3-core/interfaces/pool/IUniswapV3PoolDerivedState.sol";
-import {IUniswapV3PoolImmutables} from "v3-core/interfaces/pool/IUniswapV3PoolImmutables.sol";
-
-/**
- * @dev Interface for querying historical data from a UniswapV3 Pool that can be used as a Price Oracle.
- * @notice From v3-core/interfaces
- */
-interface IUniswapPool is IUniswapV3PoolDerivedState, IUniswapV3PoolImmutables {}
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index 696a6d4..9345da8 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -6,7 +6,7 @@ import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IOracle} from "../interfaces/IOracle.sol";
-import {IUniswapPool} from "../interfaces/IUniswapPool.sol";
+import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
import {TickMath} from "v3-core/libraries/TickMath.sol";
import {FullMath} from "v3-core/libraries/FullMath.sol";
@@ -28,7 +28,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Errors
/// -----------------------------------------------------------------------
- error UniswapOracle__TWAPOracleNotReady();
+ error UniswapOracle__BelowMinPrice();
/// -----------------------------------------------------------------------
/// Events
@@ -49,7 +49,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// -----------------------------------------------------------------------
/// @notice The UniswapV3 Pool contract (provides the oracle)
- IUniswapPool public immutable uniswapPool;
+ IUniswapV3Pool public immutable uniswapPool;
/// -----------------------------------------------------------------------
/// Storage variables
@@ -79,7 +79,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// -----------------------------------------------------------------------
constructor(
- IUniswapPool uniswapPool_,
+ IUniswapV3Pool uniswapPool_,
address token,
address owner_,
uint16 multiplier_,
@@ -149,11 +149,11 @@ contract UniswapV3Oracle is IOracle, Owned {
}
}
+ // apply minimum price
+ if (price < minPrice_) revert UniswapOracle__BelowMinPrice();
+
// apply multiplier to price
price = price.mulDivUp(multiplier, MULTIPLIER_DENOM);
-
- // bound price above minPrice
- price = price < minPrice_ ? minPrice_ : price;
}
/// -----------------------------------------------------------------------
diff --git a/test/UniswapV3Oracle.t.sol b/test/UniswapV3Oracle.t.sol
index 2a9b8b7..9631845 100644
--- a/test/UniswapV3Oracle.t.sol
+++ b/test/UniswapV3Oracle.t.sol
@@ -2,19 +2,18 @@
pragma solidity ^0.8.13;
import "forge-std/Test.sol";
-import "forge-std/console.sol";
import {UniswapV3Oracle} from "../src/oracles/UniswapV3Oracle.sol";
import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
import {TickMath} from "v3-core/libraries/TickMath.sol";
import {FullMath} from "v3-core/libraries/FullMath.sol";
import {ISwapRouter} from "./interfaces/ISwapRouter.sol";
-import {IUniswapPool} from "../src/interfaces/IUniswapPool.sol";
+import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
import {MockUniswapPool} from "./mocks/MockUniswapPool.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IERC20} from "forge-std/interfaces/IERC20.sol";
struct Params {
- IUniswapPool pool;
+ IUniswapV3Pool pool;
address token;
address owner;
uint16 multiplier;
@@ -53,7 +52,7 @@ contract UniswapOracleTest is Test {
mockV3Pool.setCumulatives(sampleCumulatives);
mockV3Pool.setToken0(OP_ADDRESS);
- _default = Params(IUniswapPool(WETH_OP_POOL_ADDRESS), OP_ADDRESS, address(this), 10000, 30 minutes, 0, 1000);
+ _default = Params(IUniswapV3Pool(WETH_OP_POOL_ADDRESS), OP_ADDRESS, address(this), 10000, 30 minutes, 0, 1000);
swapRouter = ISwapRouter(SWAP_ROUTER_ADDRESS);
}
@@ -133,7 +132,7 @@ contract UniswapOracleTest is Test {
assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too big"); // 1%
}
- function test_priceManipulation() public {
+ function test_revertMinPrice() public {
opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
UniswapV3Oracle oracle = new UniswapV3Oracle(
@@ -146,51 +145,132 @@ contract UniswapOracleTest is Test {
_default.minPrice
);
- address manipulator1 = makeAddr("manipulator");
- deal(OP_ADDRESS, manipulator1, 1000000 ether);
+ skip(_default.secs);
+
+ uint256 price = oracle.getPrice();
+
+ uint256 amountIn = 100000 ether;
+ deal(OP_ADDRESS, address(this), amountIn);
+ ISwapRouter.ExactInputSingleParams memory paramsIn =
+ ISwapRouter.ExactInputSingleParams({
+ tokenIn: OP_ADDRESS,
+ tokenOut: WETH_ADDRESS,
+ fee: POOL_FEE,
+ recipient: address(this),
+ deadline: block.timestamp,
+ amountIn: amountIn,
+ amountOutMinimum: 0,
+ sqrtPriceLimitX96: 0
+ });
+ IERC20(OP_ADDRESS).approve(address(swapRouter), amountIn);
+ swapRouter.exactInputSingle(paramsIn);
+
+ // deploy a new oracle with a minPrice that is too high
+ UniswapV3Oracle oracleMinPrice = new UniswapV3Oracle(
+ _default.pool,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ uint128(price)
+ );
+
+ skip(_default.secs);
+
+ vm.expectRevert(UniswapV3Oracle.UniswapOracle__BelowMinPrice.selector);
+ oracleMinPrice.getPrice();
+ }
+
+ function test_singleBlockManipulation() public {
+ opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
+
+ UniswapV3Oracle oracle = new UniswapV3Oracle(
+ _default.pool,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ address manipulator = makeAddr("manipulator");
+ deal(OP_ADDRESS, manipulator, 1000000 ether);
// register initial oracle price
uint256 price_1 = oracle.getPrice();
// perform a large swap
- vm.startPrank(manipulator1);
+ vm.startPrank(manipulator);
+ uint256 reserve = IERC20(OP_ADDRESS).balanceOf(WETH_OP_POOL_ADDRESS);
+ uint256 amountIn = reserve / 4;
ISwapRouter.ExactInputSingleParams memory paramsIn =
ISwapRouter.ExactInputSingleParams({
tokenIn: OP_ADDRESS,
tokenOut: WETH_ADDRESS,
fee: POOL_FEE,
- recipient: manipulator1,
+ recipient: manipulator,
deadline: block.timestamp,
- amountIn: 1000000 ether,
+ amountIn: amountIn,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
});
- IERC20(OP_ADDRESS).approve(address(swapRouter), 1000000 ether);
- uint amountOut = swapRouter.exactInputSingle(paramsIn);
+ IERC20(OP_ADDRESS).approve(address(swapRouter), amountIn);
+ swapRouter.exactInputSingle(paramsIn);
vm.stopPrank();
- // wait 60 seconds
- skip(1 minutes);
-
- // perform additional, smaller swap
- address manipulator2 = makeAddr("manipulator");
- deal(OP_ADDRESS, manipulator2, amountOut);
- vm.startPrank(manipulator2);
- ISwapRouter.ExactInputSingleParams memory paramsOut =
+ // price should not have changed
+ assertEqDecimal(price_1, oracle.getPrice(), 18);
+ }
+
+ function test_priceManipulation(uint256 skipTime) public {
+ skipTime = bound(skipTime, 1, _default.secs);
+ opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
+
+ UniswapV3Oracle oracle = new UniswapV3Oracle(
+ _default.pool,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ _default.ago,
+ _default.minPrice
+ );
+
+ address manipulator = makeAddr("manipulator");
+ deal(OP_ADDRESS, manipulator, 1000000 ether);
+
+ // register initial oracle price
+ uint256 price_1 = oracle.getPrice();
+
+ // perform a large swap
+ vm.startPrank(manipulator);
+ uint256 reserve = IERC20(OP_ADDRESS).balanceOf(WETH_OP_POOL_ADDRESS);
+ uint256 amountIn = reserve / 4;
+ ISwapRouter.ExactInputSingleParams memory paramsIn =
ISwapRouter.ExactInputSingleParams({
tokenIn: OP_ADDRESS,
tokenOut: WETH_ADDRESS,
fee: POOL_FEE,
- recipient: manipulator1,
+ recipient: manipulator,
deadline: block.timestamp,
- amountIn: amountOut / 100, // perform small swap
+ amountIn: amountIn,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
});
- IERC20(OP_ADDRESS).approve(address(swapRouter), amountOut / 100);
- swapRouter.exactInputSingle(paramsOut);
+ IERC20(OP_ADDRESS).approve(address(swapRouter), amountIn);
+ swapRouter.exactInputSingle(paramsIn);
+ vm.stopPrank();
+
+ // wait
+ skip(skipTime);
+
+ (uint160 sqrtRatioX96,,,,,,) = IUniswapV3Pool(WETH_OP_POOL_ADDRESS).slot0();
+ uint256 spotPrice = computePriceFromX96(sqrtRatioX96);
+ uint256 expectedPrice = (price_1 * (_default.secs - skipTime) + spotPrice * skipTime) / _default.secs;
- assertApproxEqRel(price_1, oracle.getPrice(), 0.01 ether, "price variance too large");
+ assertApproxEqRel(oracle.getPrice(), expectedPrice, 0.001 ether, "price variance too large");
}
function computePriceFromX96(uint160 sqrtRatioX96) internal view returns (uint256 price) {
diff --git a/test/mocks/MockUniswapPool.sol b/test/mocks/MockUniswapPool.sol
index 2ab41a9..2709b5a 100644
--- a/test/mocks/MockUniswapPool.sol
+++ b/test/mocks/MockUniswapPool.sol
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.11;
-import {IUniswapPool} from "../../src/interfaces/IUniswapPool.sol";
+import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
-contract MockUniswapPool is IUniswapPool {
+contract MockUniswapPool is IUniswapV3Pool {
int56[2] cumulatives;
address public token0;
@@ -46,4 +46,137 @@ contract MockUniswapPool is IUniswapPool {
function tickSpacing() external view override returns (int24) {}
function maxLiquidityPerTick() external view override returns (uint128) {}
+
+ function slot0()
+ external
+ view
+ override
+ returns (
+ uint160 sqrtPriceX96,
+ int24 tick,
+ uint16 observationIndex,
+ uint16 observationCardinality,
+ uint16 observationCardinalityNext,
+ uint8 feeProtocol,
+ bool unlocked
+ )
+ {}
+
+ function feeGrowthGlobal0X128() external view override returns (uint256) {}
+
+ function feeGrowthGlobal1X128() external view override returns (uint256) {}
+
+ function protocolFees()
+ external
+ view
+ override
+ returns (uint128, uint128)
+ {}
+
+ function liquidity() external view override returns (uint128) {}
+
+ function ticks(
+ int24 tick
+ )
+ external
+ view
+ override
+ returns (
+ uint128 liquidityGross,
+ int128 liquidityNet,
+ uint256 feeGrowthOutside0X128,
+ uint256 feeGrowthOutside1X128,
+ int56 tickCumulativeOutside,
+ uint160 secondsPerLiquidityOutsideX128,
+ uint32 secondsOutside,
+ bool initialized
+ )
+ {}
+
+ function tickBitmap(
+ int16 wordPosition
+ ) external view override returns (uint256) {}
+
+ function positions(
+ bytes32 key
+ )
+ external
+ view
+ override
+ returns (
+ uint128 _liquidity,
+ uint256 feeGrowthInside0LastX128,
+ uint256 feeGrowthInside1LastX128,
+ uint128 tokensOwed0,
+ uint128 tokensOwed1
+ )
+ {}
+
+ function observations(
+ uint256 index
+ )
+ external
+ view
+ override
+ returns (
+ uint32 blockTimestamp,
+ int56 tickCumulative,
+ uint160 secondsPerLiquidityCumulativeX128,
+ bool initialized
+ )
+ {}
+
+ function initialize(uint160 sqrtPriceX96) external override {}
+
+ function mint(
+ address recipient,
+ int24 tickLower,
+ int24 tickUpper,
+ uint128 amount,
+ bytes calldata data
+ ) external override returns (uint256 amount0, uint256 amount1) {}
+
+ function collect(
+ address recipient,
+ int24 tickLower,
+ int24 tickUpper,
+ uint128 amount0Requested,
+ uint128 amount1Requested
+ ) external override returns (uint128 amount0, uint128 amount1) {}
+
+ function burn(
+ int24 tickLower,
+ int24 tickUpper,
+ uint128 amount
+ ) external override returns (uint256 amount0, uint256 amount1) {}
+
+ function swap(
+ address recipient,
+ bool zeroForOne,
+ int256 amountSpecified,
+ uint160 sqrtPriceLimitX96,
+ bytes calldata data
+ ) external override returns (int256 amount0, int256 amount1) {}
+
+ function flash(
+ address recipient,
+ uint256 amount0,
+ uint256 amount1,
+ bytes calldata data
+ ) external override {}
+
+ function increaseObservationCardinalityNext(
+ uint16 observationCardinalityNext
+ ) external override {}
+
+ function setFeeProtocol(
+ uint8 feeProtocol0,
+ uint8 feeProtocol1
+ ) external override {}
+
+ function collectProtocol(
+ address recipient,
+ uint128 amount0Requested,
+ uint128 amount1Requested
+ ) external override returns (uint128 amount0, uint128 amount1) {}
}
From 448e7abc8b6a39e644aa47457748149d8e28c390 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Fri, 15 Dec 2023 17:09:46 -0300
Subject: [PATCH 19/64] review 2
---
src/OptionsToken.sol | 20 ++------------
src/exercise/DiscountExercise.sol | 7 ++++-
src/interfaces/IERC20.sol | 20 --------------
src/interfaces/IOptionsToken.sol | 2 +-
test/OptionsToken.t.sol | 43 ++++++++++++++++++++++++-------
5 files changed, 43 insertions(+), 49 deletions(-)
delete mode 100644 src/interfaces/IERC20.sol
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 3755f59..8bab818 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -18,7 +18,6 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
/// Errors
/// -----------------------------------------------------------------------
- error OptionsToken__PastDeadline();
error OptionsToken__NotTokenAdmin();
error OptionsToken__NotOption();
@@ -29,6 +28,7 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
event Exercise(address indexed sender, address indexed recipient, uint256 amount, bytes parameters);
event SetOracle(IOracle indexed newOracle);
event SetTreasury(address indexed newTreasury);
+ event SetOption(address indexed option, bool isOption);
/// -----------------------------------------------------------------------
/// Immutable parameters
@@ -96,23 +96,6 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
return _exercise(amount, recipient, option, params);
}
- /// @notice Exercises options tokens, giving the reward to the recipient.
- /// @dev WARNING: If `amount` is zero, the bytes returned will be empty and therefore, not decodable.
- /// @dev The options tokens are not burnt but sent to address(0) to avoid messing up the
- /// inflation schedule.
- /// @param amount The amount of options tokens to exercise
- /// @param recipient The recipient of the reward
- /// @param params Extra parameters to be used by the exercise function
- /// @param deadline The deadline by which the transaction must be mined
- function exercise(uint256 amount, address recipient, address option, bytes calldata params, uint256 deadline)
- external
- virtual
- returns (bytes memory)
- {
- if (block.timestamp > deadline) revert OptionsToken__PastDeadline();
- return _exercise(amount, recipient, option, params);
- }
-
/// -----------------------------------------------------------------------
/// Owner functions
/// -----------------------------------------------------------------------
@@ -122,6 +105,7 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
/// @param _isOption Whether oToken holders should be allowed to exercise using this option.
function setOption(address _address, bool _isOption) external onlyOwner {
isOption[_address] = _isOption;
+ emit SetOption(_address, _isOption);
}
/// -----------------------------------------------------------------------
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 0fd8a9f..a17a67e 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -12,6 +12,7 @@ import {OptionsToken} from "../OptionsToken.sol";
struct DiscountExerciseParams {
uint256 maxPaymentAmount;
+ uint256 deadline;
}
struct DiscountExerciseReturnData {
@@ -30,6 +31,7 @@ contract DiscountExercise is BaseExercise, Owned {
/// Errors
error Exercise__SlippageTooHigh();
+ error Exercise__PastDeadline();
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
@@ -114,12 +116,15 @@ contract DiscountExercise is BaseExercise, Owned {
// decode params
DiscountExerciseParams memory _params = abi.decode(params, (DiscountExerciseParams));
+ if (block.timestamp > _params.deadline) revert Exercise__PastDeadline();
+
// transfer payment tokens from user to the treasury
+ // this price includes the discount
uint256 paymentAmount = amount.mulWadUp(oracle.getPrice());
if (paymentAmount > _params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
paymentToken.safeTransferFrom(from, treasury, paymentAmount);
- // mint underlying tokens to recipient
+ // transfer underlying tokens to recipient
underlyingToken.safeTransfer(recipient, amount);
data = abi.encode(
diff --git a/src/interfaces/IERC20.sol b/src/interfaces/IERC20.sol
deleted file mode 100644
index 985aa77..0000000
--- a/src/interfaces/IERC20.sol
+++ /dev/null
@@ -1,20 +0,0 @@
-// SPDX-License-Identifier: MIT
-
-pragma solidity ^0.8.20;
-
-interface IERC20 {
- event Transfer(address indexed from, address indexed to, uint256 value);
- event Approval(address indexed owner, address indexed spender, uint256 value);
-
- function totalSupply() external view returns (uint256);
-
- function balanceOf(address account) external view returns (uint256);
-
- function transfer(address to, uint256 value) external returns (bool);
-
- function allowance(address owner, address spender) external view returns (uint256);
-
- function approve(address spender, uint256 value) external returns (bool);
-
- function transferFrom(address from, address to, uint256 value) external returns (bool);
-}
diff --git a/src/interfaces/IOptionsToken.sol b/src/interfaces/IOptionsToken.sol
index 2f65e84..c85e501 100644
--- a/src/interfaces/IOptionsToken.sol
+++ b/src/interfaces/IOptionsToken.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.13;
interface IOptionsToken {
- function exercise(uint256 amount, address recipient, address option, bytes calldata params, uint256 deadline)
+ function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
returns (bytes memory);
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 7ca4fa8..10c24be 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -93,7 +93,10 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ DiscountExerciseParams memory params = DiscountExerciseParams({
+ maxPaymentAmount: expectedPaymentAmount,
+ deadline: type(uint256).max
+ });
bytes memory returnBytes = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
@@ -127,7 +130,10 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ DiscountExerciseParams memory params = DiscountExerciseParams({
+ maxPaymentAmount: expectedPaymentAmount,
+ deadline: type(uint256).max
+ });
bytes memory returnBytes = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
@@ -159,7 +165,10 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1});
+ DiscountExerciseParams memory params = DiscountExerciseParams({
+ maxPaymentAmount: expectedPaymentAmount - 1,
+ deadline: type(uint256).max
+ });
vm.expectRevert(bytes4(keccak256("Exercise__SlippageTooHigh()")));
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -183,7 +192,10 @@ contract OptionsTokenTest is Test {
oracle.setParams(ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ DiscountExerciseParams memory params = DiscountExerciseParams({
+ maxPaymentAmount: expectedPaymentAmount,
+ deadline: type(uint256).max
+ });
vm.expectRevert(bytes4(keccak256("BalancerOracle__TWAPOracleNotReady()")));
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -191,6 +203,8 @@ contract OptionsTokenTest is Test {
function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
amount = bound(amount, 0, MAX_SUPPLY);
deadline = bound(deadline, 0, block.timestamp - 1);
+ console.log("deadline: %s", deadline);
+ console.log("block.timestamp: %s", block.timestamp);
// mint options tokens
vm.prank(tokenAdmin);
@@ -202,9 +216,14 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
- vm.expectRevert(bytes4(keccak256("OptionsToken__PastDeadline()")));
- optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params), deadline);
+ DiscountExerciseParams memory params = DiscountExerciseParams({
+ maxPaymentAmount: expectedPaymentAmount,
+ deadline: deadline
+ });
+ if (amount != 0) {
+ vm.expectRevert(bytes4(keccak256("Exercise__PastDeadline()")));
+ }
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
function test_exerciseNotOToken(uint256 amount, address recipient) public {
@@ -219,7 +238,10 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ DiscountExerciseParams memory params = DiscountExerciseParams({
+ maxPaymentAmount: expectedPaymentAmount,
+ deadline: type(uint256).max
+ });
vm.expectRevert(bytes4(keccak256("Exercise__NotOToken()")));
exerciser.exercise(address(this), amount, recipient, abi.encode(params));
}
@@ -241,7 +263,10 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount});
+ DiscountExerciseParams memory params = DiscountExerciseParams({
+ maxPaymentAmount: expectedPaymentAmount,
+ deadline: type(uint256).max
+ });
vm.expectRevert(bytes4(keccak256("OptionsToken__NotOption()")));
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
From 940c974ed81bc9379f6267a0a7f5aab3cc867115 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Fri, 15 Dec 2023 18:47:21 -0300
Subject: [PATCH 20/64] revert on min price, fix tests
---
src/oracles/ThenaOracle.sol | 7 ++---
test/ThenaOracle.t.sol | 55 ++++++++++++++++++++++++++++++++++---
2 files changed, 54 insertions(+), 8 deletions(-)
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
index 1ac6818..6ae50ae 100644
--- a/src/oracles/ThenaOracle.sol
+++ b/src/oracles/ThenaOracle.sol
@@ -28,6 +28,7 @@ contract ThenaOracle is IOracle, Owned {
error ThenaOracle__StablePairsUnsupported();
error ThenaOracle__Overflow();
+ error ThenaOracle__BelowMinPrice();
/// -----------------------------------------------------------------------
/// Events
@@ -103,7 +104,6 @@ contract ThenaOracle is IOracle, Owned {
uint256 multiplier_ = multiplier;
uint256 secs_ = secs;
- uint256 minPrice_ = minPrice;
/// -----------------------------------------------------------------------
/// Computation
@@ -141,11 +141,10 @@ contract ThenaOracle is IOracle, Owned {
}
}
+ if (price < minPrice) revert ThenaOracle__BelowMinPrice();
+
// apply multiplier to price
price = price.mulDivUp(multiplier_, MULTIPLIER_DENOM);
-
- // bound price above minPrice
- price = price < minPrice_ ? minPrice_ : price;
}
/// -----------------------------------------------------------------------
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
index 09b2faa..320ffb1 100644
--- a/test/ThenaOracle.t.sol
+++ b/test/ThenaOracle.t.sol
@@ -80,7 +80,7 @@ contract ThenaOracleTest is Test {
uint priceToken0 = oracleToken0.getPrice();
uint priceToken1 = oracleToken1.getPrice();
- assertEq(priceToken1, uint256(1e18).divWadDown(priceToken0), "incorrect price"); // 1%
+ assertApproxEqAbs(priceToken1, uint256(1e18).divWadDown(priceToken0), 1, "incorrect price"); // 1%
}
function test_priceMultiplier(uint multiplier) public {
@@ -107,12 +107,58 @@ contract ThenaOracleTest is Test {
uint price0 = oracle0.getPrice();
uint price1 = oracle1.getPrice();
- uint expectedPrice = max(
- price0.mulDivUp(multiplier, MULTIPLIER_DENOM),
+ uint expectedPrice = price0.mulDivDown(multiplier, MULTIPLIER_DENOM);
+
+ assertApproxEqAbs(price1, expectedPrice, 1, "incorrect price multiplier"); // 1%
+ }
+
+ function test_revertMinPrice() public {
+ ThenaOracle oracle = new ThenaOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
_default.minPrice
);
- assertEq(price1, expectedPrice, "incorrect price multiplier"); // 1%
+ // clean twap for test
+ skip(1 hours);
+ _default.pair.sync();
+ skip(1 hours);
+ _default.pair.sync();
+ skip(1 hours);
+
+ // register initial oracle price
+ uint256 price = oracle.getPrice();
+
+ // drag price below min
+ uint256 amountIn = 10000000;
+ deal(TOKEN_ADDRESS, address(this), amountIn);
+ IERC20(TOKEN_ADDRESS).approve(THENA_ROUTER, amountIn);
+ IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
+ amountIn,
+ 0,
+ TOKEN_ADDRESS,
+ PAYMENT_TOKEN_ADDRESS,
+ false,
+ address(this),
+ type(uint32).max
+ );
+
+ ThenaOracle oracleMinPrice = new ThenaOracle(
+ _default.pair,
+ _default.token,
+ _default.owner,
+ _default.multiplier,
+ _default.secs,
+ uint128(price)
+ );
+
+ skip(_default.secs);
+
+ vm.expectRevert(ThenaOracle.ThenaOracle__BelowMinPrice.selector);
+ oracleMinPrice.getPrice();
}
function test_singleBlockManipulation() public {
@@ -174,6 +220,7 @@ contract ThenaOracleTest is Test {
// perform a large swap
address manipulator = makeAddr("manipulator");
+ deal(TOKEN_ADDRESS, manipulator, 2**128);
vm.startPrank(manipulator);
(uint256 reserve0, uint256 reserve1,) = _default.pair.getReserves();
uint256 amountIn = (TOKEN_ADDRESS == _default.pair.token0() ? reserve0 : reserve1) / 4;
From 3c47df81eb4545f60cc8d101ff47733a6752b002 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Fri, 15 Dec 2023 19:37:17 -0300
Subject: [PATCH 21/64] account full fees, add tests
---
src/exercise/BaseExercise.sol | 4 +++-
test/OptionsToken.t.sol | 28 +++++++++++++++++++++++-----
2 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index aeda18f..09c6214 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -61,10 +61,12 @@ abstract contract BaseExercise is IExercise, Owned {
/// @notice Distributes fees to the fee recipients from a token holder who has approved
function distributeFeesFrom(uint256 totalAmount, ERC20 token, address from) internal virtual{
- for (uint256 i = 0; i < feeRecipients.length; i++) {
+ for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransferFrom(from, feeRecipients[i], feeAmount);
+ totalAmount -= feeAmount;
}
+ token.safeTransferFrom(from, feeRecipients[feeRecipients.length - 1], totalAmount);
emit DistributeFees(feeRecipients, feeBPS, totalAmount);
}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 10c24be..e6e2739 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -27,7 +27,8 @@ contract OptionsTokenTest is Test {
address owner;
address tokenAdmin;
- address treasury;
+ address[] feeRecipients_;
+ uint256[] feeBPS_;
OptionsToken optionsToken;
DiscountExercise exerciser;
@@ -40,7 +41,14 @@ contract OptionsTokenTest is Test {
// set up accounts
owner = makeAddr("owner");
tokenAdmin = makeAddr("tokenAdmin");
- treasury = makeAddr("treasury");
+
+ feeRecipients_ = new address[](2);
+ feeRecipients_[0] = makeAddr("feeRecipient");
+ feeRecipients_[1] = makeAddr("feeRecipient2");
+
+ feeBPS_ = new uint256[](2);
+ feeBPS_[0] = 1000; // 10%
+ feeBPS_[1] = 9000; // 90%
// deploy contracts
balancerTwapOracle = new MockBalancerTwapOracle();
@@ -50,7 +58,7 @@ contract OptionsTokenTest is Test {
underlyingToken = address(new TestERC20());
optionsToken = new OptionsToken("TIT Call Option Token", "oTIT", owner, tokenAdmin);
- exerciser = new DiscountExercise(optionsToken, owner, paymentToken, ERC20(underlyingToken), oracle, treasury);
+ exerciser = new DiscountExercise(optionsToken, owner, paymentToken, ERC20(underlyingToken), oracle, feeRecipients_, feeBPS_);
TestERC20(underlyingToken).mint(address(exerciser), 1e20 ether);
// add exerciser to the list of options
@@ -106,8 +114,13 @@ contract OptionsTokenTest is Test {
// verify payment tokens were transferred
assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
+ uint256 paymentFee1 = expectedPaymentAmount.mulDivDown(feeBPS_[0], 10000);
+ uint256 paymentFee2 = expectedPaymentAmount - paymentFee1;
+ assertEqDecimal(
+ paymentToken.balanceOf(feeRecipients_[0]), paymentFee1, 18, "fee recipient 1 didn't receive payment tokens"
+ );
assertEqDecimal(
- paymentToken.balanceOf(treasury), expectedPaymentAmount, 18, "treasury didn't receive payment tokens"
+ paymentToken.balanceOf(feeRecipients_[1]), paymentFee2, 18, "fee recipient 2 didn't receive payment tokens"
);
if (amount != 0) {
DiscountExerciseReturnData memory returnData = abi.decode(returnBytes, (DiscountExerciseReturnData));
@@ -143,8 +156,13 @@ contract OptionsTokenTest is Test {
// verify payment tokens were transferred
assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
+ uint256 paymentFee1 = expectedPaymentAmount.mulDivDown(feeBPS_[0], 10000);
+ uint256 paymentFee2 = expectedPaymentAmount - paymentFee1;
+ assertEqDecimal(
+ paymentToken.balanceOf(feeRecipients_[0]), paymentFee1, 18, "fee recipient 1 didn't receive payment tokens"
+ );
assertEqDecimal(
- paymentToken.balanceOf(treasury), expectedPaymentAmount, 18, "treasury didn't receive payment tokens"
+ paymentToken.balanceOf(feeRecipients_[1]), paymentFee2, 18, "fee recipient 2 didn't receive payment tokens"
);
if (amount != 0) {
DiscountExerciseReturnData memory returnData = abi.decode(returnBytes, (DiscountExerciseReturnData));
From 588852b81732ce980f0659248882b162f3dec520 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Thu, 28 Dec 2023 13:29:15 -0300
Subject: [PATCH 22/64] improve interfaces
---
src/OptionsToken.sol | 50 +++++++++++++++++++++----------
src/exercise/BaseExercise.sol | 9 +++---
src/exercise/DiscountExercise.sol | 16 ++--------
src/interfaces/IExercise.sol | 9 +++++-
src/interfaces/IOptionsToken.sol | 6 ++--
test/OptionsToken.t.sol | 34 +++++++++------------
6 files changed, 68 insertions(+), 56 deletions(-)
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 8bab818..f6485c5 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -19,16 +19,23 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
/// -----------------------------------------------------------------------
error OptionsToken__NotTokenAdmin();
- error OptionsToken__NotOption();
+ error OptionsToken__NotExerciseContract();
/// -----------------------------------------------------------------------
/// Events
/// -----------------------------------------------------------------------
- event Exercise(address indexed sender, address indexed recipient, uint256 amount, bytes parameters);
+ event Exercise(
+ address indexed sender,
+ address indexed recipient,
+ uint256 amount,
+ address data0,
+ uint256 data1,
+ uint256 data2
+ );
event SetOracle(IOracle indexed newOracle);
event SetTreasury(address indexed newTreasury);
- event SetOption(address indexed option, bool isOption);
+ event SetExerciseContract(address indexed _address, bool _isExercise);
/// -----------------------------------------------------------------------
/// Immutable parameters
@@ -41,7 +48,7 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
/// Storage variables
/// -----------------------------------------------------------------------
- mapping (address => bool) public isOption;
+ mapping (address => bool) public isExerciseContract;
/// -----------------------------------------------------------------------
/// Constructor
@@ -91,7 +98,7 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
virtual
- returns (bytes memory)
+ returns (uint256 paymentAmount, address, uint256, uint256) // misc data
{
return _exercise(amount, recipient, option, params);
}
@@ -102,10 +109,10 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
/// @notice Adds a new Exercise contract to the available options.
/// @param _address Address of the Exercise contract, that implements BaseExercise.
- /// @param _isOption Whether oToken holders should be allowed to exercise using this option.
- function setOption(address _address, bool _isOption) external onlyOwner {
- isOption[_address] = _isOption;
- emit SetOption(_address, _isOption);
+ /// @param _isExercise Whether oToken holders should be allowed to exercise using this option.
+ function setExerciseContract(address _address, bool _isExercise) external onlyOwner {
+ isExerciseContract[_address] = _isExercise;
+ emit SetExerciseContract(_address, _isExercise);
}
/// -----------------------------------------------------------------------
@@ -115,13 +122,13 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
function _exercise(uint256 amount, address recipient, address option, bytes calldata params)
internal
virtual
- returns (bytes memory data)
+ returns (uint256 paymentAmount, address data0, uint256 data1, uint256 data2) // misc data
{
// skip if amount is zero
- if (amount == 0) return new bytes(0);
+ if (amount == 0) return (0, address(0), 0, 0);
// skip if option is not active
- if (!isOption[option]) revert OptionsToken__NotOption();
+ if (!isExerciseContract[option]) revert OptionsToken__NotExerciseContract();
// transfer options tokens from msg.sender to address(0)
// we transfer instead of burn because TokenAdmin cares about totalSupply
@@ -129,8 +136,21 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
transfer(address(0), amount);
// give rewards to recipient
- data = IExercise(option).exercise(msg.sender, amount, recipient, params);
-
- emit Exercise(msg.sender, recipient, amount, params);
+ (
+ paymentAmount,
+ data0,
+ data1,
+ data2
+ ) = IExercise(option).exercise(msg.sender, amount, recipient, params);
+
+ // emit event
+ emit Exercise(
+ msg.sender,
+ recipient,
+ amount,
+ data0,
+ data1,
+ data2
+ );
}
}
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index e101ddf..fa133ae 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -2,14 +2,14 @@
pragma solidity ^0.8.13;
import {IExercise} from "../interfaces/IExercise.sol";
-import {OptionsToken} from "../OptionsToken.sol";
+import {IOptionsToken} from "../OptionsToken.sol";
abstract contract BaseExercise is IExercise {
error Exercise__NotOToken();
- OptionsToken public immutable oToken;
+ IOptionsToken public immutable oToken;
- constructor (OptionsToken _oToken) {
+ constructor (IOptionsToken _oToken) {
oToken = _oToken;
}
@@ -24,8 +24,9 @@ abstract contract BaseExercise is IExercise {
/// @param amount Amount of tokens being exercised
/// @param recipient Wallet that will receive the rewards for exercising the oTokens
/// @param params Extraneous parameters that the function may use - abi.encoded struct
+ /// @dev Additional returns are reserved for future use
function exercise(address from, uint256 amount, address recipient, bytes memory params)
external
virtual
- returns (bytes memory data);
+ returns (uint paymentAmount, address, uint256, uint256);
}
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index a17a67e..c0aa95a 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -15,10 +15,6 @@ struct DiscountExerciseParams {
uint256 deadline;
}
-struct DiscountExerciseReturnData {
- uint256 paymentAmount;
-}
-
/// @title Options Token Exercise Contract
/// @author @bigbadbeard, @lookee, @eidolon
/// @notice Contract that allows the holder of options tokens to exercise them,
@@ -85,7 +81,7 @@ contract DiscountExercise is BaseExercise, Owned {
virtual
override
onlyOToken
- returns (bytes memory data)
+ returns (uint paymentAmount, address, uint256, uint256)
{
return _exercise(from, amount, recipient, params);
}
@@ -111,7 +107,7 @@ contract DiscountExercise is BaseExercise, Owned {
function _exercise(address from, uint256 amount, address recipient, bytes memory params)
internal
virtual
- returns (bytes memory data)
+ returns (uint256 paymentAmount, address, uint256, uint256)
{
// decode params
DiscountExerciseParams memory _params = abi.decode(params, (DiscountExerciseParams));
@@ -120,19 +116,13 @@ contract DiscountExercise is BaseExercise, Owned {
// transfer payment tokens from user to the treasury
// this price includes the discount
- uint256 paymentAmount = amount.mulWadUp(oracle.getPrice());
+ paymentAmount = amount.mulWadUp(oracle.getPrice());
if (paymentAmount > _params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
paymentToken.safeTransferFrom(from, treasury, paymentAmount);
// transfer underlying tokens to recipient
underlyingToken.safeTransfer(recipient, amount);
- data = abi.encode(
- DiscountExerciseReturnData({
- paymentAmount: paymentAmount
- })
- );
-
emit Exercised(from, recipient, amount, paymentAmount);
}
}
diff --git a/src/interfaces/IExercise.sol b/src/interfaces/IExercise.sol
index 59b0385..e23bc9e 100644
--- a/src/interfaces/IExercise.sol
+++ b/src/interfaces/IExercise.sol
@@ -7,5 +7,12 @@ interface IExercise {
/// @param amount The amount of options tokens to exercise
/// @param recipient The address that receives the underlying tokens
/// @param params Additional parameters for the exercise
- function exercise(address from, uint256 amount, address recipient, bytes memory params) external returns (bytes memory data);
+ /// @return paymentAmount The amount of underlying tokens to pay to the exercise contract
+ /// @dev Additional returns are reserved for future use
+ function exercise(
+ address from,
+ uint256 amount,
+ address recipient,
+ bytes memory params
+ ) external returns (uint256 paymentAmount, address, uint, uint);
}
diff --git a/src/interfaces/IOptionsToken.sol b/src/interfaces/IOptionsToken.sol
index c85e501..5ac8e63 100644
--- a/src/interfaces/IOptionsToken.sol
+++ b/src/interfaces/IOptionsToken.sol
@@ -4,9 +4,9 @@ pragma solidity ^0.8.13;
interface IOptionsToken {
function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
- returns (bytes memory);
+ returns (uint256 paymentAmount, address, uint256, uint256);
- function setOption(address _address, bool _isOption) external;
+ function setExerciseContract(address _address, bool _isExercise) external;
- function isOption(address) external returns (bool);
+ function isExerciseContract(address) external returns (bool);
}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 10c24be..666756f 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -7,7 +7,7 @@ import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {ERC20} from "solmate/tokens/ERC20.sol";
import {OptionsToken} from "../src/OptionsToken.sol";
-import {DiscountExerciseParams, DiscountExerciseReturnData, DiscountExercise} from "../src/exercise/DiscountExercise.sol";
+import {DiscountExerciseParams, DiscountExercise, BaseExercise} from "../src/exercise/DiscountExercise.sol";
import {TestERC20} from "./mocks/TestERC20.sol";
import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
@@ -55,7 +55,7 @@ contract OptionsTokenTest is Test {
// add exerciser to the list of options
vm.startPrank(owner);
- optionsToken.setOption(address(exerciser), true);
+ optionsToken.setExerciseContract(address(exerciser), true);
vm.stopPrank();
// set up contracts
@@ -68,7 +68,7 @@ contract OptionsTokenTest is Test {
// try minting as non token admin
vm.startPrank(hacker);
- vm.expectRevert(bytes4(keccak256("OptionsToken__NotTokenAdmin()")));
+ vm.expectRevert(OptionsToken.OptionsToken__NotTokenAdmin.selector);
optionsToken.mint(address(this), amount);
vm.stopPrank();
@@ -97,7 +97,7 @@ contract OptionsTokenTest is Test {
maxPaymentAmount: expectedPaymentAmount,
deadline: type(uint256).max
});
- bytes memory returnBytes = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
@@ -109,10 +109,7 @@ contract OptionsTokenTest is Test {
assertEqDecimal(
paymentToken.balanceOf(treasury), expectedPaymentAmount, 18, "treasury didn't receive payment tokens"
);
- if (amount != 0) {
- DiscountExerciseReturnData memory returnData = abi.decode(returnBytes, (DiscountExerciseReturnData));
- assertEqDecimal(returnData.paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
- }
+ assertEqDecimal(paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
}
function test_exerciseMinPrice(uint256 amount, address recipient) public {
@@ -134,7 +131,7 @@ contract OptionsTokenTest is Test {
maxPaymentAmount: expectedPaymentAmount,
deadline: type(uint256).max
});
- bytes memory returnBytes = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ (uint paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
@@ -146,10 +143,7 @@ contract OptionsTokenTest is Test {
assertEqDecimal(
paymentToken.balanceOf(treasury), expectedPaymentAmount, 18, "treasury didn't receive payment tokens"
);
- if (amount != 0) {
- DiscountExerciseReturnData memory returnData = abi.decode(returnBytes, (DiscountExerciseReturnData));
- assertEqDecimal(returnData.paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
- }
+ assertEqDecimal(paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
}
function test_exerciseHighSlippage(uint256 amount, address recipient) public {
@@ -169,7 +163,7 @@ contract OptionsTokenTest is Test {
maxPaymentAmount: expectedPaymentAmount - 1,
deadline: type(uint256).max
});
- vm.expectRevert(bytes4(keccak256("Exercise__SlippageTooHigh()")));
+ vm.expectRevert(DiscountExercise.Exercise__SlippageTooHigh.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -196,7 +190,7 @@ contract OptionsTokenTest is Test {
maxPaymentAmount: expectedPaymentAmount,
deadline: type(uint256).max
});
- vm.expectRevert(bytes4(keccak256("BalancerOracle__TWAPOracleNotReady()")));
+ vm.expectRevert(BalancerOracle.BalancerOracle__TWAPOracleNotReady.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -221,7 +215,7 @@ contract OptionsTokenTest is Test {
deadline: deadline
});
if (amount != 0) {
- vm.expectRevert(bytes4(keccak256("Exercise__PastDeadline()")));
+ vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
}
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -242,11 +236,11 @@ contract OptionsTokenTest is Test {
maxPaymentAmount: expectedPaymentAmount,
deadline: type(uint256).max
});
- vm.expectRevert(bytes4(keccak256("Exercise__NotOToken()")));
+ vm.expectRevert(BaseExercise.Exercise__NotOToken.selector);
exerciser.exercise(address(this), amount, recipient, abi.encode(params));
}
- function test_exerciseOptionNotActive(uint256 amount, address recipient) public {
+ function test_exerciseNotExerciseContract(uint256 amount, address recipient) public {
amount = bound(amount, 1, MAX_SUPPLY);
// mint options tokens
@@ -255,7 +249,7 @@ contract OptionsTokenTest is Test {
// set option inactive
vm.prank(owner);
- optionsToken.setOption(address(exerciser), false);
+ optionsToken.setExerciseContract(address(exerciser), false);
// mint payment tokens
uint256 expectedPaymentAmount =
@@ -267,7 +261,7 @@ contract OptionsTokenTest is Test {
maxPaymentAmount: expectedPaymentAmount,
deadline: type(uint256).max
});
- vm.expectRevert(bytes4(keccak256("OptionsToken__NotOption()")));
+ vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
From 03ce56694c6434116417a2b7d1fdc8a8f033a463 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Thu, 28 Dec 2023 15:03:30 -0300
Subject: [PATCH 23/64] move multiplier to exercise
---
src/exercise/DiscountExercise.sol | 25 ++++++++++++-
src/oracles/BalancerOracle.sol | 25 ++-----------
test/BalancerOracle.t.sol | 38 +-------------------
test/OptionsToken.t.sol | 59 +++++++++++++++++++++++++------
4 files changed, 77 insertions(+), 70 deletions(-)
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index c0aa95a..e6a8f29 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -33,6 +33,13 @@ contract DiscountExercise is BaseExercise, Owned {
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
event SetOracle(IOracle indexed newOracle);
event SetTreasury(address indexed newTreasury);
+ event SetMultiplier(uint256 indexed newMultiplier);
+
+ /// Constants
+
+ /// @notice The denominator for converting the multiplier into a decimal number.
+ /// i.e. multiplier uses 4 decimals.
+ uint256 internal constant MULTIPLIER_DENOM = 10000;
/// Immutable parameters
@@ -48,6 +55,10 @@ contract DiscountExercise is BaseExercise, Owned {
/// the underlying token while exercising options (the strike price)
IOracle public oracle;
+ /// @notice The multiplier applied to the TWAP value. Encodes the discount of
+ /// the options token. Uses 4 decimals.
+ uint256 public multiplier;
+
/// @notice The treasury address which receives tokens paid during redemption
address public treasury;
@@ -57,15 +68,18 @@ contract DiscountExercise is BaseExercise, Owned {
ERC20 paymentToken_,
ERC20 underlyingToken_,
IOracle oracle_,
+ uint256 multiplier_,
address treasury_
) BaseExercise(oToken_) Owned(owner_) {
paymentToken = paymentToken_;
underlyingToken = underlyingToken_;
oracle = oracle_;
+ multiplier = multiplier_;
treasury = treasury_;
emit SetOracle(oracle_);
emit SetTreasury(treasury_);
+ emit SetMultiplier(multiplier_);
}
/// External functions
@@ -95,6 +109,13 @@ contract DiscountExercise is BaseExercise, Owned {
emit SetOracle(oracle_);
}
+ /// @notice Sets the discount multiplier.
+ /// @param multiplier_ The new multiplier
+ function setMultiplier(uint256 multiplier_) external onlyOwner {
+ multiplier = multiplier_;
+ emit SetMultiplier(multiplier_);
+ }
+
/// @notice Sets the treasury address. Only callable by the owner.
/// @param treasury_ The new treasury address
function setTreasury(address treasury_) external onlyOwner {
@@ -114,9 +135,11 @@ contract DiscountExercise is BaseExercise, Owned {
if (block.timestamp > _params.deadline) revert Exercise__PastDeadline();
+ // apply multiplier to price
+ uint256 price = oracle.getPrice().mulDivUp(multiplier, MULTIPLIER_DENOM);
// transfer payment tokens from user to the treasury
// this price includes the discount
- paymentAmount = amount.mulWadUp(oracle.getPrice());
+ paymentAmount = amount.mulWadUp(price);
if (paymentAmount > _params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
paymentToken.safeTransferFrom(from, treasury, paymentAmount);
diff --git a/src/oracles/BalancerOracle.sol b/src/oracles/BalancerOracle.sol
index 2f57251..28cb189 100644
--- a/src/oracles/BalancerOracle.sol
+++ b/src/oracles/BalancerOracle.sol
@@ -34,15 +34,7 @@ contract BalancerOracle is IOracle, Owned {
/// Events
/// -----------------------------------------------------------------------
- event SetParams(uint16 multiplier, uint56 secs, uint56 ago, uint128 minPrice);
-
- /// -----------------------------------------------------------------------
- /// Constants
- /// -----------------------------------------------------------------------
-
- /// @notice The denominator for converting the multiplier into a decimal number.
- /// i.e. multiplier uses 4 decimals.
- uint256 internal constant MULTIPLIER_DENOM = 10000;
+ event SetParams(uint56 secs, uint56 ago, uint128 minPrice);
/// -----------------------------------------------------------------------
/// Immutable parameters
@@ -55,10 +47,6 @@ contract BalancerOracle is IOracle, Owned {
/// Storage variables
/// -----------------------------------------------------------------------
- /// @notice The multiplier applied to the TWAP value. Encodes the discount of
- /// the options token. Uses 4 decimals.
- uint16 public multiplier;
-
/// @notice The size of the window to take the TWAP value over in seconds.
uint56 public secs;
@@ -82,7 +70,6 @@ contract BalancerOracle is IOracle, Owned {
IBalancerTwapOracle balancerTwapOracle_,
address token,
address owner_,
- uint16 multiplier_,
uint56 secs_,
uint56 ago_,
uint128 minPrice_
@@ -93,12 +80,11 @@ contract BalancerOracle is IOracle, Owned {
(address[] memory poolTokens,,) = vault.getPoolTokens(balancerTwapOracle_.getPoolId());
isToken0 = poolTokens[0] == token;
- multiplier = multiplier_;
secs = secs_;
ago = ago_;
minPrice = minPrice_;
- emit SetParams(multiplier_, secs_, ago_, minPrice_);
+ emit SetParams(secs_, ago_, minPrice_);
}
/// -----------------------------------------------------------------------
@@ -111,7 +97,6 @@ contract BalancerOracle is IOracle, Owned {
/// Storage loads
/// -----------------------------------------------------------------------
- uint256 multiplier_ = multiplier;
uint256 secs_ = secs;
uint256 ago_ = ago;
uint256 minPrice_ = minPrice;
@@ -148,9 +133,6 @@ contract BalancerOracle is IOracle, Owned {
// apply min price
if (price < minPrice_) revert BalancerOracle__BelowMinPrice();
-
- // apply multiplier to price
- price = price.mulDivUp(multiplier_, MULTIPLIER_DENOM);
}
/// -----------------------------------------------------------------------
@@ -170,10 +152,9 @@ contract BalancerOracle is IOracle, Owned {
(address[] memory poolTokens,,) = vault.getPoolTokens(balancerTwapOracle.getPoolId());
isToken0 = poolTokens[0] == token;
- multiplier = multiplier_;
secs = secs_;
ago = ago_;
minPrice = minPrice_;
- emit SetParams(multiplier_, secs_, ago_, minPrice_);
+ emit SetParams(secs_, ago_, minPrice_);
}
}
diff --git a/test/BalancerOracle.t.sol b/test/BalancerOracle.t.sol
index 450c494..5b1f21b 100644
--- a/test/BalancerOracle.t.sol
+++ b/test/BalancerOracle.t.sol
@@ -14,7 +14,6 @@ struct Params {
IBalancerTwapOracle pair;
address token;
address owner;
- uint16 multiplier;
uint32 secs;
uint32 ago;
uint128 minPrice;
@@ -38,7 +37,7 @@ contract BalancerOracleTest is Test {
Params _default;
function setUp() public {
- _default = Params(IBalancerTwapOracle(POOL_ADDRESS), TOKEN_ADDRESS, address(this), 10000, 30 minutes, 0, 1000);
+ _default = Params(IBalancerTwapOracle(POOL_ADDRESS), TOKEN_ADDRESS, address(this), 30 minutes, 0, 1000);
opFork = vm.createSelectFork(MAINNET_RPC_URL, FORK_BLOCK);
}
@@ -48,7 +47,6 @@ contract BalancerOracleTest is Test {
_default.pair,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -68,7 +66,6 @@ contract BalancerOracleTest is Test {
_default.pair,
poolTokens[0],
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -78,7 +75,6 @@ contract BalancerOracleTest is Test {
_default.pair,
poolTokens[1],
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -90,36 +86,6 @@ contract BalancerOracleTest is Test {
assertEq(priceToken1, uint256(1e18).divWadDown(priceToken0), "incorrect price"); // 1%
}
- function test_priceMultiplier(uint multiplier) public {
- multiplier = bound(multiplier, 0, 10000);
-
- BalancerOracle oracle0 = new BalancerOracle(
- _default.pair,
- _default.token,
- _default.owner,
- _default.multiplier,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
-
- BalancerOracle oracle1 = new BalancerOracle(
- _default.pair,
- _default.token,
- _default.owner,
- uint16(multiplier),
- _default.secs,
- _default.ago,
- _default.minPrice
- );
-
- uint price0 = oracle0.getPrice();
- uint price1 = oracle1.getPrice();
-
- uint expectedPrice = price0.mulDivUp(multiplier, MULTIPLIER_DENOM);
-
- assertEq(price1, expectedPrice, "incorrect price multiplier");
- }
function test_singleBlockManipulation() public {
IVault vault = _default.pair.getVault();
@@ -127,7 +93,6 @@ contract BalancerOracleTest is Test {
_default.pair,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -162,7 +127,6 @@ contract BalancerOracleTest is Test {
_default.pair,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 69af8a4..9ff60c6 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -16,7 +16,7 @@ import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
contract OptionsTokenTest is Test {
using FixedPointMathLib for uint256;
- uint16 constant ORACLE_MULTIPLIER = 5000; // 0.5
+ uint16 constant PRICE_MULTIPLIER = 5000; // 0.5
uint56 constant ORACLE_SECS = 30 minutes;
uint56 constant ORACLE_AGO = 2 minutes;
uint128 constant ORACLE_MIN_PRICE = 1e17;
@@ -53,9 +53,9 @@ contract OptionsTokenTest is Test {
balancerTwapOracle = new MockBalancerTwapOracle(tokens);
oracle =
- new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
+ new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
- exerciser = new DiscountExercise(optionsToken, owner, paymentToken, ERC20(underlyingToken), oracle, treasury);
+ exerciser = new DiscountExercise(optionsToken, owner, paymentToken, ERC20(underlyingToken), oracle, PRICE_MULTIPLIER, treasury);
TestERC20(underlyingToken).mint(address(exerciser), 1e20 ether);
// add exerciser to the list of options
@@ -94,7 +94,7 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(ORACLE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
@@ -137,6 +137,45 @@ contract OptionsTokenTest is Test {
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
+ function test_priceMultiplier(uint256 amount, uint multiplier) public {
+ amount = bound(amount, 3000, (1e20) / 2);
+
+ vm.prank(owner);
+ exerciser.setMultiplier(10000); // 100% of price
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount * 2);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount =
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE);
+ paymentToken.mint(address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params = DiscountExerciseParams({
+ maxPaymentAmount: expectedPaymentAmount,
+ deadline: type(uint256).max
+ });
+ (uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ // update multiplier
+ multiplier = bound(multiplier, 5000, 10000);
+ vm.prank(owner);
+ exerciser.setMultiplier(multiplier);
+
+ // exercise options tokens
+ uint256 newPrice = oracle.getPrice().mulDivUp(multiplier, 10000);
+ uint256 newExpectedPaymentAmount = amount.mulWadUp(newPrice);
+ params.maxPaymentAmount = newExpectedPaymentAmount;
+
+ paymentToken.mint(address(this), newExpectedPaymentAmount);
+ console.log(paidAmount, newExpectedPaymentAmount);
+ (uint256 newPaidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ assertEq(newPaidAmount, paidAmount.mulDivUp(multiplier, 10000), "incorrect discount");
+ }
+
function test_exerciseHighSlippage(uint256 amount, address recipient) public {
amount = bound(amount, 1, MAX_SUPPLY);
@@ -146,7 +185,7 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(ORACLE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
@@ -167,14 +206,14 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(ORACLE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// update oracle params
// such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
// which is outside of the largest safety window
vm.prank(owner);
- oracle.setParams(address(0), ORACLE_MULTIPLIER, ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
+ oracle.setParams(address(0), PRICE_MULTIPLIER, ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
// exercise options tokens which should fail
DiscountExerciseParams memory params = DiscountExerciseParams({
@@ -197,7 +236,7 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(ORACLE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
@@ -219,7 +258,7 @@ contract OptionsTokenTest is Test {
optionsToken.mint(address(this), amount);
uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(ORACLE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
@@ -244,7 +283,7 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(ORACLE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
From c8a79da17ad44beca6de7b854720abeb167025f4 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Thu, 28 Dec 2023 15:07:32 -0300
Subject: [PATCH 24/64] forge install: openzeppelin-contracts-upgradeable
v5.0.0
---
.gitmodules | 3 +++
lib/openzeppelin-contracts-upgradeable | 1 +
2 files changed, 4 insertions(+)
create mode 160000 lib/openzeppelin-contracts-upgradeable
diff --git a/.gitmodules b/.gitmodules
index 5e0106b..504d939 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,3 +7,6 @@
[submodule "lib/create3-factory"]
path = lib/create3-factory
url = https://github.com/zeframlou/create3-factory
+[submodule "lib/openzeppelin-contracts-upgradeable"]
+ path = lib/openzeppelin-contracts-upgradeable
+ url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable
diff --git a/lib/openzeppelin-contracts-upgradeable b/lib/openzeppelin-contracts-upgradeable
new file mode 160000
index 0000000..625fb3c
--- /dev/null
+++ b/lib/openzeppelin-contracts-upgradeable
@@ -0,0 +1 @@
+Subproject commit 625fb3c2b2696f1747ba2e72d1e1113066e6c177
From e04518354900c36b53d797c4746ee33b67e5454b Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Thu, 28 Dec 2023 15:19:01 -0300
Subject: [PATCH 25/64] forge install: openzeppelin-contracts
v5.0.0
---
.gitmodules | 3 +++
lib/openzeppelin-contracts | 1 +
2 files changed, 4 insertions(+)
create mode 160000 lib/openzeppelin-contracts
diff --git a/.gitmodules b/.gitmodules
index 504d939..74fac45 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,3 +10,6 @@
[submodule "lib/openzeppelin-contracts-upgradeable"]
path = lib/openzeppelin-contracts-upgradeable
url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable
+[submodule "lib/openzeppelin-contracts"]
+ path = lib/openzeppelin-contracts
+ url = https://github.com/OpenZeppelin/openzeppelin-contracts
diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts
new file mode 160000
index 0000000..932fddf
--- /dev/null
+++ b/lib/openzeppelin-contracts
@@ -0,0 +1 @@
+Subproject commit 932fddf69a699a9a80fd2396fd1a2ab91cdda123
From 8b1fb7192e884b7ebc10022ece295d9f6664aa19 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Thu, 28 Dec 2023 15:58:56 -0300
Subject: [PATCH 26/64] make upgradeable
---
remappings.txt | 2 +
src/OptionsToken.sol | 85 +++++++++++++++++++++++++++-----
src/interfaces/IOptionsToken.sol | 4 +-
test/OptionsToken.t.sol | 12 ++++-
4 files changed, 88 insertions(+), 15 deletions(-)
diff --git a/remappings.txt b/remappings.txt
index dc0fb24..789db51 100644
--- a/remappings.txt
+++ b/remappings.txt
@@ -1,2 +1,4 @@
create3-factory/=lib/create3-factory/src/
+oz-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
+oz/=lib/openzeppelin-contracts/contracts/
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index f6485c5..c5ebe5f 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -1,25 +1,26 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.13;
-import {Owned} from "solmate/auth/Owned.sol";
-import {ERC20} from "solmate/tokens/ERC20.sol";
+import {OwnableUpgradeable} from "oz-upgradeable/access/OwnableUpgradeable.sol";
+import {ERC20Upgradeable} from "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol";
+import {UUPSUpgradeable} from "oz-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import {IOptionsToken} from "./interfaces/IOptionsToken.sol";
import {IOracle} from "./interfaces/IOracle.sol";
-import {IERC20Mintable} from "./interfaces/IERC20Mintable.sol";
import {IExercise} from "./interfaces/IExercise.sol";
/// @title Options Token
/// @author zefram.eth
/// @notice Options token representing the right to perform an advantageous action,
/// such as purchasing the underlying token at a discount to the market price.
-contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
+contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UUPSUpgradeable {
/// -----------------------------------------------------------------------
/// Errors
/// -----------------------------------------------------------------------
error OptionsToken__NotTokenAdmin();
error OptionsToken__NotExerciseContract();
+ error Upgradeable__Unauthorized();
/// -----------------------------------------------------------------------
/// Events
@@ -38,29 +39,52 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
event SetExerciseContract(address indexed _address, bool _isExercise);
/// -----------------------------------------------------------------------
- /// Immutable parameters
+ /// Constant parameters
/// -----------------------------------------------------------------------
- /// @notice The contract that has the right to mint options tokens
- address public immutable tokenAdmin;
+ uint256 public constant UPGRADE_TIMELOCK = 48 hours;
+ uint256 public constant FUTURE_NEXT_PROPOSAL_TIME = 365 days * 100;
/// -----------------------------------------------------------------------
/// Storage variables
/// -----------------------------------------------------------------------
+ /// @notice The contract that has the right to mint options tokens
+ address public tokenAdmin;
+
+ /// @notice The address that can perform upgrades
+ address public upgradeAdmin;
+
mapping (address => bool) public isExerciseContract;
+ uint256 public upgradeProposalTime;
+
+ /// -----------------------------------------------------------------------
+ /// Modifier
+ /// -----------------------------------------------------------------------
+
+ modifier onlyUpgradeAdmin() {
+ if (msg.sender != upgradeAdmin) revert Upgradeable__Unauthorized();
+ _;
+ }
/// -----------------------------------------------------------------------
- /// Constructor
+ /// Initializer
/// -----------------------------------------------------------------------
- constructor(
+ function initialize(
string memory name_,
string memory symbol_,
address owner_,
- address tokenAdmin_
- ) ERC20(name_, symbol_, 18) Owned(owner_) {
+ address tokenAdmin_,
+ address upgradeAdmin_
+ ) external initializer {
+ __UUPSUpgradeable_init();
+ __ERC20_init(name_, symbol_);
+ __Ownable_init(owner_);
tokenAdmin = tokenAdmin_;
+ upgradeAdmin = upgradeAdmin_;
+
+ clearUpgradeCooldown();
}
/// -----------------------------------------------------------------------
@@ -133,7 +157,7 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
// transfer options tokens from msg.sender to address(0)
// we transfer instead of burn because TokenAdmin cares about totalSupply
// which we don't want to change in order to follow the emission schedule
- transfer(address(0), amount);
+ transfer(address(0x1), amount);
// give rewards to recipient
(
@@ -153,4 +177,41 @@ contract OptionsToken is IOptionsToken, ERC20, Owned, IERC20Mintable {
data2
);
}
+
+ /// -----------------------------------------------------------------------
+ /// UUPS functions
+ /// -----------------------------------------------------------------------
+
+ /**
+ * @dev This function must be called prior to upgrading the implementation.
+ * It's required to wait UPGRADE_TIMELOCK seconds before executing the upgrade.
+ * Strategists and roles with higher privilege can initiate this cooldown.
+ */
+ function initiateUpgradeCooldown() onlyUpgradeAdmin() external {
+ upgradeProposalTime = block.timestamp;
+ }
+
+ /**
+ * @dev This function is called:
+ * - in initialize()
+ * - as part of a successful upgrade
+ * - manually to clear the upgrade cooldown.
+ * Guardian and roles with higher privilege can clear this cooldown.
+ */
+ function clearUpgradeCooldown() public {
+ if (msg.sender != upgradeAdmin && !(upgradeProposalTime == 0)) revert Upgradeable__Unauthorized();
+ upgradeProposalTime = block.timestamp + FUTURE_NEXT_PROPOSAL_TIME;
+ }
+
+ /**
+ * @dev This function must be overriden simply for access control purposes.
+ * Only DEFAULT_ADMIN_ROLE can upgrade the implementation once the timelock
+ * has passed.
+ */
+ function _authorizeUpgrade(address) onlyUpgradeAdmin internal override {
+ require(
+ upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp, "Upgrade cooldown not initiated or still ongoing"
+ );
+ clearUpgradeCooldown();
+ }
}
diff --git a/src/interfaces/IOptionsToken.sol b/src/interfaces/IOptionsToken.sol
index 5ac8e63..0b8b29b 100644
--- a/src/interfaces/IOptionsToken.sol
+++ b/src/interfaces/IOptionsToken.sol
@@ -1,7 +1,9 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.13;
-interface IOptionsToken {
+import {IERC20Mintable} from "./IERC20Mintable.sol";
+
+interface IOptionsToken is IERC20Mintable {
function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
returns (uint256 paymentAmount, address, uint256, uint256);
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 9ff60c6..e9fd205 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -5,6 +5,7 @@ import "forge-std/Test.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {ERC20} from "solmate/tokens/ERC20.sol";
+import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
import {OptionsToken} from "../src/OptionsToken.sol";
import {DiscountExerciseParams, DiscountExercise, BaseExercise} from "../src/exercise/DiscountExercise.sol";
@@ -28,6 +29,7 @@ contract OptionsTokenTest is Test {
address owner;
address tokenAdmin;
address treasury;
+ address upgradeAdmin;
OptionsToken optionsToken;
DiscountExercise exerciser;
@@ -41,11 +43,17 @@ contract OptionsTokenTest is Test {
owner = makeAddr("owner");
tokenAdmin = makeAddr("tokenAdmin");
treasury = makeAddr("treasury");
+ upgradeAdmin = makeAddr("upgradeAdmin");
// deploy contracts
paymentToken = new TestERC20();
underlyingToken = address(new TestERC20());
- optionsToken = new OptionsToken("TIT Call Option Token", "oTIT", owner, tokenAdmin);
+
+ address implementation = address(new OptionsToken());
+ ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), "");
+ optionsToken = OptionsToken(address(proxy));
+ optionsToken = new OptionsToken();
+ optionsToken.initialize("TIT Call Option Token", "oTIT", owner, tokenAdmin, upgradeAdmin);
address[] memory tokens = new address[](2);
tokens[0] = underlyingToken;
@@ -106,7 +114,7 @@ contract OptionsTokenTest is Test {
// verify options tokens were transferred
assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
- assertEqDecimal(optionsToken.balanceOf(address(0)), amount, 18, "address(0) didn't get options tokens");
+ assertEqDecimal(optionsToken.balanceOf(address(0x1)), amount, 18, "address(0) didn't get options tokens");
assertEqDecimal(optionsToken.totalSupply(), amount, 18, "total supply changed");
// verify payment tokens were transferred
From 4abd5819eb018c24c1ef454bc57648a0ef640adf Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Mon, 1 Jan 2024 19:52:36 -0300
Subject: [PATCH 27/64] fix errors
---
src/OptionsToken.sol | 39 +++++++++++--------------------
src/exercise/DiscountExercise.sol | 5 ++++
src/oracles/BalancerOracle.sol | 20 ++++++----------
test/OptionsToken.t.sol | 7 ++----
4 files changed, 28 insertions(+), 43 deletions(-)
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index c5ebe5f..369ed38 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -10,7 +10,7 @@ import {IOracle} from "./interfaces/IOracle.sol";
import {IExercise} from "./interfaces/IExercise.sol";
/// @title Options Token
-/// @author zefram.eth
+/// @author Eidolon & lookee
/// @notice Options token representing the right to perform an advantageous action,
/// such as purchasing the underlying token at a discount to the market price.
contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UUPSUpgradeable {
@@ -52,20 +52,10 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/// @notice The contract that has the right to mint options tokens
address public tokenAdmin;
- /// @notice The address that can perform upgrades
- address public upgradeAdmin;
-
mapping (address => bool) public isExerciseContract;
uint256 public upgradeProposalTime;
- /// -----------------------------------------------------------------------
- /// Modifier
- /// -----------------------------------------------------------------------
-
- modifier onlyUpgradeAdmin() {
- if (msg.sender != upgradeAdmin) revert Upgradeable__Unauthorized();
- _;
- }
+ constructor () initializer {}
/// -----------------------------------------------------------------------
/// Initializer
@@ -75,16 +65,14 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
string memory name_,
string memory symbol_,
address owner_,
- address tokenAdmin_,
- address upgradeAdmin_
+ address tokenAdmin_
) external initializer {
__UUPSUpgradeable_init();
__ERC20_init(name_, symbol_);
__Ownable_init(owner_);
tokenAdmin = tokenAdmin_;
- upgradeAdmin = upgradeAdmin_;
- clearUpgradeCooldown();
+ _clearUpgradeCooldown();
}
/// -----------------------------------------------------------------------
@@ -154,10 +142,8 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
// skip if option is not active
if (!isExerciseContract[option]) revert OptionsToken__NotExerciseContract();
- // transfer options tokens from msg.sender to address(0)
- // we transfer instead of burn because TokenAdmin cares about totalSupply
- // which we don't want to change in order to follow the emission schedule
- transfer(address(0x1), amount);
+ // burn options tokens
+ _burn(msg.sender, amount);
// give rewards to recipient
(
@@ -187,7 +173,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
* It's required to wait UPGRADE_TIMELOCK seconds before executing the upgrade.
* Strategists and roles with higher privilege can initiate this cooldown.
*/
- function initiateUpgradeCooldown() onlyUpgradeAdmin() external {
+ function initiateUpgradeCooldown() onlyOwner external {
upgradeProposalTime = block.timestamp;
}
@@ -198,20 +184,23 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
* - manually to clear the upgrade cooldown.
* Guardian and roles with higher privilege can clear this cooldown.
*/
- function clearUpgradeCooldown() public {
- if (msg.sender != upgradeAdmin && !(upgradeProposalTime == 0)) revert Upgradeable__Unauthorized();
+ function _clearUpgradeCooldown() internal {
upgradeProposalTime = block.timestamp + FUTURE_NEXT_PROPOSAL_TIME;
}
+ function clearUpgradeCooldown() onlyOwner external {
+ _clearUpgradeCooldown();
+ }
+
/**
* @dev This function must be overriden simply for access control purposes.
* Only DEFAULT_ADMIN_ROLE can upgrade the implementation once the timelock
* has passed.
*/
- function _authorizeUpgrade(address) onlyUpgradeAdmin internal override {
+ function _authorizeUpgrade(address) onlyOwner internal override {
require(
upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp, "Upgrade cooldown not initiated or still ongoing"
);
- clearUpgradeCooldown();
+ _clearUpgradeCooldown();
}
}
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index e6a8f29..6a7453b 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -28,6 +28,7 @@ contract DiscountExercise is BaseExercise, Owned {
/// Errors
error Exercise__SlippageTooHigh();
error Exercise__PastDeadline();
+ error Exercise__MultiplierOutOfRange();
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
@@ -112,6 +113,10 @@ contract DiscountExercise is BaseExercise, Owned {
/// @notice Sets the discount multiplier.
/// @param multiplier_ The new multiplier
function setMultiplier(uint256 multiplier_) external onlyOwner {
+ if (
+ multiplier_ > MULTIPLIER_DENOM * 2 // over 200%
+ || multiplier_ < MULTIPLIER_DENOM / 10 // under 10%
+ ) revert Exercise__MultiplierOutOfRange();
multiplier = multiplier_;
emit SetMultiplier(multiplier_);
}
diff --git a/src/oracles/BalancerOracle.sol b/src/oracles/BalancerOracle.sol
index 28cb189..e1c818f 100644
--- a/src/oracles/BalancerOracle.sol
+++ b/src/oracles/BalancerOracle.sol
@@ -12,7 +12,7 @@ import {IBalancerTwapOracle} from "../interfaces/IBalancerTwapOracle.sol";
/// @author zefram.eth
/// @notice The oracle contract that provides the current price to purchase
/// the underlying token while exercising options. Uses Balancer TWAP oracle
-/// as data source, and then applies a multiplier & lower bound.
+/// as data source.
/// @dev IMPORTANT: The payment token and the underlying token must use 18 decimals.
/// This is because the Balancer oracle returns the TWAP value in 18 decimals
/// and the OptionsToken contract also expects 18 decimals.
@@ -43,6 +43,10 @@ contract BalancerOracle is IOracle, Owned {
/// @notice The Balancer TWAP oracle contract (usually a pool with oracle support)
IBalancerTwapOracle public immutable balancerTwapOracle;
+ /// @notice Whether the price of token0 should be returned (in units of token1).
+ /// If false, the price of token1 is returned.
+ bool public immutable isToken0;
+
/// -----------------------------------------------------------------------
/// Storage variables
/// -----------------------------------------------------------------------
@@ -58,10 +62,6 @@ contract BalancerOracle is IOracle, Owned {
/// price to mitigate potential attacks on the TWAP oracle.
uint128 public minPrice;
- /// @notice Whether the price should be returned in terms of token0.
- /// If false, the price is returned in terms of token1.
- bool public isToken0;
-
/// -----------------------------------------------------------------------
/// Constructor
/// -----------------------------------------------------------------------
@@ -128,7 +128,7 @@ contract BalancerOracle is IOracle, Owned {
if (isToken0) {
// convert price to token0
- price = uint256(1e18).divWadDown(price);
+ price = uint256(1e18).divWadUp(price);
}
// apply min price
@@ -140,18 +140,12 @@ contract BalancerOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
/// @notice Updates the oracle parameters. Only callable by the owner.
- /// @param multiplier_ The multiplier applied to the TWAP value. Encodes the discount of
- /// the options token. Uses 4 decimals.
/// @param secs_ The size of the window to take the TWAP value over in seconds.
/// @param ago_ The number of seconds in the past to take the TWAP from. The window
/// would be (block.timestamp - secs - ago, block.timestamp - ago].
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
- function setParams(address token, uint16 multiplier_, uint56 secs_, uint56 ago_, uint128 minPrice_) external onlyOwner {
- IVault vault = balancerTwapOracle.getVault();
- (address[] memory poolTokens,,) = vault.getPoolTokens(balancerTwapOracle.getPoolId());
- isToken0 = poolTokens[0] == token;
-
+ function setParams(uint56 secs_, uint56 ago_, uint128 minPrice_) external onlyOwner {
secs = secs_;
ago = ago_;
minPrice = minPrice_;
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index e9fd205..cb133e0 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -52,8 +52,7 @@ contract OptionsTokenTest is Test {
address implementation = address(new OptionsToken());
ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), "");
optionsToken = OptionsToken(address(proxy));
- optionsToken = new OptionsToken();
- optionsToken.initialize("TIT Call Option Token", "oTIT", owner, tokenAdmin, upgradeAdmin);
+ optionsToken.initialize("TIT Call Option Token", "oTIT", owner, tokenAdmin);
address[] memory tokens = new address[](2);
tokens[0] = underlyingToken;
@@ -221,7 +220,7 @@ contract OptionsTokenTest is Test {
// such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
// which is outside of the largest safety window
vm.prank(owner);
- oracle.setParams(address(0), PRICE_MULTIPLIER, ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
+ oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
// exercise options tokens which should fail
DiscountExerciseParams memory params = DiscountExerciseParams({
@@ -235,8 +234,6 @@ contract OptionsTokenTest is Test {
function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
amount = bound(amount, 0, MAX_SUPPLY);
deadline = bound(deadline, 0, block.timestamp - 1);
- console.log("deadline: %s", deadline);
- console.log("block.timestamp: %s", block.timestamp);
// mint options tokens
vm.prank(tokenAdmin);
From 0f9e584eca69a6bdd091b9e99f6cfc176a87fd52 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 11:24:00 -0300
Subject: [PATCH 28/64] fix tests
---
test/BalancerOracle.t.sol | 2 +-
test/OptionsToken.t.sol | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/test/BalancerOracle.t.sol b/test/BalancerOracle.t.sol
index 5b1f21b..9033bab 100644
--- a/test/BalancerOracle.t.sol
+++ b/test/BalancerOracle.t.sol
@@ -83,7 +83,7 @@ contract BalancerOracleTest is Test {
uint priceToken0 = oracleToken0.getPrice();
uint priceToken1 = oracleToken1.getPrice();
- assertEq(priceToken1, uint256(1e18).divWadDown(priceToken0), "incorrect price"); // 1%
+ assertEq(priceToken1, uint256(1e18).divWadUp(priceToken0), "incorrect price"); // 1%
}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index cb133e0..1bae1db 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -113,8 +113,7 @@ contract OptionsTokenTest is Test {
// verify options tokens were transferred
assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
- assertEqDecimal(optionsToken.balanceOf(address(0x1)), amount, 18, "address(0) didn't get options tokens");
- assertEqDecimal(optionsToken.totalSupply(), amount, 18, "total supply changed");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
// verify payment tokens were transferred
assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
From a5ca747c5459caf562ab80d0dcb6f8d5447b9847 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 14:55:01 -0300
Subject: [PATCH 29/64] remove multiplier
---
src/oracles/UniswapV3Oracle.sol | 42 ++++++---------------------------
test/UniswapV3Oracle.t.sol | 27 +--------------------
2 files changed, 8 insertions(+), 61 deletions(-)
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index 9345da8..6184575 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -34,15 +34,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Events
/// -----------------------------------------------------------------------
- event SetParams(bool isToken0, uint16 multiplier, uint56 secs, uint56 ago, uint128 minPrice);
-
- /// -----------------------------------------------------------------------
- /// Constants
- /// -----------------------------------------------------------------------
-
- /// @notice The denominator for converting the multiplier into a decimal number.
- /// i.e. multiplier uses 4 decimals.
- uint256 internal constant MULTIPLIER_DENOM = 10000;
+ event SetParams(uint56 secs, uint56 ago, uint128 minPrice);
/// -----------------------------------------------------------------------
/// Immutable parameters
@@ -55,10 +47,6 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Storage variables
/// -----------------------------------------------------------------------
- /// @notice The multiplier applied to the TWAP value. Encodes the discount of
- /// the options token. Uses 4 decimals.
- uint16 public multiplier;
-
/// @notice The size of the window to take the TWAP value over in seconds.
uint32 public secs;
@@ -70,8 +58,8 @@ contract UniswapV3Oracle is IOracle, Owned {
/// price to mitigate potential attacks on the TWAP oracle.
uint128 public minPrice;
- /// @notice Whether the price should be returned in terms of token0.
- /// If false, the price is returned in terms of token1.
+ /// @notice Whether the price of token0 should be returned (in units of token1).
+ /// If false, the price is returned in units of token0.
bool public isToken0;
/// -----------------------------------------------------------------------
@@ -82,19 +70,17 @@ contract UniswapV3Oracle is IOracle, Owned {
IUniswapV3Pool uniswapPool_,
address token,
address owner_,
- uint16 multiplier_,
uint32 secs_,
uint32 ago_,
uint128 minPrice_
) Owned(owner_) {
uniswapPool = uniswapPool_;
isToken0 = token == uniswapPool_.token0();
- multiplier = multiplier_;
secs = secs_;
ago = ago_;
minPrice = minPrice_;
- emit SetParams(isToken0, multiplier_, secs_, ago_, minPrice_);
+ emit SetParams(secs_, ago_, minPrice_);
}
/// -----------------------------------------------------------------------
@@ -103,12 +89,6 @@ contract UniswapV3Oracle is IOracle, Owned {
/// @inheritdoc IOracle
function getPrice() external view override returns (uint256 price) {
- /// -----------------------------------------------------------------------
- /// Storage loads
- /// -----------------------------------------------------------------------
-
- uint256 minPrice_ = minPrice;
-
/// -----------------------------------------------------------------------
/// Validation
/// -----------------------------------------------------------------------
@@ -150,10 +130,7 @@ contract UniswapV3Oracle is IOracle, Owned {
}
// apply minimum price
- if (price < minPrice_) revert UniswapOracle__BelowMinPrice();
-
- // apply multiplier to price
- price = price.mulDivUp(multiplier, MULTIPLIER_DENOM);
+ if (price < minPrice) revert UniswapOracle__BelowMinPrice();
}
/// -----------------------------------------------------------------------
@@ -161,23 +138,18 @@ contract UniswapV3Oracle is IOracle, Owned {
/// -----------------------------------------------------------------------
/// @notice Updates the oracle parameters. Only callable by the owner.
- /// @param token Target token used for pricing.
- /// @param multiplier_ The multiplier applied to the TWAP value. Encodes the discount of
- /// the options token. Uses 4 decimals.
/// @param secs_ The size of the window to take the TWAP value over in seconds.
/// @param ago_ The number of seconds in the past to take the TWAP from. The window
/// would be (block.timestamp - secs - ago, block.timestamp - ago].
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
- function setParams(address token, uint16 multiplier_, uint32 secs_, uint32 ago_, uint128 minPrice_)
+ function setParams(uint32 secs_, uint32 ago_, uint128 minPrice_)
external
onlyOwner
{
- isToken0 = token == uniswapPool.token0();
- multiplier = multiplier_;
secs = secs_;
ago = ago_;
minPrice = minPrice_;
- emit SetParams(isToken0, multiplier_, secs_, ago_, minPrice_);
+ emit SetParams(secs_, ago_, minPrice_);
}
}
diff --git a/test/UniswapV3Oracle.t.sol b/test/UniswapV3Oracle.t.sol
index 9631845..c6f8b09 100644
--- a/test/UniswapV3Oracle.t.sol
+++ b/test/UniswapV3Oracle.t.sol
@@ -16,7 +16,6 @@ struct Params {
IUniswapV3Pool pool;
address token;
address owner;
- uint16 multiplier;
uint32 secs;
uint32 ago;
uint128 minPrice;
@@ -52,7 +51,7 @@ contract UniswapOracleTest is Test {
mockV3Pool.setCumulatives(sampleCumulatives);
mockV3Pool.setToken0(OP_ADDRESS);
- _default = Params(IUniswapV3Pool(WETH_OP_POOL_ADDRESS), OP_ADDRESS, address(this), 10000, 30 minutes, 0, 1000);
+ _default = Params(IUniswapV3Pool(WETH_OP_POOL_ADDRESS), OP_ADDRESS, address(this), 30 minutes, 0, 1000);
swapRouter = ISwapRouter(SWAP_ROUTER_ADDRESS);
}
@@ -65,7 +64,6 @@ contract UniswapOracleTest is Test {
mockV3Pool,
OP_ADDRESS,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -80,7 +78,6 @@ contract UniswapOracleTest is Test {
mockV3Pool,
address(0),
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -91,23 +88,6 @@ contract UniswapOracleTest is Test {
assertEq(price, expectedPriceToken1);
}
- function test_PriceToken0Multiplier() public {
- uint16 multiplier = 5000;
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- mockV3Pool,
- _default.token,
- _default.owner,
- multiplier,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
-
- uint256 price = oracle.getPrice();
- uint256 expectedPriceWithMultiplier = FixedPointMathLib.mulDivUp(expectedPriceToken0, multiplier, 10000);
- assertEq(price, expectedPriceWithMultiplier);
- }
-
/// ----------------------------------------------------------------------
/// Fork tests
/// ----------------------------------------------------------------------
@@ -119,7 +99,6 @@ contract UniswapOracleTest is Test {
_default.pool,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -139,7 +118,6 @@ contract UniswapOracleTest is Test {
_default.pool,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -170,7 +148,6 @@ contract UniswapOracleTest is Test {
_default.pool,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
uint128(price)
@@ -189,7 +166,6 @@ contract UniswapOracleTest is Test {
_default.pool,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
@@ -232,7 +208,6 @@ contract UniswapOracleTest is Test {
_default.pool,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.ago,
_default.minPrice
From 1c6368ba0c55bb2d43e4b51fd10094b7c98b167a Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 15:05:50 -0300
Subject: [PATCH 30/64] remove multiplier
---
src/oracles/ThenaOracle.sol | 35 ++++++---------------------------
test/ThenaOracle.t.sol | 39 +------------------------------------
2 files changed, 7 insertions(+), 67 deletions(-)
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
index 6ae50ae..2897b34 100644
--- a/src/oracles/ThenaOracle.sol
+++ b/src/oracles/ThenaOracle.sol
@@ -8,10 +8,10 @@ import {IOracle} from "../interfaces/IOracle.sol";
import {IThenaPair} from "../interfaces/IThenaPair.sol";
/// @title Oracle using Thena TWAP oracle as data source
-/// @author zefram.eth/lookee
+/// @author zefram.eth/lookee/Eidolon
/// @notice The oracle contract that provides the current price to purchase
/// the underlying token while exercising options. Uses Thena TWAP oracle
-/// as data source, and then applies a multiplier & lower bound.
+/// as data source, and then applies a lower bound.
/// Furthermore, the payment token and the underlying token must use 18 decimals.
/// This is because the Thena oracle returns the TWAP value in 18 decimals
/// and the OptionsToken contract also expects 18 decimals.
@@ -34,15 +34,7 @@ contract ThenaOracle is IOracle, Owned {
/// Events
/// -----------------------------------------------------------------------
- event SetParams(bool isToken0, uint16 multiplier, uint56 secs, uint128 minPrice);
-
- /// -----------------------------------------------------------------------
- /// Constants
- /// -----------------------------------------------------------------------
-
- /// @notice The denominator for converting the multiplier into a decimal number.
- /// i.e. multiplier uses 4 decimals.
- uint256 internal constant MULTIPLIER_DENOM = 10000;
+ event SetParams(uint56 secs, uint128 minPrice);
/// -----------------------------------------------------------------------
/// Immutable parameters
@@ -55,10 +47,6 @@ contract ThenaOracle is IOracle, Owned {
/// Storage variables
/// -----------------------------------------------------------------------
- /// @notice The multiplier applied to the TWAP value. Encodes the discount of
- /// the options token. Uses 4 decimals.
- uint16 public multiplier;
-
/// @notice The size of the window to take the TWAP value over in seconds.
uint56 public secs;
@@ -78,18 +66,16 @@ contract ThenaOracle is IOracle, Owned {
IThenaPair thenaPair_,
address token,
address owner_,
- uint16 multiplier_,
uint56 secs_,
uint128 minPrice_
) Owned(owner_) {
if (thenaPair_.stable()) revert ThenaOracle__StablePairsUnsupported();
thenaPair = thenaPair_;
isToken0 = thenaPair_.token0() == token;
- multiplier = multiplier_;
secs = secs_;
minPrice = minPrice_;
- emit SetParams(isToken0, multiplier_, secs_, minPrice_);
+ emit SetParams(secs_, minPrice_);
}
/// -----------------------------------------------------------------------
@@ -102,7 +88,6 @@ contract ThenaOracle is IOracle, Owned {
/// Storage loads
/// -----------------------------------------------------------------------
- uint256 multiplier_ = multiplier;
uint256 secs_ = secs;
/// -----------------------------------------------------------------------
@@ -142,9 +127,6 @@ contract ThenaOracle is IOracle, Owned {
}
if (price < minPrice) revert ThenaOracle__BelowMinPrice();
-
- // apply multiplier to price
- price = price.mulDivUp(multiplier_, MULTIPLIER_DENOM);
}
/// -----------------------------------------------------------------------
@@ -152,18 +134,13 @@ contract ThenaOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
/// @notice Updates the oracle parameters. Only callable by the owner.
- /// @param token Target token used for pricing.
- /// @param multiplier_ The multiplier applied to the TWAP value. Encodes the discount of
- /// the options token. Uses 4 decimals.
/// @param secs_ The size of the window to take the TWAP value over in seconds.
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
- function setParams(address token, uint16 multiplier_, uint56 secs_, uint128 minPrice_) external onlyOwner {
- isToken0 = thenaPair.token0() == token;
- multiplier = multiplier_;
+ function setParams(uint56 secs_, uint128 minPrice_) external onlyOwner {
secs = secs_;
minPrice = minPrice_;
- emit SetParams(isToken0, multiplier_, secs_, minPrice_);
+ emit SetParams(secs_, minPrice_);
}
/// -----------------------------------------------------------------------
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
index 320ffb1..d3ff20a 100644
--- a/test/ThenaOracle.t.sol
+++ b/test/ThenaOracle.t.sol
@@ -12,7 +12,6 @@ struct Params {
IThenaPair pair;
address token;
address owner;
- uint16 multiplier;
uint32 secs;
uint128 minPrice;
}
@@ -36,7 +35,7 @@ contract ThenaOracleTest is Test {
Params _default;
function setUp() public {
- _default = Params(IThenaPair(POOL_ADDRESS), TOKEN_ADDRESS, address(this), 10000, 30 minutes, 1000);
+ _default = Params(IThenaPair(POOL_ADDRESS), TOKEN_ADDRESS, address(this), 30 minutes, 1000);
bscFork = vm.createSelectFork(BSC_RPC_URL, FORK_BLOCK);
}
@@ -46,7 +45,6 @@ contract ThenaOracleTest is Test {
_default.pair,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.minPrice
);
@@ -63,7 +61,6 @@ contract ThenaOracleTest is Test {
_default.pair,
IThenaPair(_default.pair).token0(),
_default.owner,
- _default.multiplier,
_default.secs,
_default.minPrice
);
@@ -72,7 +69,6 @@ contract ThenaOracleTest is Test {
_default.pair,
IThenaPair(_default.pair).token1(),
_default.owner,
- _default.multiplier,
_default.secs,
_default.minPrice
);
@@ -83,41 +79,11 @@ contract ThenaOracleTest is Test {
assertApproxEqAbs(priceToken1, uint256(1e18).divWadDown(priceToken0), 1, "incorrect price"); // 1%
}
- function test_priceMultiplier(uint multiplier) public {
- multiplier = bound(multiplier, 0, 10000);
-
- ThenaOracle oracle0 = new ThenaOracle(
- _default.pair,
- _default.token,
- _default.owner,
- _default.multiplier,
- _default.secs,
- _default.minPrice
- );
-
- ThenaOracle oracle1 = new ThenaOracle(
- _default.pair,
- _default.token,
- _default.owner,
- uint16(multiplier),
- _default.secs,
- _default.minPrice
- );
-
- uint price0 = oracle0.getPrice();
- uint price1 = oracle1.getPrice();
-
- uint expectedPrice = price0.mulDivDown(multiplier, MULTIPLIER_DENOM);
-
- assertApproxEqAbs(price1, expectedPrice, 1, "incorrect price multiplier"); // 1%
- }
-
function test_revertMinPrice() public {
ThenaOracle oracle = new ThenaOracle(
_default.pair,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.minPrice
);
@@ -150,7 +116,6 @@ contract ThenaOracleTest is Test {
_default.pair,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
uint128(price)
);
@@ -166,7 +131,6 @@ contract ThenaOracleTest is Test {
_default.pair,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.minPrice
);
@@ -203,7 +167,6 @@ contract ThenaOracleTest is Test {
_default.pair,
_default.token,
_default.owner,
- _default.multiplier,
_default.secs,
_default.minPrice
);
From 68202502ccf46d924ba2397a901430e532b82e8a Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 15:24:56 -0300
Subject: [PATCH 31/64] add helper paymentAmount function
---
src/exercise/DiscountExercise.sol | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 44d568b..1139ed6 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -145,4 +145,14 @@ contract DiscountExercise is BaseExercise {
emit Exercised(from, recipient, amount, paymentAmount);
}
+
+ /// View functions
+
+ /// @notice Returns the amount of payment tokens required to exercise the given amount of options tokens.
+ /// @param amount The amount of options tokens to exercise
+ function getPaymentAmount(
+ uint256 amount
+ ) external view returns (uint256 paymentAmount) {
+ paymentAmount = amount.mulWadUp(oracle.getPrice());
+ }
}
From 62a036d8eb31a12391fe05e29ffd662bcf0ce839 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 15:30:44 -0300
Subject: [PATCH 32/64] remove unused parameter
---
src/exercise/BaseExercise.sol | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index aa18d74..1673b58 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -62,7 +62,7 @@ abstract contract BaseExercise is IExercise, Owned {
}
/// @notice Distributes fees to the fee recipients from a token holder who has approved
- function distributeFeesFrom(uint256 totalAmount, ERC20 token, address from) internal virtual{
+ function distributeFeesFrom(uint256 totalAmount, ERC20 token, address from) internal virtual {
for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransferFrom(from, feeRecipients[i], feeAmount);
@@ -73,7 +73,7 @@ abstract contract BaseExercise is IExercise, Owned {
}
/// @notice Distributes fees to the fee recipients from token balance of exercise contract
- function distributeFees(uint256 totalAmount, ERC20 token, address from) internal virtual{
+ function distributeFees(uint256 totalAmount, ERC20 token) internal virtual {
for (uint256 i = 0; i < feeRecipients.length; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransfer(feeRecipients[i], feeAmount);
From b5c11d01221fd47a3b73abb50af3bdcc5c65dabc Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 15:47:25 -0300
Subject: [PATCH 33/64] forge install: openzeppelin-contracts
v4.8.3
---
lib/openzeppelin-contracts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts
index 932fddf..0a25c19 160000
--- a/lib/openzeppelin-contracts
+++ b/lib/openzeppelin-contracts
@@ -1 +1 @@
-Subproject commit 932fddf69a699a9a80fd2396fd1a2ab91cdda123
+Subproject commit 0a25c1940ca220686588c4af3ec526f725fe2582
From 990e2ed6dcc28426b1c13d6b9d8a93801a61e24e Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 15:47:43 -0300
Subject: [PATCH 34/64] forge install: openzeppelin-contracts-upgradeable
v4.8.3
---
lib/openzeppelin-contracts-upgradeable | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/openzeppelin-contracts-upgradeable b/lib/openzeppelin-contracts-upgradeable
index 625fb3c..58fa0f8 160000
--- a/lib/openzeppelin-contracts-upgradeable
+++ b/lib/openzeppelin-contracts-upgradeable
@@ -1 +1 @@
-Subproject commit 625fb3c2b2696f1747ba2e72d1e1113066e6c177
+Subproject commit 58fa0f81c4036f1a3b616fdffad2fd27e5d5ce21
From 92948fafbd7655cea128eda3cd016fb77f7c2c1f Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 15:53:20 -0300
Subject: [PATCH 35/64] downgrade to oz-v4
---
src/OptionsToken.sol | 3 +--
test/OptionsToken.t.sol | 3 ++-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 369ed38..cea5730 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -64,12 +64,11 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
function initialize(
string memory name_,
string memory symbol_,
- address owner_,
address tokenAdmin_
) external initializer {
__UUPSUpgradeable_init();
__ERC20_init(name_, symbol_);
- __Ownable_init(owner_);
+ __Ownable_init();
tokenAdmin = tokenAdmin_;
_clearUpgradeCooldown();
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index c87e718..f54a0ce 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -60,7 +60,8 @@ contract OptionsTokenTest is Test {
address implementation = address(new OptionsToken());
ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), "");
optionsToken = OptionsToken(address(proxy));
- optionsToken.initialize("TIT Call Option Token", "oTIT", owner, tokenAdmin);
+ optionsToken.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
+ optionsToken.transferOwnership(owner);
address[] memory tokens = new address[](2);
tokens[0] = underlyingToken;
From 4753ad11bb567a8ca7a316536e94c321071424b9 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 2 Jan 2024 16:05:02 -0300
Subject: [PATCH 36/64] use oz IERC20 for compatibility
---
src/exercise/BaseExercise.sol | 10 +++++-----
src/exercise/DiscountExercise.sol | 14 +++++++-------
test/OptionsToken.t.sol | 4 ++--
3 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index 1673b58..33b0af9 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -3,13 +3,13 @@ pragma solidity ^0.8.13;
import {IExercise} from "../interfaces/IExercise.sol";
import {IOptionsToken} from "../OptionsToken.sol";
-import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";
+import {SafeERC20} from "oz/token/ERC20/utils/SafeERC20.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {Owned} from "solmate/auth/Owned.sol";
-import {ERC20} from "solmate/tokens/ERC20.sol";
abstract contract BaseExercise is IExercise, Owned {
- using SafeTransferLib for ERC20;
+ using SafeERC20 for IERC20;
using FixedPointMathLib for uint256;
error Exercise__NotOToken();
@@ -62,7 +62,7 @@ abstract contract BaseExercise is IExercise, Owned {
}
/// @notice Distributes fees to the fee recipients from a token holder who has approved
- function distributeFeesFrom(uint256 totalAmount, ERC20 token, address from) internal virtual {
+ function distributeFeesFrom(uint256 totalAmount, IERC20 token, address from) internal virtual {
for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransferFrom(from, feeRecipients[i], feeAmount);
@@ -73,7 +73,7 @@ abstract contract BaseExercise is IExercise, Owned {
}
/// @notice Distributes fees to the fee recipients from token balance of exercise contract
- function distributeFees(uint256 totalAmount, ERC20 token) internal virtual {
+ function distributeFees(uint256 totalAmount, IERC20 token) internal virtual {
for (uint256 i = 0; i < feeRecipients.length; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransfer(feeRecipients[i], feeAmount);
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 1139ed6..f1d4921 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -2,8 +2,8 @@
pragma solidity ^0.8.13;
import {Owned} from "solmate/auth/Owned.sol";
-import {ERC20} from "solmate/tokens/ERC20.sol";
-import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {SafeERC20} from "oz/token/ERC20/utils/SafeERC20.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {BaseExercise} from "../exercise/BaseExercise.sol";
@@ -22,7 +22,7 @@ struct DiscountExerciseParams {
/// @dev Assumes the underlying token and the payment token both use 18 decimals.
contract DiscountExercise is BaseExercise {
/// Library usage
- using SafeTransferLib for ERC20;
+ using SafeERC20 for IERC20;
using FixedPointMathLib for uint256;
/// Errors
@@ -45,10 +45,10 @@ contract DiscountExercise is BaseExercise {
/// Immutable parameters
/// @notice The token paid by the options token holder during redemption
- ERC20 public immutable paymentToken;
+ IERC20 public immutable paymentToken;
/// @notice The underlying token purchased during redemption
- ERC20 public immutable underlyingToken;
+ IERC20 public immutable underlyingToken;
/// Storage variables
@@ -66,8 +66,8 @@ contract DiscountExercise is BaseExercise {
constructor(
OptionsToken oToken_,
address owner_,
- ERC20 paymentToken_,
- ERC20 underlyingToken_,
+ IERC20 paymentToken_,
+ IERC20 underlyingToken_,
IOracle oracle_,
uint256 multiplier_,
address[] memory feeRecipients_,
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index f54a0ce..f014755 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -4,7 +4,7 @@ pragma solidity ^0.8.13;
import "forge-std/Test.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
-import {ERC20} from "solmate/tokens/ERC20.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
import {OptionsToken} from "../src/OptionsToken.sol";
@@ -71,7 +71,7 @@ contract OptionsTokenTest is Test {
oracle =
new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
- exerciser = new DiscountExercise(optionsToken, owner, paymentToken, ERC20(underlyingToken), oracle, PRICE_MULTIPLIER, feeRecipients_, feeBPS_);
+ exerciser = new DiscountExercise(optionsToken, owner, IERC20(address(paymentToken)), IERC20(underlyingToken), oracle, PRICE_MULTIPLIER, feeRecipients_, feeBPS_);
TestERC20(underlyingToken).mint(address(exerciser), 1e20 ether);
From f17c0e92811b02358006a932a3f1af595bdf99d5 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 9 Jan 2024 15:28:10 -0300
Subject: [PATCH 37/64] add hardhat deployment scripts
---
.env.example | 13 +-
.gitignore | 6 +
hardhat.config.ts | 40 +
package-lock.json | 8709 +++++++++++++++++++++++++++++++++
package.json | 24 +
script/Deploy.s.sol | 60 -
script/base/CREATE3Script.sol | 27 -
scripts/deploy.ts | 66 +
src/OptionsToken.sol | 5 +-
tsconfig.json | 11 +
10 files changed, 8868 insertions(+), 93 deletions(-)
create mode 100644 hardhat.config.ts
create mode 100644 package-lock.json
create mode 100644 package.json
delete mode 100644 script/Deploy.s.sol
delete mode 100644 script/base/CREATE3Script.sol
create mode 100644 scripts/deploy.ts
create mode 100644 tsconfig.json
diff --git a/.env.example b/.env.example
index 1f37992..93fc12e 100644
--- a/.env.example
+++ b/.env.example
@@ -1,6 +1,8 @@
# Network and account info
RPC_URL_MAINNET=XXX
RPC_URL_GOERLI=XXX
+BSC_RPC_URL=XXX
+OPTIMISM_RPC_URL=XXX
PRIVATE_KEY=XXX
@@ -9,10 +11,8 @@ ETHERSCAN_KEY=XXX
# Deploy configs
VERSION="1.0.0"
OWNER=XXX
-TREASURY=XXX
-BALANCER_POOL=XXX # 20-80 WETH-LIT pool
-ORACLE_MULTIPLIER=XXX # 4 decimals
+ORACLE_SOURCE=XXX # 20-80 WETH-LIT pool
ORACLE_SECS=XXX
ORACLE_AGO=XXX
ORACLE_MIN_PRICE=XXX # 18 decimals
@@ -20,6 +20,9 @@ ORACLE_MIN_PRICE=XXX # 18 decimals
OT_NAME="LIT Call Option Token"
OT_SYMBOL="oLIT"
OT_PAYMENT_TOKEN=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 # WETH
+OT_UNDERLYING_TOKEN=0x4d2d32d8652058Bf98c772953E1Df5c5c85D9F45 # OATH
+OT_TOKEN_ADMIN=XXX
-BSC_RPC_URL="https://binance.llamarpc.com"
-OPTIMISM_RPC_URL="https://mainnet.optimism.io"
+MULTIPLIER=5000 # 4 decimals
+FEE_RECIPIENTS=0xXXX,0xXXX
+FEE_BPS=5000,5000
diff --git a/.gitignore b/.gitignore
index 3269660..9c3c7dc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,9 @@ out/
# Dotenv file
.env
+
+# Hardhat
+node_modules/
+artifacts/
+cache_hardhat/
+typechain-types/
diff --git a/hardhat.config.ts b/hardhat.config.ts
new file mode 100644
index 0000000..860e869
--- /dev/null
+++ b/hardhat.config.ts
@@ -0,0 +1,40 @@
+import { HardhatUserConfig } from "hardhat/config";
+import "@nomicfoundation/hardhat-toolbox";
+import '@openzeppelin/hardhat-upgrades';
+import "@nomicfoundation/hardhat-foundry";
+import { config as dotenvConfig } from "dotenv";
+
+dotenvConfig();
+
+const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
+
+const config: HardhatUserConfig = {
+ solidity: {
+ version: "0.8.19",
+ settings: {
+ optimizer: { enabled: true, runs: 9999 }
+ }
+ },
+ paths: {
+ sources: "./src"
+ },
+ networks: {
+ op: {
+ url: "https://mainnet.optimism.io",
+ chainId: 10,
+ accounts: [`0x${PRIVATE_KEY}`],
+ },
+ bsc: {
+ url: "https://bsc-dataseed.binance.org/",
+ chainId: 56,
+ accounts: [`0x${PRIVATE_KEY}`],
+ },
+ },
+ etherscan: {
+ apiKey: {
+ bsc: process.env.ETHERSCAN_KEY || "",
+ }
+ },
+};
+
+export default config;
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..21f914d
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,8709 @@
+{
+ "name": "options-token",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "options-token",
+ "version": "1.0.0",
+ "license": "AGPL-3.0",
+ "devDependencies": {
+ "@nomicfoundation/hardhat-ethers": "^3.0.5",
+ "@nomicfoundation/hardhat-foundry": "^1.1.1",
+ "@nomicfoundation/hardhat-toolbox": "^4.0.0",
+ "@openzeppelin/hardhat-upgrades": "^3.0.1",
+ "dotenv": "^16.3.1",
+ "ethers": "^6.9.2",
+ "hardhat": "^2.19.4"
+ }
+ },
+ "node_modules/@adraffy/ens-normalize": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz",
+ "integrity": "sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==",
+ "dev": true
+ },
+ "node_modules/@aws-crypto/sha256-js": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz",
+ "integrity": "sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g==",
+ "dev": true,
+ "dependencies": {
+ "@aws-crypto/util": "^1.2.2",
+ "@aws-sdk/types": "^3.1.0",
+ "tslib": "^1.11.1"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-js/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/@aws-crypto/util": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-1.2.2.tgz",
+ "integrity": "sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==",
+ "dev": true,
+ "dependencies": {
+ "@aws-sdk/types": "^3.1.0",
+ "@aws-sdk/util-utf8-browser": "^3.0.0",
+ "tslib": "^1.11.1"
+ }
+ },
+ "node_modules/@aws-crypto/util/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/@aws-sdk/types": {
+ "version": "3.485.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.485.0.tgz",
+ "integrity": "sha512-+QW32YQdvZRDOwrAQPo/qCyXoSjgXB6RwJwCwkd8ebJXRXw6tmGKIHaZqYHt/LtBymvnaBgBBADNa4+qFvlOFw==",
+ "dev": true,
+ "dependencies": {
+ "@smithy/types": "^2.8.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/types/node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
+ },
+ "node_modules/@aws-sdk/util-utf8-browser": {
+ "version": "3.259.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz",
+ "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@chainsafe/as-sha256": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz",
+ "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==",
+ "dev": true
+ },
+ "node_modules/@chainsafe/persistent-merkle-tree": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz",
+ "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==",
+ "dev": true,
+ "dependencies": {
+ "@chainsafe/as-sha256": "^0.3.1"
+ }
+ },
+ "node_modules/@chainsafe/ssz": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz",
+ "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==",
+ "dev": true,
+ "dependencies": {
+ "@chainsafe/as-sha256": "^0.3.1",
+ "@chainsafe/persistent-merkle-tree": "^0.4.2",
+ "case": "^1.6.3"
+ }
+ },
+ "node_modules/@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "0.3.9"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@ethereumjs/rlp": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz",
+ "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "rlp": "bin/rlp"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@ethereumjs/util": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz",
+ "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@ethereumjs/rlp": "^4.0.1",
+ "ethereum-cryptography": "^2.0.0",
+ "micro-ftch": "^0.3.1"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@ethereumjs/util/node_modules/@noble/curves": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz",
+ "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@noble/hashes": "1.3.1"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@ethereumjs/util/node_modules/@noble/hashes": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz",
+ "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz",
+ "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@noble/curves": "1.1.0",
+ "@noble/hashes": "1.3.1",
+ "@scure/bip32": "1.3.1",
+ "@scure/bip39": "1.2.1"
+ }
+ },
+ "node_modules/@ethersproject/abi": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
+ "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/hash": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/abstract-provider": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
+ "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/networks": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0",
+ "@ethersproject/web": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/abstract-signer": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
+ "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abstract-provider": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/address": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
+ "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/rlp": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/base64": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
+ "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/basex": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz",
+ "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/bignumber": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
+ "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "bn.js": "^5.2.1"
+ }
+ },
+ "node_modules/@ethersproject/bytes": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
+ "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/constants": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
+ "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/contracts": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz",
+ "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abi": "^5.7.0",
+ "@ethersproject/abstract-provider": "^5.7.0",
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/hash": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
+ "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/base64": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/hdnode": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz",
+ "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/basex": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/pbkdf2": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/sha2": "^5.7.0",
+ "@ethersproject/signing-key": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0",
+ "@ethersproject/wordlists": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/json-wallets": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz",
+ "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/hdnode": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/pbkdf2": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/random": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0",
+ "aes-js": "3.0.0",
+ "scrypt-js": "3.0.1"
+ }
+ },
+ "node_modules/@ethersproject/json-wallets/node_modules/aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==",
+ "dev": true
+ },
+ "node_modules/@ethersproject/keccak256": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
+ "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "js-sha3": "0.8.0"
+ }
+ },
+ "node_modules/@ethersproject/logger": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
+ "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ]
+ },
+ "node_modules/@ethersproject/networks": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
+ "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/pbkdf2": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz",
+ "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/sha2": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/properties": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
+ "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/providers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz",
+ "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abstract-provider": "^5.7.0",
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/base64": "^5.7.0",
+ "@ethersproject/basex": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/hash": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/networks": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/random": "^5.7.0",
+ "@ethersproject/rlp": "^5.7.0",
+ "@ethersproject/sha2": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0",
+ "@ethersproject/web": "^5.7.0",
+ "bech32": "1.1.4",
+ "ws": "7.4.6"
+ }
+ },
+ "node_modules/@ethersproject/providers/node_modules/ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@ethersproject/random": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
+ "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/rlp": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
+ "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/sha2": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz",
+ "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "hash.js": "1.1.7"
+ }
+ },
+ "node_modules/@ethersproject/signing-key": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
+ "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "bn.js": "^5.2.1",
+ "elliptic": "6.5.4",
+ "hash.js": "1.1.7"
+ }
+ },
+ "node_modules/@ethersproject/solidity": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz",
+ "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/sha2": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/strings": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
+ "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/transactions": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
+ "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/rlp": "^5.7.0",
+ "@ethersproject/signing-key": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/units": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz",
+ "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/wallet": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz",
+ "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abstract-provider": "^5.7.0",
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/hash": "^5.7.0",
+ "@ethersproject/hdnode": "^5.7.0",
+ "@ethersproject/json-wallets": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/random": "^5.7.0",
+ "@ethersproject/signing-key": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0",
+ "@ethersproject/wordlists": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/web": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
+ "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/base64": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/wordlists": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz",
+ "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/hash": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0"
+ }
+ },
+ "node_modules/@fastify/busboy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz",
+ "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "node_modules/@metamask/eth-sig-util": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz",
+ "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==",
+ "dev": true,
+ "dependencies": {
+ "ethereumjs-abi": "^0.6.8",
+ "ethereumjs-util": "^6.2.1",
+ "ethjs-util": "^0.1.6",
+ "tweetnacl": "^1.0.3",
+ "tweetnacl-util": "^0.15.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@metamask/eth-sig-util/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dev": true,
+ "dependencies": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ },
+ "node_modules/@noble/curves": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz",
+ "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==",
+ "dev": true,
+ "dependencies": {
+ "@noble/hashes": "1.3.2"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/hashes": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz",
+ "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/secp256k1": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
+ "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-block": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz",
+ "integrity": "sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-common": "4.0.2",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "@nomicfoundation/ethereumjs-trie": "6.0.2",
+ "@nomicfoundation/ethereumjs-tx": "5.0.2",
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "ethereum-cryptography": "0.1.3",
+ "ethers": "^5.7.1"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-block/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-blockchain": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz",
+ "integrity": "sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-block": "5.0.2",
+ "@nomicfoundation/ethereumjs-common": "4.0.2",
+ "@nomicfoundation/ethereumjs-ethash": "3.0.2",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "@nomicfoundation/ethereumjs-trie": "6.0.2",
+ "@nomicfoundation/ethereumjs-tx": "5.0.2",
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "abstract-level": "^1.0.3",
+ "debug": "^4.3.3",
+ "ethereum-cryptography": "0.1.3",
+ "level": "^8.0.0",
+ "lru-cache": "^5.1.1",
+ "memory-level": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-common": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz",
+ "integrity": "sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "crc-32": "^1.2.0"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-ethash": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz",
+ "integrity": "sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-block": "5.0.2",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "abstract-level": "^1.0.3",
+ "bigint-crypto-utils": "^3.0.23",
+ "ethereum-cryptography": "0.1.3"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-evm": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz",
+ "integrity": "sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==",
+ "dev": true,
+ "dependencies": {
+ "@ethersproject/providers": "^5.7.1",
+ "@nomicfoundation/ethereumjs-common": "4.0.2",
+ "@nomicfoundation/ethereumjs-tx": "5.0.2",
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "debug": "^4.3.3",
+ "ethereum-cryptography": "0.1.3",
+ "mcl-wasm": "^0.7.1",
+ "rustbn.js": "~0.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-rlp": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz",
+ "integrity": "sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==",
+ "dev": true,
+ "bin": {
+ "rlp": "bin/rlp"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-statemanager": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz",
+ "integrity": "sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-common": "4.0.2",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "debug": "^4.3.3",
+ "ethereum-cryptography": "0.1.3",
+ "ethers": "^5.7.1",
+ "js-sdsl": "^4.1.4"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-statemanager/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-trie": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz",
+ "integrity": "sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "@types/readable-stream": "^2.3.13",
+ "ethereum-cryptography": "0.1.3",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-tx": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz",
+ "integrity": "sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==",
+ "dev": true,
+ "dependencies": {
+ "@chainsafe/ssz": "^0.9.2",
+ "@ethersproject/providers": "^5.7.2",
+ "@nomicfoundation/ethereumjs-common": "4.0.2",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "ethereum-cryptography": "0.1.3"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-util": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz",
+ "integrity": "sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==",
+ "dev": true,
+ "dependencies": {
+ "@chainsafe/ssz": "^0.10.0",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "ethereum-cryptography": "0.1.3"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/persistent-merkle-tree": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz",
+ "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==",
+ "dev": true,
+ "dependencies": {
+ "@chainsafe/as-sha256": "^0.3.1"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/ssz": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz",
+ "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==",
+ "dev": true,
+ "dependencies": {
+ "@chainsafe/as-sha256": "^0.3.1",
+ "@chainsafe/persistent-merkle-tree": "^0.5.0"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-vm": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz",
+ "integrity": "sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-block": "5.0.2",
+ "@nomicfoundation/ethereumjs-blockchain": "7.0.2",
+ "@nomicfoundation/ethereumjs-common": "4.0.2",
+ "@nomicfoundation/ethereumjs-evm": "2.0.2",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "@nomicfoundation/ethereumjs-statemanager": "2.0.2",
+ "@nomicfoundation/ethereumjs-trie": "6.0.2",
+ "@nomicfoundation/ethereumjs-tx": "5.0.2",
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "debug": "^4.3.3",
+ "ethereum-cryptography": "0.1.3",
+ "mcl-wasm": "^0.7.1",
+ "rustbn.js": "~0.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-chai-matchers": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.3.tgz",
+ "integrity": "sha512-A40s7EAK4Acr8UP1Yudgi9GGD9Cca/K3LHt3DzmRIje14lBfHtg9atGQ7qK56vdPcTwKmeaGn30FzxMUfPGEMw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/chai-as-promised": "^7.1.3",
+ "chai-as-promised": "^7.1.1",
+ "deep-eql": "^4.0.1",
+ "ordinal": "^1.0.3"
+ },
+ "peerDependencies": {
+ "@nomicfoundation/hardhat-ethers": "^3.0.0",
+ "chai": "^4.2.0",
+ "ethers": "^6.1.0",
+ "hardhat": "^2.9.4"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-ethers": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz",
+ "integrity": "sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "lodash.isequal": "^4.5.0"
+ },
+ "peerDependencies": {
+ "ethers": "^6.1.0",
+ "hardhat": "^2.0.0"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-foundry": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-foundry/-/hardhat-foundry-1.1.1.tgz",
+ "integrity": "sha512-cXGCBHAiXas9Pg9MhMOpBVQCkWRYoRFG7GJJAph+sdQsfd22iRs5U5Vs9XmpGEQd1yEvYISQZMeE68Nxj65iUQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.2"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.17.2"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-network-helpers": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz",
+ "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ethereumjs-util": "^7.1.4"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.9.5"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-toolbox": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-4.0.0.tgz",
+ "integrity": "sha512-jhcWHp0aHaL0aDYj8IJl80v4SZXWMS1A2XxXa1CA6pBiFfJKuZinCkO6wb+POAt0LIfXB3gA3AgdcOccrcwBwA==",
+ "dev": true,
+ "peerDependencies": {
+ "@nomicfoundation/hardhat-chai-matchers": "^2.0.0",
+ "@nomicfoundation/hardhat-ethers": "^3.0.0",
+ "@nomicfoundation/hardhat-network-helpers": "^1.0.0",
+ "@nomicfoundation/hardhat-verify": "^2.0.0",
+ "@typechain/ethers-v6": "^0.5.0",
+ "@typechain/hardhat": "^9.0.0",
+ "@types/chai": "^4.2.0",
+ "@types/mocha": ">=9.1.0",
+ "@types/node": ">=16.0.0",
+ "chai": "^4.2.0",
+ "ethers": "^6.4.0",
+ "hardhat": "^2.11.0",
+ "hardhat-gas-reporter": "^1.0.8",
+ "solidity-coverage": "^0.8.1",
+ "ts-node": ">=8.0.0",
+ "typechain": "^8.3.0",
+ "typescript": ">=4.5.0"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-verify": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.3.tgz",
+ "integrity": "sha512-ESbRu9by53wu6VvgwtMtm108RSmuNsVqXtzg061D+/4R7jaWh/Wl/8ve+p6SdDX7vA1Z3L02hDO1Q3BY4luLXQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@ethersproject/abi": "^5.1.2",
+ "@ethersproject/address": "^5.0.2",
+ "cbor": "^8.1.0",
+ "chalk": "^2.4.2",
+ "debug": "^4.1.1",
+ "lodash.clonedeep": "^4.5.0",
+ "semver": "^6.3.0",
+ "table": "^6.8.0",
+ "undici": "^5.14.0"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.0.4"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz",
+ "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 12"
+ },
+ "optionalDependencies": {
+ "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1",
+ "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz",
+ "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz",
+ "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz",
+ "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz",
+ "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz",
+ "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz",
+ "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz",
+ "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz",
+ "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz",
+ "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz",
+ "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@openzeppelin/defender-admin-client": {
+ "version": "1.54.1",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/defender-admin-client/-/defender-admin-client-1.54.1.tgz",
+ "integrity": "sha512-kRpSUdTsnSqntp4FOXIm95t+6VKHc8CUY2Si71VDuxs0q7HSPZkdpRPSntcolwEzWy9L4a8NS/QMwDF5NJ4X1g==",
+ "dev": true,
+ "dependencies": {
+ "@openzeppelin/defender-base-client": "1.54.1",
+ "axios": "^1.4.0",
+ "ethers": "^5.7.2",
+ "lodash": "^4.17.19",
+ "node-fetch": "^2.6.0"
+ }
+ },
+ "node_modules/@openzeppelin/defender-admin-client/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ },
+ "node_modules/@openzeppelin/defender-base-client": {
+ "version": "1.54.1",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/defender-base-client/-/defender-base-client-1.54.1.tgz",
+ "integrity": "sha512-DRGz/7KN3ZQwu28YWMOaojrC7jjPkz/uCwkC8/C8B11qwZhA5qIVvyhYHhhFOCl0J84+E3TNdvkPD2q3p2WaJw==",
+ "dev": true,
+ "dependencies": {
+ "amazon-cognito-identity-js": "^6.0.1",
+ "async-retry": "^1.3.3",
+ "axios": "^1.4.0",
+ "lodash": "^4.17.19",
+ "node-fetch": "^2.6.0"
+ }
+ },
+ "node_modules/@openzeppelin/defender-sdk-base-client": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.8.0.tgz",
+ "integrity": "sha512-XIJat6BW2CTM74AwG5IL0Q/aE6RXj8x7smnVKmBql4wMvmirVW+njfwzZCLhUTiBXg9AlHxIInEF14SabfIisg==",
+ "dev": true,
+ "dependencies": {
+ "amazon-cognito-identity-js": "^6.3.6",
+ "async-retry": "^1.3.3"
+ }
+ },
+ "node_modules/@openzeppelin/defender-sdk-deploy-client": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.8.0.tgz",
+ "integrity": "sha512-/tNS2EnHuA5l095wzMbIkGMDNHZLcZQ2eLUP8z+AeKaAUeR2z4qzZ1ul21kR3EJURAyoy8aULFZanLggoBWHrA==",
+ "dev": true,
+ "dependencies": {
+ "@ethersproject/abi": "^5.7.0",
+ "@openzeppelin/defender-sdk-base-client": "^1.8.0",
+ "axios": "^1.4.0",
+ "lodash": "^4.17.21"
+ }
+ },
+ "node_modules/@openzeppelin/hardhat-upgrades": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.0.1.tgz",
+ "integrity": "sha512-NtD2/n2PKNqHBafQy3AM6KCvsDZD0w97po7fFa4wctl0fg/8QwGAg3fB8InkBFEhGn17+IgshRI8G94hUrFPcQ==",
+ "dev": true,
+ "dependencies": {
+ "@openzeppelin/defender-admin-client": "^1.52.0",
+ "@openzeppelin/defender-base-client": "^1.52.0",
+ "@openzeppelin/defender-sdk-base-client": "^1.8.0",
+ "@openzeppelin/defender-sdk-deploy-client": "^1.8.0",
+ "@openzeppelin/upgrades-core": "^1.32.0",
+ "chalk": "^4.1.0",
+ "debug": "^4.1.1",
+ "ethereumjs-util": "^7.1.5",
+ "proper-lockfile": "^4.1.1",
+ "undici": "^5.28.2"
+ },
+ "bin": {
+ "migrate-oz-cli-project": "dist/scripts/migrate-oz-cli-project.js"
+ },
+ "peerDependencies": {
+ "@nomicfoundation/hardhat-ethers": "^3.0.0",
+ "@nomicfoundation/hardhat-verify": "^2.0.0",
+ "ethers": "^6.6.0",
+ "hardhat": "^2.0.2"
+ },
+ "peerDependenciesMeta": {
+ "@nomicfoundation/hardhat-verify": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@openzeppelin/hardhat-upgrades/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@openzeppelin/hardhat-upgrades/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@openzeppelin/hardhat-upgrades/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/@openzeppelin/hardhat-upgrades/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/@openzeppelin/hardhat-upgrades/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@openzeppelin/hardhat-upgrades/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@openzeppelin/upgrades-core": {
+ "version": "1.32.2",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.32.2.tgz",
+ "integrity": "sha512-EkXriOHZfn6u00Tbq0zUuhHDeTQB9WyAZKZo3UeYdqULb7E3vqxZgxgXmWJwEzAb6E77DvprzQ4gwCAjMV/S4Q==",
+ "dev": true,
+ "dependencies": {
+ "cbor": "^9.0.0",
+ "chalk": "^4.1.0",
+ "compare-versions": "^6.0.0",
+ "debug": "^4.1.1",
+ "ethereumjs-util": "^7.0.3",
+ "minimist": "^1.2.7",
+ "proper-lockfile": "^4.1.1",
+ "solidity-ast": "^0.4.51"
+ },
+ "bin": {
+ "openzeppelin-upgrades-core": "dist/cli/cli.js"
+ }
+ },
+ "node_modules/@openzeppelin/upgrades-core/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@openzeppelin/upgrades-core/node_modules/cbor": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.1.tgz",
+ "integrity": "sha512-/TQOWyamDxvVIv+DY9cOLNuABkoyz8K/F3QE56539pGVYohx0+MEA1f4lChFTX79dBTBS7R1PF6ovH7G+VtBfQ==",
+ "dev": true,
+ "dependencies": {
+ "nofilter": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@openzeppelin/upgrades-core/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@openzeppelin/upgrades-core/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/@openzeppelin/upgrades-core/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/@openzeppelin/upgrades-core/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@openzeppelin/upgrades-core/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@scure/base": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz",
+ "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip32": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz",
+ "integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@noble/curves": "~1.1.0",
+ "@noble/hashes": "~1.3.1",
+ "@scure/base": "~1.1.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip32/node_modules/@noble/curves": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz",
+ "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@noble/hashes": "1.3.1"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip32/node_modules/@noble/hashes": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz",
+ "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip39": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz",
+ "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@noble/hashes": "~1.3.0",
+ "@scure/base": "~1.1.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@sentry/core": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
+ "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==",
+ "dev": true,
+ "dependencies": {
+ "@sentry/hub": "5.30.0",
+ "@sentry/minimal": "5.30.0",
+ "@sentry/types": "5.30.0",
+ "@sentry/utils": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/core/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/@sentry/hub": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz",
+ "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==",
+ "dev": true,
+ "dependencies": {
+ "@sentry/types": "5.30.0",
+ "@sentry/utils": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/hub/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/@sentry/minimal": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz",
+ "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==",
+ "dev": true,
+ "dependencies": {
+ "@sentry/hub": "5.30.0",
+ "@sentry/types": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/minimal/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/@sentry/node": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz",
+ "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==",
+ "dev": true,
+ "dependencies": {
+ "@sentry/core": "5.30.0",
+ "@sentry/hub": "5.30.0",
+ "@sentry/tracing": "5.30.0",
+ "@sentry/types": "5.30.0",
+ "@sentry/utils": "5.30.0",
+ "cookie": "^0.4.1",
+ "https-proxy-agent": "^5.0.0",
+ "lru_map": "^0.3.3",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/node/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/@sentry/tracing": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz",
+ "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==",
+ "dev": true,
+ "dependencies": {
+ "@sentry/hub": "5.30.0",
+ "@sentry/minimal": "5.30.0",
+ "@sentry/types": "5.30.0",
+ "@sentry/utils": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/tracing/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/@sentry/types": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz",
+ "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz",
+ "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==",
+ "dev": true,
+ "dependencies": {
+ "@sentry/types": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/utils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/@smithy/types": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.8.0.tgz",
+ "integrity": "sha512-h9sz24cFgt/W1Re22OlhQKmUZkNh244ApgRsUDYinqF8R+QgcsBIX344u2j61TPshsTz3CvL6HYU1DnQdsSrHA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/types/node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
+ },
+ "node_modules/@solidity-parser/parser": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz",
+ "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "antlr4ts": "^0.5.0-alpha.4"
+ }
+ },
+ "node_modules/@tsconfig/node10": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@tsconfig/node16": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@typechain/ethers-v6": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz",
+ "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "lodash": "^4.17.15",
+ "ts-essentials": "^7.0.1"
+ },
+ "peerDependencies": {
+ "ethers": "6.x",
+ "typechain": "^8.3.2",
+ "typescript": ">=4.7.0"
+ }
+ },
+ "node_modules/@typechain/hardhat": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz",
+ "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "fs-extra": "^9.1.0"
+ },
+ "peerDependencies": {
+ "@typechain/ethers-v6": "^0.5.1",
+ "ethers": "^6.1.0",
+ "hardhat": "^2.9.9",
+ "typechain": "^8.3.2"
+ }
+ },
+ "node_modules/@types/bn.js": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz",
+ "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/chai": {
+ "version": "4.3.11",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz",
+ "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@types/chai-as-promised": {
+ "version": "7.1.8",
+ "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz",
+ "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/chai": "*"
+ }
+ },
+ "node_modules/@types/concat-stream": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz",
+ "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/form-data": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
+ "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==",
+ "dev": true
+ },
+ "node_modules/@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@types/mocha": {
+ "version": "10.0.6",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz",
+ "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@types/node": {
+ "version": "20.10.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz",
+ "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/prettier": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
+ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.11",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
+ "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@types/readable-stream": {
+ "version": "2.3.15",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz",
+ "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/@types/readable-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "node_modules/@types/secp256k1": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
+ "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/abbrev": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
+ "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/abstract-level": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz",
+ "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==",
+ "dev": true,
+ "dependencies": {
+ "buffer": "^6.0.3",
+ "catering": "^2.1.0",
+ "is-buffer": "^2.0.5",
+ "level-supports": "^4.0.0",
+ "level-transcoder": "^1.0.1",
+ "module-error": "^1.0.1",
+ "queue-microtask": "^1.2.3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.1",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz",
+ "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/address": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
+ "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/adm-zip": {
+ "version": "0.4.16",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
+ "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.0"
+ }
+ },
+ "node_modules/aes-js": {
+ "version": "4.0.0-beta.5",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz",
+ "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==",
+ "dev": true
+ },
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/amazon-cognito-identity-js": {
+ "version": "6.3.7",
+ "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.7.tgz",
+ "integrity": "sha512-tSjnM7KyAeOZ7UMah+oOZ6cW4Gf64FFcc7BE2l7MTcp7ekAPrXaCbpcW2xEpH1EiDS4cPcAouHzmCuc2tr72vQ==",
+ "dev": true,
+ "dependencies": {
+ "@aws-crypto/sha256-js": "1.2.2",
+ "buffer": "4.9.2",
+ "fast-base64-decode": "^1.0.0",
+ "isomorphic-unfetch": "^3.0.0",
+ "js-cookie": "^2.2.1"
+ }
+ },
+ "node_modules/amazon-cognito-identity-js/node_modules/buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dev": true,
+ "dependencies": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "node_modules/amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.4.2"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/antlr4ts": {
+ "version": "0.5.0-alpha.4",
+ "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz",
+ "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/array-back": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
+ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array.prototype.findlast": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.3.tgz",
+ "integrity": "sha512-kcBubumjciBg4JKp5KTKtI7ec7tRefPk88yjkWJwaVKYd9QfTaxcsOxoMNKd7iBr447zCfDV0z1kOF47umv42g==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
+ "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/async-retry": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz",
+ "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==",
+ "dev": true,
+ "dependencies": {
+ "retry": "0.13.1"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
+ },
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/axios": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.4.tgz",
+ "integrity": "sha512-heJnIs6N4aa1eSthhN9M5ioILu8Wi8vmQW9iHQ9NUvfkJb0lEEDUiIdQNAuBtfUt3FxReaKdpQA5DbmMOqzF/A==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.4",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/base-x": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+ "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/bech32": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
+ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==",
+ "dev": true
+ },
+ "node_modules/bigint-crypto-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz",
+ "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/blakejs": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==",
+ "dev": true
+ },
+ "node_modules/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
+ "dev": true
+ },
+ "node_modules/browser-level": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz",
+ "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==",
+ "dev": true,
+ "dependencies": {
+ "abstract-level": "^1.0.2",
+ "catering": "^2.1.1",
+ "module-error": "^1.0.2",
+ "run-parallel-limit": "^1.1.0"
+ }
+ },
+ "node_modules/browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/bs58": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+ "dev": true,
+ "dependencies": {
+ "base-x": "^3.0.2"
+ }
+ },
+ "node_modules/bs58check": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+ "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+ "dev": true,
+ "dependencies": {
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
+ "dev": true
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.1",
+ "set-function-length": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/case": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz",
+ "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/catering": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz",
+ "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cbor": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz",
+ "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "nofilter": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12.19"
+ }
+ },
+ "node_modules/chai": {
+ "version": "4.3.10",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz",
+ "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.3",
+ "deep-eql": "^4.1.3",
+ "get-func-name": "^2.0.2",
+ "loupe": "^2.3.6",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chai-as-promised": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
+ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "check-error": "^1.0.2"
+ },
+ "peerDependencies": {
+ "chai": ">= 2.1.2 < 5"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "get-func-name": "^2.0.2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "node_modules/cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/classic-level": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz",
+ "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "abstract-level": "^1.0.2",
+ "catering": "^2.1.0",
+ "module-error": "^1.0.1",
+ "napi-macros": "^2.2.2",
+ "node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
+ "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "object-assign": "^4.1.0",
+ "string-width": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "optionalDependencies": {
+ "colors": "^1.1.2"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/cliui/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/command-exists": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
+ "dev": true
+ },
+ "node_modules/command-line-args": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
+ "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-back": "^3.1.0",
+ "find-replace": "^3.0.0",
+ "lodash.camelcase": "^4.3.0",
+ "typical": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/command-line-usage": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz",
+ "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-back": "^4.0.2",
+ "chalk": "^2.4.2",
+ "table-layout": "^1.0.2",
+ "typical": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/command-line-usage/node_modules/array-back": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
+ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/command-line-usage/node_modules/typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
+ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==",
+ "dev": true
+ },
+ "node_modules/compare-versions": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz",
+ "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==",
+ "dev": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8"
+ ],
+ "peer": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/concat-stream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/concat-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/concat-stream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/crc-32": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+ "dev": true,
+ "bin": {
+ "crc32": "bin/crc32.njs"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/death": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz",
+ "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/deep-eql": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
+ "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "type-detect": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
+ "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/detect-port": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz",
+ "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "address": "^1.0.1",
+ "debug": "4"
+ },
+ "bin": {
+ "detect": "bin/detect-port.js",
+ "detect-port": "bin/detect-port.js"
+ }
+ },
+ "node_modules/diff": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/difflib": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz",
+ "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "heap": ">= 0.2.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "16.3.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
+ "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/motdotla/dotenv?sponsor=1"
+ }
+ },
+ "node_modules/elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.22.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+ "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.5",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.2",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
+ "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.2",
+ "has-tostringtag": "^1.0.0",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/escodegen": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
+ "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "esprima": "^2.7.1",
+ "estraverse": "^1.9.1",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=0.12.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.2.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+ "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eth-gas-reporter": {
+ "version": "0.2.27",
+ "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz",
+ "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@solidity-parser/parser": "^0.14.0",
+ "axios": "^1.5.1",
+ "cli-table3": "^0.5.0",
+ "colors": "1.4.0",
+ "ethereum-cryptography": "^1.0.3",
+ "ethers": "^5.7.2",
+ "fs-readdir-recursive": "^1.1.0",
+ "lodash": "^4.17.14",
+ "markdown-table": "^1.1.3",
+ "mocha": "^10.2.0",
+ "req-cwd": "^2.0.0",
+ "sha1": "^1.1.1",
+ "sync-request": "^6.0.0"
+ },
+ "peerDependencies": {
+ "@codechecks/client": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@codechecks/client": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eth-gas-reporter/node_modules/@noble/hashes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
+ "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "peer": true
+ },
+ "node_modules/eth-gas-reporter/node_modules/@scure/bip32": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
+ "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "@noble/hashes": "~1.2.0",
+ "@noble/secp256k1": "~1.7.0",
+ "@scure/base": "~1.1.0"
+ }
+ },
+ "node_modules/eth-gas-reporter/node_modules/@scure/bip39": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
+ "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "@noble/hashes": "~1.2.0",
+ "@scure/base": "~1.1.0"
+ }
+ },
+ "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
+ "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@noble/hashes": "1.2.0",
+ "@noble/secp256k1": "1.7.1",
+ "@scure/bip32": "1.1.5",
+ "@scure/bip39": "1.1.1"
+ }
+ },
+ "node_modules/eth-gas-reporter/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ },
+ "node_modules/ethereum-bloom-filters": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz",
+ "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "js-sha3": "^0.8.0"
+ }
+ },
+ "node_modules/ethereum-cryptography": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
+ }
+ },
+ "node_modules/ethereumjs-abi": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
+ "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.11.8",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "node_modules/ethereumjs-abi/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/ethereumjs-abi/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dev": true,
+ "dependencies": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ },
+ "node_modules/ethereumjs-util": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
+ "dev": true,
+ "dependencies": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "rlp": "^2.2.4"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/ethers": {
+ "version": "6.9.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.9.2.tgz",
+ "integrity": "sha512-YpkrtILnMQz5jSEsJQRTpduaGT/CXuLnUIuOYzHA0v/7c8IX91m2J48wSKjzGL5L9J/Us3tLoUdb+OwE3U+FFQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/ethers-io/"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@adraffy/ens-normalize": "1.10.0",
+ "@noble/curves": "1.2.0",
+ "@noble/hashes": "1.3.2",
+ "@types/node": "18.15.13",
+ "aes-js": "4.0.0-beta.5",
+ "tslib": "2.4.0",
+ "ws": "8.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/ethers/node_modules/@types/node": {
+ "version": "18.15.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz",
+ "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==",
+ "dev": true
+ },
+ "node_modules/ethjs-unit": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
+ "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "bn.js": "4.11.6",
+ "number-to-bn": "1.7.0"
+ },
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
+ }
+ },
+ "node_modules/ethjs-unit/node_modules/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/ethjs-util": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
+ "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
+ "dev": true,
+ "dependencies": {
+ "is-hex-prefixed": "1.0.0",
+ "strip-hex-prefix": "1.0.0"
+ },
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/fast-base64-decode": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz",
+ "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==",
+ "dev": true
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/fastq": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
+ "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-replace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
+ "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-back": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true,
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.4",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
+ "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fp-ts": {
+ "version": "1.19.3",
+ "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz",
+ "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==",
+ "dev": true
+ },
+ "node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/fs-readdir-recursive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-func-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-port": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
+ "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ghost-testrpc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz",
+ "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "node-emoji": "^1.10.0"
+ },
+ "bin": {
+ "testrpc-sc": "index.js"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "global-prefix": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/globby": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
+ "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.0.3",
+ "glob": "^7.1.3",
+ "ignore": "^5.1.1",
+ "merge2": "^1.2.3",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
+ "node_modules/handlebars/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hardhat": {
+ "version": "2.19.4",
+ "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.19.4.tgz",
+ "integrity": "sha512-fTQJpqSt3Xo9Mn/WrdblNGAfcANM6XC3tAEi6YogB4s02DmTf93A8QsGb8uR0KR8TFcpcS8lgiW4ugAIYpnbrQ==",
+ "dev": true,
+ "dependencies": {
+ "@ethersproject/abi": "^5.1.2",
+ "@metamask/eth-sig-util": "^4.0.0",
+ "@nomicfoundation/ethereumjs-block": "5.0.2",
+ "@nomicfoundation/ethereumjs-blockchain": "7.0.2",
+ "@nomicfoundation/ethereumjs-common": "4.0.2",
+ "@nomicfoundation/ethereumjs-evm": "2.0.2",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.2",
+ "@nomicfoundation/ethereumjs-statemanager": "2.0.2",
+ "@nomicfoundation/ethereumjs-trie": "6.0.2",
+ "@nomicfoundation/ethereumjs-tx": "5.0.2",
+ "@nomicfoundation/ethereumjs-util": "9.0.2",
+ "@nomicfoundation/ethereumjs-vm": "7.0.2",
+ "@nomicfoundation/solidity-analyzer": "^0.1.0",
+ "@sentry/node": "^5.18.1",
+ "@types/bn.js": "^5.1.0",
+ "@types/lru-cache": "^5.1.0",
+ "adm-zip": "^0.4.16",
+ "aggregate-error": "^3.0.0",
+ "ansi-escapes": "^4.3.0",
+ "chalk": "^2.4.2",
+ "chokidar": "^3.4.0",
+ "ci-info": "^2.0.0",
+ "debug": "^4.1.1",
+ "enquirer": "^2.3.0",
+ "env-paths": "^2.2.0",
+ "ethereum-cryptography": "^1.0.3",
+ "ethereumjs-abi": "^0.6.8",
+ "find-up": "^2.1.0",
+ "fp-ts": "1.19.3",
+ "fs-extra": "^7.0.1",
+ "glob": "7.2.0",
+ "immutable": "^4.0.0-rc.12",
+ "io-ts": "1.10.4",
+ "keccak": "^3.0.2",
+ "lodash": "^4.17.11",
+ "mnemonist": "^0.38.0",
+ "mocha": "^10.0.0",
+ "p-map": "^4.0.0",
+ "raw-body": "^2.4.1",
+ "resolve": "1.17.0",
+ "semver": "^6.3.0",
+ "solc": "0.7.3",
+ "source-map-support": "^0.5.13",
+ "stacktrace-parser": "^0.1.10",
+ "tsort": "0.0.1",
+ "undici": "^5.14.0",
+ "uuid": "^8.3.2",
+ "ws": "^7.4.6"
+ },
+ "bin": {
+ "hardhat": "internal/cli/bootstrap.js"
+ },
+ "peerDependencies": {
+ "ts-node": "*",
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "ts-node": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/hardhat-gas-reporter": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz",
+ "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-uniq": "1.0.3",
+ "eth-gas-reporter": "^0.2.25",
+ "sha1": "^1.1.1"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.0.2"
+ }
+ },
+ "node_modules/hardhat/node_modules/@noble/hashes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
+ "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/hardhat/node_modules/@scure/bip32": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
+ "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "@noble/hashes": "~1.2.0",
+ "@noble/secp256k1": "~1.7.0",
+ "@scure/base": "~1.1.0"
+ }
+ },
+ "node_modules/hardhat/node_modules/@scure/bip39": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
+ "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "@noble/hashes": "~1.2.0",
+ "@scure/base": "~1.1.0"
+ }
+ },
+ "node_modules/hardhat/node_modules/ethereum-cryptography": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
+ "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
+ "dev": true,
+ "dependencies": {
+ "@noble/hashes": "1.2.0",
+ "@noble/secp256k1": "1.7.1",
+ "@scure/bip32": "1.1.5",
+ "@scure/bip39": "1.1.1"
+ }
+ },
+ "node_modules/hardhat/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/hardhat/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/hardhat/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/hardhat/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+ "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/heap": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz",
+ "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dev": true,
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/http-basic": {
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz",
+ "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "caseless": "^0.12.0",
+ "concat-stream": "^1.6.2",
+ "http-response-object": "^3.0.1",
+ "parse-cache-control": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dev": true,
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-response-object": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz",
+ "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "^10.0.3"
+ }
+ },
+ "node_modules/http-response-object/node_modules/@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/ignore": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
+ "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
+ "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
+ "dev": true
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz",
+ "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.2",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/io-ts": {
+ "version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz",
+ "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==",
+ "dev": true,
+ "dependencies": {
+ "fp-ts": "^1.0.0"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+ "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-hex-prefixed": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
+ "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
+ "dev": true,
+ "dependencies": {
+ "which-typed-array": "^1.1.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/isomorphic-unfetch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz",
+ "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==",
+ "dev": true,
+ "dependencies": {
+ "node-fetch": "^2.6.1",
+ "unfetch": "^4.2.0"
+ }
+ },
+ "node_modules/js-cookie": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
+ "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==",
+ "dev": true
+ },
+ "node_modules/js-sdsl": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz",
+ "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
+ "node_modules/js-sha3": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jsonschema": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/keccak": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
+ "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.9"
+ }
+ },
+ "node_modules/level": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz",
+ "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==",
+ "dev": true,
+ "dependencies": {
+ "browser-level": "^1.0.1",
+ "classic-level": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/level"
+ }
+ },
+ "node_modules/level-supports": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz",
+ "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/level-transcoder": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz",
+ "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==",
+ "dev": true,
+ "dependencies": {
+ "buffer": "^6.0.3",
+ "module-error": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "dev": true
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/log-symbols/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/log-symbols/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/log-symbols/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/log-symbols/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-symbols/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/loupe": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "get-func-name": "^2.0.1"
+ }
+ },
+ "node_modules/lru_map": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
+ "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==",
+ "dev": true
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/markdown-table": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
+ "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/mcl-wasm": {
+ "version": "0.7.9",
+ "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz",
+ "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/memory-level": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz",
+ "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==",
+ "dev": true,
+ "dependencies": {
+ "abstract-level": "^1.0.0",
+ "functional-red-black-tree": "^1.0.1",
+ "module-error": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micro-ftch": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz",
+ "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+ "dev": true
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/mnemonist": {
+ "version": "0.38.5",
+ "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz",
+ "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==",
+ "dev": true,
+ "dependencies": {
+ "obliterator": "^2.0.0"
+ }
+ },
+ "node_modules/mocha": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
+ "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.3",
+ "debug": "4.3.4",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.2.0",
+ "he": "1.2.0",
+ "js-yaml": "4.1.0",
+ "log-symbols": "4.1.0",
+ "minimatch": "5.0.1",
+ "ms": "2.1.3",
+ "nanoid": "3.3.3",
+ "serialize-javascript": "6.0.0",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "workerpool": "6.2.1",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha.js"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mochajs"
+ }
+ },
+ "node_modules/mocha/node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/mocha/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mocha/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mocha/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/mocha/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mocha/node_modules/minimatch": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
+ "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mocha/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "node_modules/mocha/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mocha/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mocha/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/mocha/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/module-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz",
+ "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
+ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
+ "dev": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/napi-macros": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz",
+ "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==",
+ "dev": true
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/node-addon-api": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==",
+ "dev": true
+ },
+ "node_modules/node-emoji": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
+ "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "lodash": "^4.17.21"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-gyp-build": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz",
+ "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==",
+ "dev": true,
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
+ "node_modules/nofilter": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz",
+ "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.19"
+ }
+ },
+ "node_modules/nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/number-to-bn": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
+ "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "bn.js": "4.11.6",
+ "strip-hex-prefix": "1.0.0"
+ },
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
+ }
+ },
+ "node_modules/number-to-bn/node_modules/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/obliterator": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz",
+ "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==",
+ "dev": true
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/ordinal": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz",
+ "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/parse-cache-control": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
+ "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dev": true,
+ "dependencies": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/promise": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "asap": "~2.0.6"
+ }
+ },
+ "node_modules/proper-lockfile": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
+ "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "retry": "^0.12.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/proper-lockfile/node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "dev": true,
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/recursive-readdir": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz",
+ "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/reduce-flatten": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz",
+ "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/req-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz",
+ "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "req-from": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/req-from": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz",
+ "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "dependencies": {
+ "path-parse": "^1.0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "node_modules/rlp": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
+ "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^5.2.0"
+ },
+ "bin": {
+ "rlp": "bin/rlp"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/run-parallel-limit": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz",
+ "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rustbn.js": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz",
+ "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==",
+ "dev": true
+ },
+ "node_modules/safe-array-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz",
+ "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-array-concat/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "node_modules/sc-istanbul": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz",
+ "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "abbrev": "1.0.x",
+ "async": "1.x",
+ "escodegen": "1.8.x",
+ "esprima": "2.7.x",
+ "glob": "^5.0.15",
+ "handlebars": "^4.0.1",
+ "js-yaml": "3.x",
+ "mkdirp": "0.5.x",
+ "nopt": "3.x",
+ "once": "1.x",
+ "resolve": "1.1.x",
+ "supports-color": "^3.1.0",
+ "which": "^1.1.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "istanbul": "lib/cli.js"
+ }
+ },
+ "node_modules/sc-istanbul/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/sc-istanbul/node_modules/glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/sc-istanbul/node_modules/has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sc-istanbul/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sc-istanbul/node_modules/resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/sc-istanbul/node_modules/supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
+ "dev": true
+ },
+ "node_modules/secp256k1": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
+ "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "elliptic": "^6.5.4",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/set-function-length": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
+ "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.1.1",
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
+ "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
+ "dev": true
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
+ "node_modules/sha1": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz",
+ "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "charenc": ">= 0.0.1",
+ "crypt": ">= 0.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/solc": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz",
+ "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==",
+ "dev": true,
+ "dependencies": {
+ "command-exists": "^1.2.8",
+ "commander": "3.0.2",
+ "follow-redirects": "^1.12.1",
+ "fs-extra": "^0.30.0",
+ "js-sha3": "0.8.0",
+ "memorystream": "^0.3.1",
+ "require-from-string": "^2.0.0",
+ "semver": "^5.5.0",
+ "tmp": "0.0.33"
+ },
+ "bin": {
+ "solcjs": "solcjs"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/solc/node_modules/fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "node_modules/solc/node_modules/jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/solc/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/solidity-ast": {
+ "version": "0.4.55",
+ "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.55.tgz",
+ "integrity": "sha512-qeEU/r/K+V5lrAw8iswf2/yfWAnSGs3WKPHI+zAFKFjX0dIBVXEU/swQ8eJQYHf6PJWUZFO2uWV4V1wEOkeQbA==",
+ "dev": true,
+ "dependencies": {
+ "array.prototype.findlast": "^1.2.2"
+ }
+ },
+ "node_modules/solidity-coverage": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz",
+ "integrity": "sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@ethersproject/abi": "^5.0.9",
+ "@solidity-parser/parser": "^0.16.0",
+ "chalk": "^2.4.2",
+ "death": "^1.1.0",
+ "detect-port": "^1.3.0",
+ "difflib": "^0.2.4",
+ "fs-extra": "^8.1.0",
+ "ghost-testrpc": "^0.0.2",
+ "global-modules": "^2.0.0",
+ "globby": "^10.0.1",
+ "jsonschema": "^1.2.4",
+ "lodash": "^4.17.15",
+ "mocha": "10.2.0",
+ "node-emoji": "^1.10.0",
+ "pify": "^4.0.1",
+ "recursive-readdir": "^2.2.2",
+ "sc-istanbul": "^0.4.5",
+ "semver": "^7.3.4",
+ "shelljs": "^0.8.3",
+ "web3-utils": "^1.3.6"
+ },
+ "bin": {
+ "solidity-coverage": "plugins/bin.js"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.11.0"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz",
+ "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "antlr4ts": "^0.5.0-alpha.4"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "peer": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/source-map": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+ "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "amdefine": ">=0.0.4"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/stacktrace-parser": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.7.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/stacktrace-parser/node_modules/type-fest": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-format": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz",
+ "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-hex-prefix": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
+ "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
+ "dev": true,
+ "dependencies": {
+ "is-hex-prefixed": "1.0.0"
+ },
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sync-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz",
+ "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "http-response-object": "^3.0.1",
+ "sync-rpc": "^1.2.1",
+ "then-request": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/sync-rpc": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz",
+ "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "get-port": "^3.1.0"
+ }
+ },
+ "node_modules/table": {
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/table-layout": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz",
+ "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-back": "^4.0.1",
+ "deep-extend": "~0.6.0",
+ "typical": "^5.2.0",
+ "wordwrapjs": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/table-layout/node_modules/array-back": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
+ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table-layout/node_modules/typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/then-request": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz",
+ "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/concat-stream": "^1.6.0",
+ "@types/form-data": "0.0.33",
+ "@types/node": "^8.0.0",
+ "@types/qs": "^6.2.31",
+ "caseless": "~0.12.0",
+ "concat-stream": "^1.6.0",
+ "form-data": "^2.2.0",
+ "http-basic": "^8.1.1",
+ "http-response-object": "^3.0.1",
+ "promise": "^8.0.0",
+ "qs": "^6.4.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/then-request/node_modules/@types/node": {
+ "version": "8.10.66",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
+ "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/then-request/node_modules/form-data": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
+ "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
+ },
+ "node_modules/ts-command-line-args": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz",
+ "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "command-line-args": "^5.1.1",
+ "command-line-usage": "^6.1.0",
+ "string-format": "^2.0.0"
+ },
+ "bin": {
+ "write-markdown": "dist/write-markdown.js"
+ }
+ },
+ "node_modules/ts-command-line-args/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/ts-command-line-args/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/ts-command-line-args/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/ts-command-line-args/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/ts-command-line-args/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ts-command-line-args/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ts-essentials": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz",
+ "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==",
+ "dev": true,
+ "peer": true,
+ "peerDependencies": {
+ "typescript": ">=3.7.0"
+ }
+ },
+ "node_modules/ts-node": {
+ "version": "10.9.2",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ts-node/node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "dev": true
+ },
+ "node_modules/tsort": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
+ "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==",
+ "dev": true
+ },
+ "node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "dev": true
+ },
+ "node_modules/tweetnacl-util": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==",
+ "dev": true
+ },
+ "node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typechain": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz",
+ "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/prettier": "^2.1.1",
+ "debug": "^4.3.1",
+ "fs-extra": "^7.0.0",
+ "glob": "7.1.7",
+ "js-sha3": "^0.8.0",
+ "lodash": "^4.17.15",
+ "mkdirp": "^1.0.4",
+ "prettier": "^2.3.1",
+ "ts-command-line-args": "^2.2.0",
+ "ts-essentials": "^7.0.1"
+ },
+ "bin": {
+ "typechain": "dist/cli/cli.js"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.3.0"
+ }
+ },
+ "node_modules/typechain/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/typechain/node_modules/glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/typechain/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "peer": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/typechain/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/typechain/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
+ "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+ "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/typescript": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/typical": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
+ "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/undici": {
+ "version": "5.28.2",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz",
+ "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==",
+ "dev": true,
+ "dependencies": {
+ "@fastify/busboy": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.0"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
+ "node_modules/unfetch": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz",
+ "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==",
+ "dev": true
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/utf8": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/web3-utils": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz",
+ "integrity": "sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@ethereumjs/util": "^8.1.0",
+ "bn.js": "^5.2.1",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethereum-cryptography": "^2.1.2",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "utf8": "3.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/web3-utils/node_modules/@noble/curves": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz",
+ "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@noble/hashes": "1.3.1"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/web3-utils/node_modules/@noble/hashes": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz",
+ "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/web3-utils/node_modules/ethereum-cryptography": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz",
+ "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@noble/curves": "1.1.0",
+ "@noble/hashes": "1.3.1",
+ "@scure/bip32": "1.3.1",
+ "@scure/bip39": "1.2.1"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/wordwrapjs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz",
+ "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "reduce-flatten": "^2.0.0",
+ "typical": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/wordwrapjs/node_modules/typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/workerpool": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "node_modules/ws": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
+ "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-unparser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..0eac360
--- /dev/null
+++ b/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "options-token",
+ "version": "1.0.0",
+ "description": "An options token representing the right to purchase the underlying token at an oracle-specified rate. It's similar to a call option but with a variable strike price that's always at a certain discount to the market price. It also has no expiry date.",
+ "main": "index.js",
+ "directories": {
+ "lib": "lib",
+ "test": "test"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "",
+ "license": "AGPL-3.0",
+ "devDependencies": {
+ "@nomicfoundation/hardhat-ethers": "^3.0.5",
+ "@nomicfoundation/hardhat-foundry": "^1.1.1",
+ "@nomicfoundation/hardhat-toolbox": "^4.0.0",
+ "@openzeppelin/hardhat-upgrades": "^3.0.1",
+ "dotenv": "^16.3.1",
+ "ethers": "^6.9.2",
+ "hardhat": "^2.19.4"
+ }
+}
diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol
deleted file mode 100644
index b577ed7..0000000
--- a/script/Deploy.s.sol
+++ /dev/null
@@ -1,60 +0,0 @@
-// SPDX-License-Identifier: AGPL-3.0
-pragma solidity ^0.8.13;
-
-import {ERC20} from "solmate/tokens/ERC20.sol";
-
-import {OptionsToken} from "../src/OptionsToken.sol";
-import {CREATE3Script} from "./base/CREATE3Script.sol";
-import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
-import {IERC20Mintable} from "../src/interfaces/IERC20Mintable.sol";
-import {IBalancerTwapOracle} from "../src/interfaces/IBalancerTwapOracle.sol";
-
-contract DeployScript is CREATE3Script {
- constructor() CREATE3Script(vm.envString("VERSION")) {}
-
- function run() public returns (OptionsToken optionsToken, BalancerOracle oracle) {
- uint256 deployerPrivateKey = uint256(vm.envBytes32("PRIVATE_KEY"));
-
- vm.startBroadcast(deployerPrivateKey);
-
- {
- IBalancerTwapOracle balancerPriceOracle = IBalancerTwapOracle(vm.envAddress("BALANCER_POOL"));
- address owner = vm.envAddress("OWNER");
- uint16 multiplier = uint16(vm.envUint("ORACLE_MULTIPLIER"));
- uint56 secs = uint56(vm.envUint("ORACLE_SECS"));
- uint56 ago = uint56(vm.envUint("ORACLE_AGO"));
- uint128 minPrice = uint128(vm.envUint("ORACLE_MIN_PRICE"));
-
- oracle = BalancerOracle(
- create3.deploy(
- getCreate3ContractSalt("BalancerOracle"),
- bytes.concat(
- type(BalancerOracle).creationCode,
- abi.encode(balancerPriceOracle, owner, multiplier, secs, ago, minPrice)
- )
- )
- );
- }
-
- {
- string memory name = vm.envString("OT_NAME");
- string memory symbol = vm.envString("OT_SYMBOL");
- address owner = vm.envAddress("OWNER");
- address tokenAdmin = getCreate3Contract("TokenAdmin");
- ERC20 paymentToken = ERC20(vm.envAddress("OT_PAYMENT_TOKEN"));
- IERC20Mintable underlyingToken = IERC20Mintable(getCreate3Contract("TimelessToken"));
- address treasury = vm.envAddress("TREASURY");
- bytes memory constructorParams =
- abi.encode(name, symbol, owner, tokenAdmin, paymentToken, underlyingToken, oracle, treasury);
-
- optionsToken = OptionsToken(
- create3.deploy(
- getCreate3ContractSalt("OptionsToken"),
- bytes.concat(type(OptionsToken).creationCode, constructorParams)
- )
- );
- }
-
- vm.stopBroadcast();
- }
-}
diff --git a/script/base/CREATE3Script.sol b/script/base/CREATE3Script.sol
deleted file mode 100644
index f058af1..0000000
--- a/script/base/CREATE3Script.sol
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: AGPL-3.0
-pragma solidity ^0.8.13;
-
-import {CREATE3Factory} from "create3-factory/CREATE3Factory.sol";
-
-import "forge-std/Script.sol";
-
-abstract contract CREATE3Script is Script {
- CREATE3Factory internal constant create3 = CREATE3Factory(0x9fBB3DF7C40Da2e5A0dE984fFE2CCB7C47cd0ABf);
-
- string internal version;
-
- constructor(string memory version_) {
- version = version_;
- }
-
- function getCreate3Contract(string memory name) internal view virtual returns (address) {
- uint256 deployerPrivateKey = uint256(vm.envBytes32("PRIVATE_KEY"));
- address deployer = vm.addr(deployerPrivateKey);
-
- return create3.getDeployed(deployer, getCreate3ContractSalt(name));
- }
-
- function getCreate3ContractSalt(string memory name) internal view virtual returns (bytes32) {
- return keccak256(bytes(string.concat(name, "-v", version)));
- }
-}
diff --git a/scripts/deploy.ts b/scripts/deploy.ts
new file mode 100644
index 0000000..ba79ada
--- /dev/null
+++ b/scripts/deploy.ts
@@ -0,0 +1,66 @@
+import { ethers, upgrades } from "hardhat";
+import { getImplementationAddress } from '@openzeppelin/upgrades-core';
+
+async function main() {
+ const thenaPair = process.env.ORACLE_SOURCE;
+ const targetToken = process.env.OT_UNDERLYING_TOKEN;
+ const owner = process.env.OWNER;
+ const secs = process.env.ORACLE_SECS;
+ const minPrice = process.env.ORACLE_MIN_PRICE;
+
+ const oracle = await ethers.deployContract(
+ "ThenaOracle",
+ [thenaPair, targetToken, owner, secs, minPrice]
+ );
+ await oracle.waitForDeployment();
+ console.log(`Oracle deployed to: ${await oracle.getAddress()}`);
+
+ // OptionsToken
+ const tokenName = process.env.OT_NAME;
+ const symbol = process.env.OT_SYMBOL;
+ const tokenAdmin = process.env.OT_TOKEN_ADMIN;
+ const OptionsToken = await ethers.getContractFactory("OptionsToken");
+ const optionsToken = await upgrades.deployProxy(
+ OptionsToken,
+ [tokenName, symbol, tokenAdmin],
+ { kind: "uups", initializer: "initialize" }
+ );
+
+ await optionsToken.waitForDeployment();
+ console.log(`OptionsToken deployed to: ${await optionsToken.getAddress()}`);
+ console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsToken.getAddress())}`);
+
+ // Exercise
+ const paymentToken = process.env.OT_PAYMENT_TOKEN;
+ const multiplier = process.env.MULTIPLIER;
+ const feeRecipients = String(process.env.FEE_RECIPIENTS).split(",");
+ const feeBps = String(process.env.FEE_BPS).split(",");
+
+ const exercise = await ethers.deployContract(
+ "DiscountExercise",
+ [
+ await optionsToken.getAddress(),
+ owner,
+ paymentToken,
+ targetToken,
+ await oracle.getAddress(),
+ multiplier,
+ feeRecipients,
+ feeBps
+ ]
+ );
+ await exercise.waitForDeployment();
+ console.log(`Exercise deployed to: ${await exercise.getAddress()}`);
+
+ // Set exercise
+ const exerciseAddress = await exercise.getAddress();
+ await optionsToken.setExerciseContract(exerciseAddress, true);
+ console.log(`Exercise set to: ${exerciseAddress}`);
+}
+
+// We recommend this pattern to be able to use async/await everywhere
+// and properly handle errors.
+main().catch((error) => {
+ console.error(error);
+ process.exitCode = 1;
+});
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index cea5730..e45308f 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -55,7 +55,10 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
mapping (address => bool) public isExerciseContract;
uint256 public upgradeProposalTime;
- constructor () initializer {}
+ /// @custom:oz-upgrades-unsafe-allow constructor
+ constructor() {
+ _disableInitializers();
+ }
/// -----------------------------------------------------------------------
/// Initializer
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..574e785
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "target": "es2020",
+ "module": "commonjs",
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "strict": true,
+ "skipLibCheck": true,
+ "resolveJsonModule": true
+ }
+}
From 4c43d9363ff3821f013ed76b1a855708724f6bdd Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 9 Jan 2024 15:36:56 -0300
Subject: [PATCH 38/64] minor fixes
---
script/DeployThena.s.sol | 72 +++++++++++++++++++++++++++++++
src/OptionsToken.sol | 13 ++----
src/exercise/BaseExercise.sol | 6 ++-
src/exercise/DiscountExercise.sol | 9 ++--
test/OptionsToken.t.sol | 12 ++----
5 files changed, 88 insertions(+), 24 deletions(-)
create mode 100644 script/DeployThena.s.sol
diff --git a/script/DeployThena.s.sol b/script/DeployThena.s.sol
new file mode 100644
index 0000000..a3ce881
--- /dev/null
+++ b/script/DeployThena.s.sol
@@ -0,0 +1,72 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import {Script} from "forge-std/Script.sol";
+import {ERC20} from "solmate/tokens/ERC20.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
+
+import {OptionsToken} from "../src/OptionsToken.sol";
+import {DiscountExercise} from "../src/exercise/DiscountExercise.sol";
+import {ThenaOracle, IThenaPair} from "../src/oracles/ThenaOracle.sol";
+import {IERC20Mintable} from "../src/interfaces/IERC20Mintable.sol";
+import {IBalancerTwapOracle} from "../src/interfaces/IBalancerTwapOracle.sol";
+
+contract DeployScript is Script {
+ constructor() {}
+
+ function run() public returns (OptionsToken optionsToken, DiscountExercise exercise, ThenaOracle oracle) {
+ uint256 deployerPrivateKey = uint256(vm.envBytes32("PRIVATE_KEY"));
+
+ vm.startBroadcast(deployerPrivateKey);
+
+ {
+ IThenaPair thenaPair = IThenaPair(vm.envAddress("BALANCER_POOL"));
+ address owner = vm.envAddress("OWNER");
+ address targetToken = vm.envAddress("ORACLE_TOKEN");
+ uint56 secs = uint56(vm.envUint("ORACLE_SECS"));
+ uint128 minPrice = uint128(vm.envUint("ORACLE_MIN_PRICE"));
+
+ oracle = new ThenaOracle(thenaPair, targetToken, owner, secs, minPrice);
+ }
+
+ {
+ string memory name = vm.envString("OT_NAME");
+ string memory symbol = vm.envString("OT_SYMBOL");
+ address owner = vm.envAddress("OWNER");
+ address tokenAdmin = vm.envAddress("OT_TOKEN_ADMIN");
+
+ address implementation = address(new OptionsToken());
+ ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), "");
+ optionsToken = OptionsToken(address(proxy));
+ optionsToken.initialize(name, symbol, tokenAdmin);
+ optionsToken.transferOwnership(owner);
+ }
+
+ {
+ address owner = vm.envAddress("OWNER");
+ uint256 multiplier = vm.envUint("MULTIPLIER");
+
+ address[] memory feeRecipients = vm.envAddress("OT_FEE_RECIPIENTS", ",");
+ uint256[] memory feeBps = vm.envUint("OT_FEE_BPS", ",");
+
+ address paymentToken = vm.envAddress("OT_PAYMENT_TOKEN");
+ address underlyingToken = vm.envAddress("OT_UNDERLYING_TOKEN");
+
+ exercise = new DiscountExercise(
+ optionsToken,
+ owner,
+ IERC20(paymentToken),
+ IERC20(underlyingToken),
+ oracle,
+ multiplier,
+ feeRecipients,
+ feeBps
+ );
+ }
+
+ optionsToken.setExerciseContract(address(exercise), true);
+
+ vm.stopBroadcast();
+ }
+}
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index e45308f..6cb9451 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -35,7 +35,6 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
uint256 data2
);
event SetOracle(IOracle indexed newOracle);
- event SetTreasury(address indexed newTreasury);
event SetExerciseContract(address indexed _address, bool _isExercise);
/// -----------------------------------------------------------------------
@@ -102,12 +101,10 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
_mint(to, amount);
}
- /// @notice Exercises options tokens, giving the reward to the recipient.
- /// @dev WARNING: If `amount` is zero, the bytes returned will be empty and therefore, not decodable.
- /// @dev The options tokens are not burnt but sent to address(0) to avoid messing up the
- /// inflation schedule.
+ /// @notice Exercises options tokens, burning them and giving the reward to the recipient.
/// @param amount The amount of options tokens to exercise
/// @param recipient The recipient of the reward
+ /// @param option The address of the Exercise contract with the redemption logic
/// @param params Extra parameters to be used by the exercise function
function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
@@ -141,7 +138,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
// skip if amount is zero
if (amount == 0) return (0, address(0), 0, 0);
- // skip if option is not active
+ // revert if the exercise contract is not whitelisted
if (!isExerciseContract[option]) revert OptionsToken__NotExerciseContract();
// burn options tokens
@@ -173,7 +170,6 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/**
* @dev This function must be called prior to upgrading the implementation.
* It's required to wait UPGRADE_TIMELOCK seconds before executing the upgrade.
- * Strategists and roles with higher privilege can initiate this cooldown.
*/
function initiateUpgradeCooldown() onlyOwner external {
upgradeProposalTime = block.timestamp;
@@ -184,7 +180,6 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
* - in initialize()
* - as part of a successful upgrade
* - manually to clear the upgrade cooldown.
- * Guardian and roles with higher privilege can clear this cooldown.
*/
function _clearUpgradeCooldown() internal {
upgradeProposalTime = block.timestamp + FUTURE_NEXT_PROPOSAL_TIME;
@@ -196,7 +191,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/**
* @dev This function must be overriden simply for access control purposes.
- * Only DEFAULT_ADMIN_ROLE can upgrade the implementation once the timelock
+ * Only the owner can upgrade the implementation once the timelock
* has passed.
*/
function _authorizeUpgrade(address) onlyOwner internal override {
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index 33b0af9..e94e9d7 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -62,6 +62,7 @@ abstract contract BaseExercise is IExercise, Owned {
}
/// @notice Distributes fees to the fee recipients from a token holder who has approved
+ /// @dev Sends the residual amount to the last fee recipient to avoid rounding errors
function distributeFeesFrom(uint256 totalAmount, IERC20 token, address from) internal virtual {
for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
@@ -73,11 +74,14 @@ abstract contract BaseExercise is IExercise, Owned {
}
/// @notice Distributes fees to the fee recipients from token balance of exercise contract
+ /// @dev Sends the residual amount to the last fee recipient to avoid rounding errors
function distributeFees(uint256 totalAmount, IERC20 token) internal virtual {
- for (uint256 i = 0; i < feeRecipients.length; i++) {
+ for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransfer(feeRecipients[i], feeAmount);
+ totalAmount -= feeAmount;
}
+ token.safeTransfer(feeRecipients[feeRecipients.length - 1], totalAmount);
emit DistributeFees(feeRecipients, feeBPS, totalAmount);
}
}
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index f1d4921..6a5afc0 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -16,7 +16,7 @@ struct DiscountExerciseParams {
}
/// @title Options Token Exercise Contract
-/// @author @bigbadbeard, @lookee, @eidolon
+/// @author @lookee, @eidolon
/// @notice Contract that allows the holder of options tokens to exercise them,
/// in this case, by purchasing the underlying token at a discount to the market price.
/// @dev Assumes the underlying token and the payment token both use 18 decimals.
@@ -60,9 +60,6 @@ contract DiscountExercise is BaseExercise {
/// the options token. Uses 4 decimals.
uint256 public multiplier;
- /// @notice The treasury address which receives tokens paid during redemption
- address public treasury;
-
constructor(
OptionsToken oToken_,
address owner_,
@@ -134,11 +131,11 @@ contract DiscountExercise is BaseExercise {
// apply multiplier to price
uint256 price = oracle.getPrice().mulDivUp(multiplier, MULTIPLIER_DENOM);
- // transfer payment tokens from user to the treasury
- // this price includes the discount
+
paymentAmount = amount.mulWadUp(price);
if (paymentAmount > _params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
+ // transfer payment tokens from user to the set receivers
distributeFeesFrom(paymentAmount, paymentToken, from);
// transfer underlying tokens to recipient
underlyingToken.safeTransfer(recipient, amount);
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index f014755..2824c06 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -30,7 +30,6 @@ contract OptionsTokenTest is Test {
address tokenAdmin;
address[] feeRecipients_;
uint256[] feeBPS_;
- address upgradeAdmin;
OptionsToken optionsToken;
DiscountExercise exerciser;
@@ -43,7 +42,6 @@ contract OptionsTokenTest is Test {
// set up accounts
owner = makeAddr("owner");
tokenAdmin = makeAddr("tokenAdmin");
- upgradeAdmin = makeAddr("upgradeAdmin");
feeRecipients_ = new address[](2);
feeRecipients_[0] = makeAddr("feeRecipient");
@@ -146,7 +144,7 @@ contract OptionsTokenTest is Test {
optionsToken.mint(address(this), amount);
// set TWAP value such that the strike price is below the oracle's minPrice value
- balancerTwapOracle.setTwapValue(0);
+ balancerTwapOracle.setTwapValue(ORACLE_MIN_PRICE - 1);
// mint payment tokens
uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_MIN_PRICE);
@@ -159,10 +157,10 @@ contract OptionsTokenTest is Test {
}
function test_priceMultiplier(uint256 amount, uint multiplier) public {
- amount = bound(amount, 3000, (1e20) / 2);
+ amount = bound(amount, 1, MAX_SUPPLY / 2);
vm.prank(owner);
- exerciser.setMultiplier(10000); // 100% of price
+ exerciser.setMultiplier(10000); // full price
// mint options tokens
vm.prank(tokenAdmin);
@@ -181,7 +179,7 @@ contract OptionsTokenTest is Test {
(uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
// update multiplier
- multiplier = bound(multiplier, 5000, 10000);
+ multiplier = bound(multiplier, 1000, 20000);
vm.prank(owner);
exerciser.setMultiplier(multiplier);
@@ -314,6 +312,4 @@ contract OptionsTokenTest is Test {
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
-
-
}
From 68d02720367e5615e191698ee0c807d46cd36631 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 9 Jan 2024 15:45:38 -0300
Subject: [PATCH 39/64] remove unnecessary casting
---
test/OptionsToken.t.sol | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 2824c06..5123d7b 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -56,7 +56,7 @@ contract OptionsTokenTest is Test {
underlyingToken = address(new TestERC20());
address implementation = address(new OptionsToken());
- ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), "");
+ ERC1967Proxy proxy = new ERC1967Proxy(implementation, "");
optionsToken = OptionsToken(address(proxy));
optionsToken.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
optionsToken.transferOwnership(owner);
From 0ab0dc3f4e0d329318f106beadb426d99222987d Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 9 Jan 2024 17:34:32 -0300
Subject: [PATCH 40/64] forge: fmt
---
foundry.toml | 3 +
src/OptionsToken.sol | 55 +++++-------
src/exercise/BaseExercise.sol | 6 +-
src/exercise/DiscountExercise.sol | 10 +--
src/interfaces/IBalancerTwapOracle.sol | 10 +--
src/interfaces/IBalancerVault.sol | 44 ++++------
src/interfaces/IExercise.sol | 9 +-
src/interfaces/IThenaPair.sol | 20 ++---
src/oracles/ThenaOracle.sol | 32 ++-----
src/oracles/UniswapV3Oracle.sol | 16 +---
test/BalancerOracle.t.sol | 64 ++++++--------
test/OptionsToken.t.sol | 82 +++++++----------
test/ThenaOracle.t.sol | 42 +++------
test/UniswapV3Oracle.t.sol | 80 ++++++++---------
test/interfaces/ISwapRouter.sol | 2 +-
test/interfaces/IThenaRouter.sol | 8 +-
test/mocks/MockBalancerTwapOracle.sol | 71 +++++++--------
test/mocks/MockUniswapPool.sol | 116 +++++++++----------------
18 files changed, 251 insertions(+), 419 deletions(-)
diff --git a/foundry.toml b/foundry.toml
index 89e3e2d..15f6ce7 100644
--- a/foundry.toml
+++ b/foundry.toml
@@ -3,6 +3,9 @@ optimizer_runs = 1000000
verbosity = 1
via_ir = true
+[fmt]
+line_length = 130
+
# Extreme Fuzzing CI Profile :P
[profile.ci]
fuzz_runs = 100_000
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 6cb9451..3048eea 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -27,12 +27,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/// -----------------------------------------------------------------------
event Exercise(
- address indexed sender,
- address indexed recipient,
- uint256 amount,
- address data0,
- uint256 data1,
- uint256 data2
+ address indexed sender, address indexed recipient, uint256 amount, address data0, uint256 data1, uint256 data2
);
event SetOracle(IOracle indexed newOracle);
event SetExerciseContract(address indexed _address, bool _isExercise);
@@ -51,7 +46,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/// @notice The contract that has the right to mint options tokens
address public tokenAdmin;
- mapping (address => bool) public isExerciseContract;
+ mapping(address => bool) public isExerciseContract;
uint256 public upgradeProposalTime;
/// @custom:oz-upgrades-unsafe-allow constructor
@@ -63,11 +58,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/// Initializer
/// -----------------------------------------------------------------------
- function initialize(
- string memory name_,
- string memory symbol_,
- address tokenAdmin_
- ) external initializer {
+ function initialize(string memory name_, string memory symbol_, address tokenAdmin_) external initializer {
__UUPSUpgradeable_init();
__ERC20_init(name_, symbol_);
__Ownable_init();
@@ -109,7 +100,12 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
virtual
- returns (uint256 paymentAmount, address, uint256, uint256) // misc data
+ returns (
+ uint256 paymentAmount,
+ address,
+ uint256,
+ uint256 // misc data
+ )
{
return _exercise(amount, recipient, option, params);
}
@@ -133,7 +129,12 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
function _exercise(uint256 amount, address recipient, address option, bytes calldata params)
internal
virtual
- returns (uint256 paymentAmount, address data0, uint256 data1, uint256 data2) // misc data
+ returns (
+ uint256 paymentAmount,
+ address data0,
+ uint256 data1,
+ uint256 data2 // misc data
+ )
{
// skip if amount is zero
if (amount == 0) return (0, address(0), 0, 0);
@@ -145,22 +146,10 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
_burn(msg.sender, amount);
// give rewards to recipient
- (
- paymentAmount,
- data0,
- data1,
- data2
- ) = IExercise(option).exercise(msg.sender, amount, recipient, params);
+ (paymentAmount, data0, data1, data2) = IExercise(option).exercise(msg.sender, amount, recipient, params);
// emit event
- emit Exercise(
- msg.sender,
- recipient,
- amount,
- data0,
- data1,
- data2
- );
+ emit Exercise(msg.sender, recipient, amount, data0, data1, data2);
}
/// -----------------------------------------------------------------------
@@ -171,7 +160,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
* @dev This function must be called prior to upgrading the implementation.
* It's required to wait UPGRADE_TIMELOCK seconds before executing the upgrade.
*/
- function initiateUpgradeCooldown() onlyOwner external {
+ function initiateUpgradeCooldown() external onlyOwner {
upgradeProposalTime = block.timestamp;
}
@@ -185,7 +174,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
upgradeProposalTime = block.timestamp + FUTURE_NEXT_PROPOSAL_TIME;
}
- function clearUpgradeCooldown() onlyOwner external {
+ function clearUpgradeCooldown() external onlyOwner {
_clearUpgradeCooldown();
}
@@ -194,10 +183,8 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
* Only the owner can upgrade the implementation once the timelock
* has passed.
*/
- function _authorizeUpgrade(address) onlyOwner internal override {
- require(
- upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp, "Upgrade cooldown not initiated or still ongoing"
- );
+ function _authorizeUpgrade(address) internal override onlyOwner {
+ require(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp, "Upgrade cooldown not initiated or still ongoing");
_clearUpgradeCooldown();
}
}
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index e94e9d7..c172535 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -29,7 +29,7 @@ abstract contract BaseExercise is IExercise, Owned {
/// feeBPS[n] * fee / 10_000 in fees
uint256[] public feeBPS;
- constructor (IOptionsToken _oToken, address[] memory _feeRecipients, uint256[] memory _feeBPS) {
+ constructor(IOptionsToken _oToken, address[] memory _feeRecipients, uint256[] memory _feeBPS) {
oToken = _oToken;
if (_feeRecipients.length != _feeBPS.length) revert Exercise__feeArrayLengthMismatch();
feeRecipients = _feeRecipients;
@@ -52,8 +52,8 @@ abstract contract BaseExercise is IExercise, Owned {
function exercise(address from, uint256 amount, address recipient, bytes memory params)
external
virtual
- returns (uint paymentAmount, address, uint256, uint256);
-
+ returns (uint256 paymentAmount, address, uint256, uint256);
+
function setFees(address[] memory _feeRecipients, uint256[] memory _feeBPS) external onlyOwner {
if (_feeRecipients.length != _feeBPS.length) revert Exercise__feeArrayLengthMismatch();
feeRecipients = _feeRecipients;
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 6a5afc0..c1b10bb 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -92,7 +92,7 @@ contract DiscountExercise is BaseExercise {
virtual
override
onlyOToken
- returns (uint paymentAmount, address, uint256, uint256)
+ returns (uint256 paymentAmount, address, uint256, uint256)
{
return _exercise(from, amount, recipient, params);
}
@@ -111,7 +111,7 @@ contract DiscountExercise is BaseExercise {
function setMultiplier(uint256 multiplier_) external onlyOwner {
if (
multiplier_ > MULTIPLIER_DENOM * 2 // over 200%
- || multiplier_ < MULTIPLIER_DENOM / 10 // under 10%
+ || multiplier_ < MULTIPLIER_DENOM / 10 // under 10%
) revert Exercise__MultiplierOutOfRange();
multiplier = multiplier_;
emit SetMultiplier(multiplier_);
@@ -122,7 +122,7 @@ contract DiscountExercise is BaseExercise {
function _exercise(address from, uint256 amount, address recipient, bytes memory params)
internal
virtual
- returns (uint256 paymentAmount, address, uint256, uint256)
+ returns (uint256 paymentAmount, address, uint256, uint256)
{
// decode params
DiscountExerciseParams memory _params = abi.decode(params, (DiscountExerciseParams));
@@ -147,9 +147,7 @@ contract DiscountExercise is BaseExercise {
/// @notice Returns the amount of payment tokens required to exercise the given amount of options tokens.
/// @param amount The amount of options tokens to exercise
- function getPaymentAmount(
- uint256 amount
- ) external view returns (uint256 paymentAmount) {
+ function getPaymentAmount(uint256 amount) external view returns (uint256 paymentAmount) {
paymentAmount = amount.mulWadUp(oracle.getPrice());
}
}
diff --git a/src/interfaces/IBalancerTwapOracle.sol b/src/interfaces/IBalancerTwapOracle.sol
index 5044d79..59466bb 100644
--- a/src/interfaces/IBalancerTwapOracle.sol
+++ b/src/interfaces/IBalancerTwapOracle.sol
@@ -56,10 +56,7 @@ interface IBalancerTwapOracle {
* @dev Returns the time average weighted price corresponding to each of `queries`. Prices are represented as 18
* decimal fixed point values.
*/
- function getTimeWeightedAverage(OracleAverageQuery[] memory queries)
- external
- view
- returns (uint256[] memory results);
+ function getTimeWeightedAverage(OracleAverageQuery[] memory queries) external view returns (uint256[] memory results);
/**
* @dev Returns latest sample of `variable`. Prices are represented as 18 decimal fixed point values.
@@ -91,10 +88,7 @@ interface IBalancerTwapOracle {
/**
* @dev Returns the accumulators corresponding to each of `queries`.
*/
- function getPastAccumulators(OracleAccumulatorQuery[] memory queries)
- external
- view
- returns (int256[] memory results);
+ function getPastAccumulators(OracleAccumulatorQuery[] memory queries) external view returns (int256[] memory results);
/**
* @dev Information for an Accumulator query.
diff --git a/src/interfaces/IBalancerVault.sol b/src/interfaces/IBalancerVault.sol
index 2628237..a67cf92 100644
--- a/src/interfaces/IBalancerVault.sol
+++ b/src/interfaces/IBalancerVault.sol
@@ -12,7 +12,6 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-
pragma experimental ABIEncoderV2;
pragma solidity >=0.7.0 <0.9.0;
@@ -25,15 +24,14 @@ pragma solidity >=0.7.0 <0.9.0;
* This concept is unrelated to a Pool's Asset Managers.
*/
interface IAsset {
- // solhint-disable-previous-line no-empty-blocks
+// solhint-disable-previous-line no-empty-blocks
}
/**
* @dev Minimal interface for interacting with Balancer's vault.
*/
interface IVault {
-
-/**
+ /**
* @dev Called by users to join a Pool, which transfers tokens from `sender` into the Pool's balance. This will
* trigger custom Pool behavior, which will typically grant something in return to `recipient` - often tokenized
* Pool shares.
@@ -65,12 +63,7 @@ interface IVault {
*
* Emits a `PoolBalanceChanged` event.
*/
- function joinPool(
- bytes32 poolId,
- address sender,
- address recipient,
- JoinPoolRequest memory request
- ) external payable;
+ function joinPool(bytes32 poolId, address sender, address recipient, JoinPoolRequest memory request) external payable;
struct JoinPoolRequest {
IAsset[] assets;
@@ -79,7 +72,11 @@ interface IVault {
bool fromInternalBalance;
}
- enum PoolSpecialization { GENERAL, MINIMAL_SWAP_INFO, TWO_TOKEN }
+ enum PoolSpecialization {
+ GENERAL,
+ MINIMAL_SWAP_INFO,
+ TWO_TOKEN
+ }
/**
* @dev Returns a Pool's contract address and specialization setting.
@@ -100,15 +97,7 @@ interface IVault {
* the amounts used by joins, exits and swaps. For a detailed breakdown of token balances, use `getPoolTokenInfo`
* instead.
*/
- function getPoolTokens(bytes32 poolId)
- external
- view
- returns (
- address[] memory tokens,
- uint256[] memory,
- uint256
- );
-
+ function getPoolTokens(bytes32 poolId) external view returns (address[] memory tokens, uint256[] memory, uint256);
/**
* @dev All tokens in a swap are either sent from the `sender` account to the Vault, or from the Vault to the
@@ -134,7 +123,10 @@ interface IVault {
bool toInternalBalance;
}
- enum SwapKind { GIVEN_IN, GIVEN_OUT }
+ enum SwapKind {
+ GIVEN_IN,
+ GIVEN_OUT
+ }
/**
* @dev Performs a swap with a single Pool.
@@ -149,12 +141,10 @@ interface IVault {
*
* Emits a `Swap` event.
*/
- function swap(
- SingleSwap memory singleSwap,
- FundManagement memory funds,
- uint256 limit,
- uint256 deadline
- ) external payable returns (uint256);
+ function swap(SingleSwap memory singleSwap, FundManagement memory funds, uint256 limit, uint256 deadline)
+ external
+ payable
+ returns (uint256);
/**
* @dev Data for a single swap executed by `swap`. `amount` is either `amountIn` or `amountOut` depending on
diff --git a/src/interfaces/IExercise.sol b/src/interfaces/IExercise.sol
index e23bc9e..f21ed28 100644
--- a/src/interfaces/IExercise.sol
+++ b/src/interfaces/IExercise.sol
@@ -9,10 +9,7 @@ interface IExercise {
/// @param params Additional parameters for the exercise
/// @return paymentAmount The amount of underlying tokens to pay to the exercise contract
/// @dev Additional returns are reserved for future use
- function exercise(
- address from,
- uint256 amount,
- address recipient,
- bytes memory params
- ) external returns (uint256 paymentAmount, address, uint, uint);
+ function exercise(address from, uint256 amount, address recipient, bytes memory params)
+ external
+ returns (uint256 paymentAmount, address, uint256, uint256);
}
diff --git a/src/interfaces/IThenaPair.sol b/src/interfaces/IThenaPair.sol
index 974cb14..9ab4697 100644
--- a/src/interfaces/IThenaPair.sol
+++ b/src/interfaces/IThenaPair.sol
@@ -1,14 +1,7 @@
pragma solidity >=0.5;
interface IThenaPair {
- function getReserves()
- external
- view
- returns (
- uint112 _reserve0,
- uint112 _reserve1,
- uint32 _blockTimestampLast
- );
+ function getReserves() external view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast);
function reserve0CumulativeLast() external view returns (uint256);
@@ -17,17 +10,16 @@ interface IThenaPair {
function currentCumulativePrices()
external
view
- returns (
- uint256 reserve0Cumulative,
- uint256 reserve1Cumulative,
- uint256 blockTimestamp
- );
+ returns (uint256 reserve0Cumulative, uint256 reserve1Cumulative, uint256 blockTimestamp);
function stable() external view returns (bool);
function observationLength() external view returns (uint256);
- function observations(uint256) external view returns (uint256 timestamp, uint256 reserve0Cumulative, uint256 reserve1Cumulative);
+ function observations(uint256)
+ external
+ view
+ returns (uint256 timestamp, uint256 reserve0Cumulative, uint256 reserve1Cumulative);
function token0() external view returns (address);
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
index 2897b34..91e33a6 100644
--- a/src/oracles/ThenaOracle.sol
+++ b/src/oracles/ThenaOracle.sol
@@ -62,13 +62,7 @@ contract ThenaOracle is IOracle, Owned {
/// Constructor
/// -----------------------------------------------------------------------
- constructor(
- IThenaPair thenaPair_,
- address token,
- address owner_,
- uint56 secs_,
- uint128 minPrice_
- ) Owned(owner_) {
+ constructor(IThenaPair thenaPair_, address token, address owner_, uint56 secs_, uint128 minPrice_) Owned(owner_) {
if (thenaPair_.stable()) revert ThenaOracle__StablePairsUnsupported();
thenaPair = thenaPair_;
isToken0 = thenaPair_.token0() == token;
@@ -96,24 +90,15 @@ contract ThenaOracle is IOracle, Owned {
// query Thena oracle to get TWAP value
{
- (
- uint256 reserve0CumulativeCurrent,
- uint256 reserve1CumulativeCurrent,
- uint256 blockTimestampCurrent
- ) = thenaPair.currentCumulativePrices();
+ (uint256 reserve0CumulativeCurrent, uint256 reserve1CumulativeCurrent, uint256 blockTimestampCurrent) =
+ thenaPair.currentCumulativePrices();
uint256 observationLength = IThenaPair(thenaPair).observationLength();
- (
- uint256 blockTimestampLast,
- uint256 reserve0CumulativeLast,
- uint256 reserve1CumulativeLast
- ) = thenaPair.observations(observationLength - 1);
+ (uint256 blockTimestampLast, uint256 reserve0CumulativeLast, uint256 reserve1CumulativeLast) =
+ thenaPair.observations(observationLength - 1);
uint32 T = uint32(blockTimestampCurrent - blockTimestampLast);
if (T < secs_) {
- (
- blockTimestampLast,
- reserve0CumulativeLast,
- reserve1CumulativeLast
- ) = thenaPair.observations(observationLength - 2);
+ (blockTimestampLast, reserve0CumulativeLast, reserve1CumulativeLast) =
+ thenaPair.observations(observationLength - 2);
T = uint32(blockTimestampCurrent - blockTimestampLast);
}
uint112 reserve0 = safe112((reserve0CumulativeCurrent - reserve0CumulativeLast) / T);
@@ -148,8 +133,7 @@ contract ThenaOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
function safe112(uint256 n) internal pure returns (uint112) {
- if (n >= 2**112) revert ThenaOracle__Overflow();
+ if (n >= 2 ** 112) revert ThenaOracle__Overflow();
return uint112(n);
}
-
}
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index 6184575..2bb3588 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -66,14 +66,9 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Constructor
/// -----------------------------------------------------------------------
- constructor(
- IUniswapV3Pool uniswapPool_,
- address token,
- address owner_,
- uint32 secs_,
- uint32 ago_,
- uint128 minPrice_
- ) Owned(owner_) {
+ constructor(IUniswapV3Pool uniswapPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_)
+ Owned(owner_)
+ {
uniswapPool = uniswapPool_;
isToken0 = token == uniswapPool_.token0();
secs = secs_;
@@ -143,10 +138,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// would be (block.timestamp - secs - ago, block.timestamp - ago].
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
- function setParams(uint32 secs_, uint32 ago_, uint128 minPrice_)
- external
- onlyOwner
- {
+ function setParams(uint32 secs_, uint32 ago_, uint128 minPrice_) external onlyOwner {
secs = secs_;
ago = ago_;
minPrice = minPrice_;
diff --git a/test/BalancerOracle.t.sol b/test/BalancerOracle.t.sol
index 9033bab..e91c8f6 100644
--- a/test/BalancerOracle.t.sol
+++ b/test/BalancerOracle.t.sol
@@ -25,12 +25,12 @@ contract BalancerOracleTest is Test {
string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL");
uint32 FORK_BLOCK = 18764758;
-
+
address TOKEN_ADDRESS = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
address PAYMENT_ADDRESS = 0xfd0205066521550D7d7AB19DA8F72bb004b4C341;
address POOL_ADDRESS = 0x9232a548DD9E81BaC65500b5e0d918F8Ba93675C;
- uint MULTIPLIER_DENOM = 10000;
+ uint256 MULTIPLIER_DENOM = 10000;
uint256 opFork;
@@ -42,7 +42,6 @@ contract BalancerOracleTest is Test {
}
function test_priceWithinAcceptableRange() public {
-
BalancerOracle oracle = new BalancerOracle(
_default.pair,
_default.token,
@@ -52,11 +51,11 @@ contract BalancerOracleTest is Test {
_default.minPrice
);
- uint oraclePrice = oracle.getPrice();
+ uint256 oraclePrice = oracle.getPrice();
uint256 spotPrice = getSpotPrice(address(_default.pair), _default.token);
assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too big"); // 1%
- }
+ }
function test_priceToken1() public {
IVault vault = _default.pair.getVault();
@@ -70,7 +69,7 @@ contract BalancerOracleTest is Test {
_default.ago,
_default.minPrice
);
-
+
BalancerOracle oracleToken1 = new BalancerOracle(
_default.pair,
poolTokens[1],
@@ -80,13 +79,12 @@ contract BalancerOracleTest is Test {
_default.minPrice
);
- uint priceToken0 = oracleToken0.getPrice();
- uint priceToken1 = oracleToken1.getPrice();
+ uint256 priceToken0 = oracleToken0.getPrice();
+ uint256 priceToken1 = oracleToken1.getPrice();
assertEq(priceToken1, uint256(1e18).divWadUp(priceToken0), "incorrect price"); // 1%
}
-
function test_singleBlockManipulation() public {
IVault vault = _default.pair.getVault();
BalancerOracle oracle = new BalancerOracle(
@@ -157,7 +155,7 @@ contract BalancerOracleTest is Test {
// oracle price is only updated on swaps
assertEq(price_1, oracle.getPrice(), "price updated");
-
+
// perform additional, smaller swap
address manipulator2 = makeAddr("manipulator2");
deal(PAYMENT_ADDRESS, manipulator2, 1);
@@ -168,8 +166,10 @@ contract BalancerOracleTest is Test {
// weighted average of the first recorded oracle price and the current spot price
// weighted by the time since the last update
- uint256 spotAverage = ((price_1 * (_default.secs - skipTime)) + (getSpotPrice(address(_default.pair), _default.token) * skipTime)) / _default.secs;
-
+ uint256 spotAverage = (
+ (price_1 * (_default.secs - skipTime)) + (getSpotPrice(address(_default.pair), _default.token) * skipTime)
+ ) / _default.secs;
+
assertApproxEqRel(spotAverage, oracle.getPrice(), 0.01 ether, "price variance too large");
}
@@ -179,38 +179,24 @@ contract BalancerOracleTest is Test {
(address[] memory poolTokens,,) = vault.getPoolTokens(poolId);
bool isToken0 = token == poolTokens[0];
- (,uint[] memory balances, ) = vault.getPoolTokens(poolId);
- uint[] memory weights = IBalancer2TokensPool(pool).getNormalizedWeights();
+ (, uint256[] memory balances,) = vault.getPoolTokens(poolId);
+ uint256[] memory weights = IBalancer2TokensPool(pool).getNormalizedWeights();
- price = isToken0 ?
- (balances[1] * weights[0]).divWadDown(balances[0] * weights[1]) :
- (balances[0] * weights[1]).divWadDown(balances[1] * weights[0]);
+ price = isToken0
+ ? (balances[1] * weights[0]).divWadDown(balances[0] * weights[1])
+ : (balances[0] * weights[1]).divWadDown(balances[1] * weights[0]);
}
- function swap(address pool, address tokenIn, address tokenOut, uint amountIn, address sender) internal returns (uint amountOut) {
+ function swap(address pool, address tokenIn, address tokenOut, uint256 amountIn, address sender)
+ internal
+ returns (uint256 amountOut)
+ {
bytes32 poolId = IBalancerTwapOracle(pool).getPoolId();
- IVault.SingleSwap memory singleSwap = IVault.SingleSwap(
- poolId,
- IVault.SwapKind.GIVEN_IN,
- IAsset(tokenIn),
- IAsset(tokenOut),
- amountIn,
- ""
- );
+ IVault.SingleSwap memory singleSwap =
+ IVault.SingleSwap(poolId, IVault.SwapKind.GIVEN_IN, IAsset(tokenIn), IAsset(tokenOut), amountIn, "");
- IVault.FundManagement memory funds = IVault.FundManagement(
- sender,
- false,
- payable(sender),
- false
- );
+ IVault.FundManagement memory funds = IVault.FundManagement(sender, false, payable(sender), false);
- return IVault(IBalancer2TokensPool(pool).getVault()).swap(
- singleSwap,
- funds,
- 0,
- type(uint256).max
- );
+ return IVault(IBalancer2TokensPool(pool).getVault()).swap(singleSwap, funds, 0, type(uint256).max);
}
-
}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 5123d7b..e88d2d7 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -13,7 +13,6 @@ import {TestERC20} from "./mocks/TestERC20.sol";
import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
-
contract OptionsTokenTest is Test {
using FixedPointMathLib for uint256;
@@ -66,10 +65,10 @@ contract OptionsTokenTest is Test {
tokens[1] = address(paymentToken);
balancerTwapOracle = new MockBalancerTwapOracle(tokens);
- oracle =
- new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
+ oracle = new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
- exerciser = new DiscountExercise(optionsToken, owner, IERC20(address(paymentToken)), IERC20(underlyingToken), oracle, PRICE_MULTIPLIER, feeRecipients_, feeBPS_);
+ exerciser =
+ new DiscountExercise(optionsToken, owner, IERC20(address(paymentToken)), IERC20(underlyingToken), oracle, PRICE_MULTIPLIER, feeRecipients_, feeBPS_);
TestERC20(underlyingToken).mint(address(exerciser), 1e20 ether);
@@ -108,15 +107,12 @@ contract OptionsTokenTest is Test {
optionsToken.mint(address(this), amount);
// mint payment tokens
- uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({
- maxPaymentAmount: expectedPaymentAmount,
- deadline: type(uint256).max
- });
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
(uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
@@ -151,33 +147,31 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
vm.expectRevert(bytes4(keccak256("BalancerOracle__BelowMinPrice()")));
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
- function test_priceMultiplier(uint256 amount, uint multiplier) public {
+ function test_priceMultiplier(uint256 amount, uint256 multiplier) public {
amount = bound(amount, 1, MAX_SUPPLY / 2);
vm.prank(owner);
exerciser.setMultiplier(10000); // full price
-
+
// mint options tokens
vm.prank(tokenAdmin);
optionsToken.mint(address(this), amount * 2);
// mint payment tokens
- uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE);
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE);
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({
- maxPaymentAmount: expectedPaymentAmount,
- deadline: type(uint256).max
- });
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
(uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
-
+
// update multiplier
multiplier = bound(multiplier, 1000, 20000);
vm.prank(owner);
@@ -203,15 +197,12 @@ contract OptionsTokenTest is Test {
optionsToken.mint(address(this), amount);
// mint payment tokens
- uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({
- maxPaymentAmount: expectedPaymentAmount - 1,
- deadline: type(uint256).max
- });
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1, deadline: type(uint256).max});
vm.expectRevert(DiscountExercise.Exercise__SlippageTooHigh.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -224,8 +215,7 @@ contract OptionsTokenTest is Test {
optionsToken.mint(address(this), amount);
// mint payment tokens
- uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// update oracle params
@@ -235,10 +225,8 @@ contract OptionsTokenTest is Test {
oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({
- maxPaymentAmount: expectedPaymentAmount,
- deadline: type(uint256).max
- });
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
vm.expectRevert(BalancerOracle.BalancerOracle__TWAPOracleNotReady.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -252,15 +240,12 @@ contract OptionsTokenTest is Test {
optionsToken.mint(address(this), amount);
// mint payment tokens
- uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({
- maxPaymentAmount: expectedPaymentAmount,
- deadline: deadline
- });
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline});
if (amount != 0) {
vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
}
@@ -274,17 +259,14 @@ contract OptionsTokenTest is Test {
vm.prank(tokenAdmin);
optionsToken.mint(address(this), amount);
- uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({
- maxPaymentAmount: expectedPaymentAmount,
- deadline: type(uint256).max
- });
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
vm.expectRevert(BaseExercise.Exercise__NotOToken.selector);
- exerciser.exercise(address(this), amount, recipient, abi.encode(params));
+ exerciser.exercise(address(this), amount, recipient, abi.encode(params));
}
function test_exerciseNotExerciseContract(uint256 amount, address recipient) public {
@@ -299,17 +281,13 @@ contract OptionsTokenTest is Test {
optionsToken.setExerciseContract(address(exerciser), false);
// mint payment tokens
- uint256 expectedPaymentAmount =
- amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({
- maxPaymentAmount: expectedPaymentAmount,
- deadline: type(uint256).max
- });
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
-
}
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
index d3ff20a..26e5219 100644
--- a/test/ThenaOracle.t.sol
+++ b/test/ThenaOracle.t.sol
@@ -22,13 +22,13 @@ contract ThenaOracleTest is Test {
string BSC_RPC_URL = vm.envString("BSC_RPC_URL");
uint32 FORK_BLOCK = 33672842;
-
+
address POOL_ADDRESS = 0x56EDFf25385B1DaE39d816d006d14CeCf96026aF;
address TOKEN_ADDRESS = 0x4d2d32d8652058Bf98c772953E1Df5c5c85D9F45;
address PAYMENT_TOKEN_ADDRESS = 0x55d398326f99059fF775485246999027B3197955;
address THENA_ROUTER = 0xd4ae6eCA985340Dd434D38F470aCCce4DC78D109;
- uint MULTIPLIER_DENOM = 10000;
+ uint256 MULTIPLIER_DENOM = 10000;
uint256 bscFork;
@@ -40,7 +40,6 @@ contract ThenaOracleTest is Test {
}
function test_priceWithinAcceptableRange() public {
-
ThenaOracle oracle = new ThenaOracle(
_default.pair,
_default.token,
@@ -49,14 +48,13 @@ contract ThenaOracleTest is Test {
_default.minPrice
);
- uint oraclePrice = oracle.getPrice();
+ uint256 oraclePrice = oracle.getPrice();
uint256 spotPrice = getSpotPrice(_default.pair, _default.token);
assertApproxEqRel(oraclePrice, spotPrice, 0.01 ether, "Price delta too large"); // 1%
}
function test_priceToken1() public {
-
ThenaOracle oracleToken0 = new ThenaOracle(
_default.pair,
IThenaPair(_default.pair).token0(),
@@ -64,7 +62,7 @@ contract ThenaOracleTest is Test {
_default.secs,
_default.minPrice
);
-
+
ThenaOracle oracleToken1 = new ThenaOracle(
_default.pair,
IThenaPair(_default.pair).token1(),
@@ -73,8 +71,8 @@ contract ThenaOracleTest is Test {
_default.minPrice
);
- uint priceToken0 = oracleToken0.getPrice();
- uint priceToken1 = oracleToken1.getPrice();
+ uint256 priceToken0 = oracleToken0.getPrice();
+ uint256 priceToken1 = oracleToken1.getPrice();
assertApproxEqAbs(priceToken1, uint256(1e18).divWadDown(priceToken0), 1, "incorrect price"); // 1%
}
@@ -103,13 +101,7 @@ contract ThenaOracleTest is Test {
deal(TOKEN_ADDRESS, address(this), amountIn);
IERC20(TOKEN_ADDRESS).approve(THENA_ROUTER, amountIn);
IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
- amountIn,
- 0,
- TOKEN_ADDRESS,
- PAYMENT_TOKEN_ADDRESS,
- false,
- address(this),
- type(uint32).max
+ amountIn, 0, TOKEN_ADDRESS, PAYMENT_TOKEN_ADDRESS, false, address(this), type(uint32).max
);
ThenaOracle oracleMinPrice = new ThenaOracle(
@@ -183,26 +175,21 @@ contract ThenaOracleTest is Test {
// perform a large swap
address manipulator = makeAddr("manipulator");
- deal(TOKEN_ADDRESS, manipulator, 2**128);
+ deal(TOKEN_ADDRESS, manipulator, 2 ** 128);
vm.startPrank(manipulator);
(uint256 reserve0, uint256 reserve1,) = _default.pair.getReserves();
uint256 amountIn = (TOKEN_ADDRESS == _default.pair.token0() ? reserve0 : reserve1) / 4;
IERC20(TOKEN_ADDRESS).approve(THENA_ROUTER, amountIn);
IThenaRouter(THENA_ROUTER).swapExactTokensForTokensSimple(
- amountIn,
- 0,
- TOKEN_ADDRESS,
- PAYMENT_TOKEN_ADDRESS,
- false,
- manipulator,
- type(uint32).max
+ amountIn, 0, TOKEN_ADDRESS, PAYMENT_TOKEN_ADDRESS, false, manipulator, type(uint32).max
);
vm.stopPrank();
// wait
skip(skipTime);
- uint256 expectedMinPrice = (price_1 * (_default.secs - skipTime) + getSpotPrice(_default.pair, _default.token) * skipTime) / _default.secs;
+ uint256 expectedMinPrice =
+ (price_1 * (_default.secs - skipTime) + getSpotPrice(_default.pair, _default.token) * skipTime) / _default.secs;
assertGeDecimal(oracle.getPrice(), expectedMinPrice, 18, "price variation too large");
}
@@ -211,14 +198,13 @@ contract ThenaOracleTest is Test {
bool isToken0 = token == pair.token0();
(uint112 reserve0, uint112 reserve1,) = pair.getReserves();
if (isToken0) {
- price = uint256(reserve1).divWadDown(reserve0);
+ price = uint256(reserve1).divWadDown(reserve0);
} else {
- price = uint256(reserve0).divWadDown(reserve1);
+ price = uint256(reserve0).divWadDown(reserve1);
}
}
- function max(uint x, uint y) internal pure returns (uint z) {
+ function max(uint256 x, uint256 y) internal pure returns (uint256 z) {
z = x > y ? x : y;
}
-
}
diff --git a/test/UniswapV3Oracle.t.sol b/test/UniswapV3Oracle.t.sol
index c6f8b09..794f103 100644
--- a/test/UniswapV3Oracle.t.sol
+++ b/test/UniswapV3Oracle.t.sol
@@ -34,7 +34,7 @@ contract UniswapOracleTest is Test {
string OPTIMISM_RPC_URL = vm.envString("OPTIMISM_RPC_URL");
uint32 FORK_BLOCK = 112198905;
-
+
address SWAP_ROUTER_ADDRESS = 0xE592427A0AEce92De3Edee1F18E0157C05861564;
address WETH_OP_POOL_ADDRESS = 0x68F5C0A2DE713a54991E01858Fd27a3832401849;
address OP_ADDRESS = 0x4200000000000000000000000000000000000042;
@@ -104,7 +104,7 @@ contract UniswapOracleTest is Test {
_default.minPrice
);
- uint oraclePrice = oracle.getPrice();
+ uint256 oraclePrice = oracle.getPrice();
(uint160 sqrtRatioX96,,,,,,) = IUniswapV3Pool(WETH_OP_POOL_ADDRESS).slot0();
uint256 spotPrice = computePriceFromX96(sqrtRatioX96);
@@ -129,17 +129,16 @@ contract UniswapOracleTest is Test {
uint256 amountIn = 100000 ether;
deal(OP_ADDRESS, address(this), amountIn);
- ISwapRouter.ExactInputSingleParams memory paramsIn =
- ISwapRouter.ExactInputSingleParams({
- tokenIn: OP_ADDRESS,
- tokenOut: WETH_ADDRESS,
- fee: POOL_FEE,
- recipient: address(this),
- deadline: block.timestamp,
- amountIn: amountIn,
- amountOutMinimum: 0,
- sqrtPriceLimitX96: 0
- });
+ ISwapRouter.ExactInputSingleParams memory paramsIn = ISwapRouter.ExactInputSingleParams({
+ tokenIn: OP_ADDRESS,
+ tokenOut: WETH_ADDRESS,
+ fee: POOL_FEE,
+ recipient: address(this),
+ deadline: block.timestamp,
+ amountIn: amountIn,
+ amountOutMinimum: 0,
+ sqrtPriceLimitX96: 0
+ });
IERC20(OP_ADDRESS).approve(address(swapRouter), amountIn);
swapRouter.exactInputSingle(paramsIn);
@@ -181,17 +180,16 @@ contract UniswapOracleTest is Test {
vm.startPrank(manipulator);
uint256 reserve = IERC20(OP_ADDRESS).balanceOf(WETH_OP_POOL_ADDRESS);
uint256 amountIn = reserve / 4;
- ISwapRouter.ExactInputSingleParams memory paramsIn =
- ISwapRouter.ExactInputSingleParams({
- tokenIn: OP_ADDRESS,
- tokenOut: WETH_ADDRESS,
- fee: POOL_FEE,
- recipient: manipulator,
- deadline: block.timestamp,
- amountIn: amountIn,
- amountOutMinimum: 0,
- sqrtPriceLimitX96: 0
- });
+ ISwapRouter.ExactInputSingleParams memory paramsIn = ISwapRouter.ExactInputSingleParams({
+ tokenIn: OP_ADDRESS,
+ tokenOut: WETH_ADDRESS,
+ fee: POOL_FEE,
+ recipient: manipulator,
+ deadline: block.timestamp,
+ amountIn: amountIn,
+ amountOutMinimum: 0,
+ sqrtPriceLimitX96: 0
+ });
IERC20(OP_ADDRESS).approve(address(swapRouter), amountIn);
swapRouter.exactInputSingle(paramsIn);
vm.stopPrank();
@@ -223,17 +221,16 @@ contract UniswapOracleTest is Test {
vm.startPrank(manipulator);
uint256 reserve = IERC20(OP_ADDRESS).balanceOf(WETH_OP_POOL_ADDRESS);
uint256 amountIn = reserve / 4;
- ISwapRouter.ExactInputSingleParams memory paramsIn =
- ISwapRouter.ExactInputSingleParams({
- tokenIn: OP_ADDRESS,
- tokenOut: WETH_ADDRESS,
- fee: POOL_FEE,
- recipient: manipulator,
- deadline: block.timestamp,
- amountIn: amountIn,
- amountOutMinimum: 0,
- sqrtPriceLimitX96: 0
- });
+ ISwapRouter.ExactInputSingleParams memory paramsIn = ISwapRouter.ExactInputSingleParams({
+ tokenIn: OP_ADDRESS,
+ tokenOut: WETH_ADDRESS,
+ fee: POOL_FEE,
+ recipient: manipulator,
+ deadline: block.timestamp,
+ amountIn: amountIn,
+ amountOutMinimum: 0,
+ sqrtPriceLimitX96: 0
+ });
IERC20(OP_ADDRESS).approve(address(swapRouter), amountIn);
swapRouter.exactInputSingle(paramsIn);
vm.stopPrank();
@@ -244,25 +241,20 @@ contract UniswapOracleTest is Test {
(uint160 sqrtRatioX96,,,,,,) = IUniswapV3Pool(WETH_OP_POOL_ADDRESS).slot0();
uint256 spotPrice = computePriceFromX96(sqrtRatioX96);
uint256 expectedPrice = (price_1 * (_default.secs - skipTime) + spotPrice * skipTime) / _default.secs;
-
+
assertApproxEqRel(oracle.getPrice(), expectedPrice, 0.001 ether, "price variance too large");
}
function computePriceFromX96(uint160 sqrtRatioX96) internal view returns (uint256 price) {
bool isToken0 = OP_ADDRESS == IUniswapV3Pool(WETH_OP_POOL_ADDRESS).token0();
- uint decimals = 1e18;
+ uint256 decimals = 1e18;
if (sqrtRatioX96 <= type(uint128).max) {
uint256 ratioX192 = uint256(sqrtRatioX96) * sqrtRatioX96;
- price = isToken0
- ? FullMath.mulDiv(ratioX192, decimals, 1 << 192)
- : FullMath.mulDiv(1 << 192, decimals, ratioX192);
+ price = isToken0 ? FullMath.mulDiv(ratioX192, decimals, 1 << 192) : FullMath.mulDiv(1 << 192, decimals, ratioX192);
} else {
uint256 ratioX128 = FullMath.mulDiv(sqrtRatioX96, sqrtRatioX96, 1 << 64);
- price = isToken0
- ? FullMath.mulDiv(ratioX128, decimals, 1 << 128)
- : FullMath.mulDiv(1 << 128, decimals, ratioX128);
+ price = isToken0 ? FullMath.mulDiv(ratioX128, decimals, 1 << 128) : FullMath.mulDiv(1 << 128, decimals, ratioX128);
}
}
-
}
diff --git a/test/interfaces/ISwapRouter.sol b/test/interfaces/ISwapRouter.sol
index b5fd3dd..339cf15 100644
--- a/test/interfaces/ISwapRouter.sol
+++ b/test/interfaces/ISwapRouter.sol
@@ -2,7 +2,7 @@
pragma solidity >=0.7.5;
pragma abicoder v2;
-import 'v3-core/interfaces/callback/IUniswapV3SwapCallback.sol';
+import "v3-core/interfaces/callback/IUniswapV3SwapCallback.sol";
/// @title Router token swapping functionality
/// @notice Functions for swapping tokens via Uniswap V3
diff --git a/test/interfaces/IThenaRouter.sol b/test/interfaces/IThenaRouter.sol
index a9f9061..a455d15 100644
--- a/test/interfaces/IThenaRouter.sol
+++ b/test/interfaces/IThenaRouter.sol
@@ -1,11 +1,11 @@
interface IThenaRouter {
function swapExactTokensForTokensSimple(
- uint amountIn,
- uint amountOutMin,
+ uint256 amountIn,
+ uint256 amountOutMin,
address tokenFrom,
address tokenTo,
bool stable,
address to,
- uint deadline
- ) external returns (uint[] memory amounts);
+ uint256 deadline
+ ) external returns (uint256[] memory amounts);
}
diff --git a/test/mocks/MockBalancerTwapOracle.sol b/test/mocks/MockBalancerTwapOracle.sol
index 1f31322..f14e56d 100644
--- a/test/mocks/MockBalancerTwapOracle.sol
+++ b/test/mocks/MockBalancerTwapOracle.sol
@@ -7,47 +7,37 @@ import {IVault} from "../../src/interfaces/IBalancerTwapOracle.sol";
contract MockVault is IVault {
address[] tokens = new address[](2);
- constructor (address[] memory _tokens) {
+ constructor(address[] memory _tokens) {
tokens = _tokens;
}
- function joinPool(
- bytes32 poolId,
- address sender,
- address recipient,
- JoinPoolRequest memory request
- ) external payable override {}
-
- function getPool(
- bytes32 poolId
- ) external view override returns (address, PoolSpecialization) {}
-
- function getPoolTokens(
- bytes32 poolId
- )
+ function joinPool(bytes32 poolId, address sender, address recipient, JoinPoolRequest memory request)
external
- view
+ payable
override
- returns (address[] memory tokens, uint256[] memory, uint256)
- {
+ {}
+
+ function getPool(bytes32 poolId) external view override returns (address, PoolSpecialization) {}
+
+ function getPoolTokens(bytes32 poolId) external view override returns (address[] memory tokens, uint256[] memory, uint256) {
tokens = new address[](2);
tokens[0] = tokens[0];
tokens[1] = tokens[1];
}
- function swap(
- SingleSwap memory singleSwap,
- FundManagement memory funds,
- uint256 limit,
- uint256 deadline
- ) external payable override returns (uint256) {}
+ function swap(SingleSwap memory singleSwap, FundManagement memory funds, uint256 limit, uint256 deadline)
+ external
+ payable
+ override
+ returns (uint256)
+ {}
}
contract MockBalancerTwapOracle is IBalancerTwapOracle {
uint256 twapValue;
IVault mockVault;
- constructor (address[] memory tokens) {
+ constructor(address[] memory tokens) {
mockVault = new MockVault(tokens);
}
@@ -55,32 +45,29 @@ contract MockBalancerTwapOracle is IBalancerTwapOracle {
twapValue = value;
}
- function getTimeWeightedAverage(
- IBalancerTwapOracle.OracleAverageQuery[] memory queries
- ) external view override returns (uint256[] memory results) {
+ function getTimeWeightedAverage(IBalancerTwapOracle.OracleAverageQuery[] memory queries)
+ external
+ view
+ override
+ returns (uint256[] memory results)
+ {
queries;
results = new uint256[](1);
results[0] = twapValue;
}
- function getLargestSafeQueryWindow()
- external
- pure
- override
- returns (uint256)
- {
+ function getLargestSafeQueryWindow() external pure override returns (uint256) {
return 24 hours; // simulates an oracle that can look back at most 24 hours
}
- function getPastAccumulators(
- IBalancerTwapOracle.OracleAccumulatorQuery[] memory queries
- ) external view override returns (int256[] memory results) {
- }
+ function getPastAccumulators(IBalancerTwapOracle.OracleAccumulatorQuery[] memory queries)
+ external
+ view
+ override
+ returns (int256[] memory results)
+ {}
- function getLatest(
- IBalancerTwapOracle.Variable variable
- ) external view override returns (uint256) {
- }
+ function getLatest(IBalancerTwapOracle.Variable variable) external view override returns (uint256) {}
function getVault() external view override returns (IVault) {
return mockVault;
diff --git a/test/mocks/MockUniswapPool.sol b/test/mocks/MockUniswapPool.sol
index 2709b5a..c47066d 100644
--- a/test/mocks/MockUniswapPool.sol
+++ b/test/mocks/MockUniswapPool.sol
@@ -66,18 +66,11 @@ contract MockUniswapPool is IUniswapV3Pool {
function feeGrowthGlobal1X128() external view override returns (uint256) {}
- function protocolFees()
- external
- view
- override
- returns (uint128, uint128)
- {}
+ function protocolFees() external view override returns (uint128, uint128) {}
function liquidity() external view override returns (uint128) {}
- function ticks(
- int24 tick
- )
+ function ticks(int24 tick)
external
view
override
@@ -93,13 +86,9 @@ contract MockUniswapPool is IUniswapV3Pool {
)
{}
- function tickBitmap(
- int16 wordPosition
- ) external view override returns (uint256) {}
+ function tickBitmap(int16 wordPosition) external view override returns (uint256) {}
- function positions(
- bytes32 key
- )
+ function positions(bytes32 key)
external
view
override
@@ -112,71 +101,48 @@ contract MockUniswapPool is IUniswapV3Pool {
)
{}
- function observations(
- uint256 index
- )
+ function observations(uint256 index)
external
view
override
- returns (
- uint32 blockTimestamp,
- int56 tickCumulative,
- uint160 secondsPerLiquidityCumulativeX128,
- bool initialized
- )
+ returns (uint32 blockTimestamp, int56 tickCumulative, uint160 secondsPerLiquidityCumulativeX128, bool initialized)
{}
function initialize(uint160 sqrtPriceX96) external override {}
- function mint(
- address recipient,
- int24 tickLower,
- int24 tickUpper,
- uint128 amount,
- bytes calldata data
- ) external override returns (uint256 amount0, uint256 amount1) {}
-
- function collect(
- address recipient,
- int24 tickLower,
- int24 tickUpper,
- uint128 amount0Requested,
- uint128 amount1Requested
- ) external override returns (uint128 amount0, uint128 amount1) {}
-
- function burn(
- int24 tickLower,
- int24 tickUpper,
- uint128 amount
- ) external override returns (uint256 amount0, uint256 amount1) {}
-
- function swap(
- address recipient,
- bool zeroForOne,
- int256 amountSpecified,
- uint160 sqrtPriceLimitX96,
- bytes calldata data
- ) external override returns (int256 amount0, int256 amount1) {}
-
- function flash(
- address recipient,
- uint256 amount0,
- uint256 amount1,
- bytes calldata data
- ) external override {}
-
- function increaseObservationCardinalityNext(
- uint16 observationCardinalityNext
- ) external override {}
-
- function setFeeProtocol(
- uint8 feeProtocol0,
- uint8 feeProtocol1
- ) external override {}
-
- function collectProtocol(
- address recipient,
- uint128 amount0Requested,
- uint128 amount1Requested
- ) external override returns (uint128 amount0, uint128 amount1) {}
+ function mint(address recipient, int24 tickLower, int24 tickUpper, uint128 amount, bytes calldata data)
+ external
+ override
+ returns (uint256 amount0, uint256 amount1)
+ {}
+
+ function collect(address recipient, int24 tickLower, int24 tickUpper, uint128 amount0Requested, uint128 amount1Requested)
+ external
+ override
+ returns (uint128 amount0, uint128 amount1)
+ {}
+
+ function burn(int24 tickLower, int24 tickUpper, uint128 amount)
+ external
+ override
+ returns (uint256 amount0, uint256 amount1)
+ {}
+
+ function swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, bytes calldata data)
+ external
+ override
+ returns (int256 amount0, int256 amount1)
+ {}
+
+ function flash(address recipient, uint256 amount0, uint256 amount1, bytes calldata data) external override {}
+
+ function increaseObservationCardinalityNext(uint16 observationCardinalityNext) external override {}
+
+ function setFeeProtocol(uint8 feeProtocol0, uint8 feeProtocol1) external override {}
+
+ function collectProtocol(address recipient, uint128 amount0Requested, uint128 amount1Requested)
+ external
+ override
+ returns (uint128 amount0, uint128 amount1)
+ {}
}
From 0406f466e829d62eea35812814104646d915a354 Mon Sep 17 00:00:00 2001
From: Eidolon <92181746+imrtlfarm@users.noreply.github.com>
Date: Thu, 11 Jan 2024 04:33:18 -0800
Subject: [PATCH 41/64] format more
---
foundry.toml | 2 +-
src/OptionsToken.sol | 4 +---
src/interfaces/IBalancerVault.sol | 5 +----
src/interfaces/IThenaPair.sol | 10 ++-------
src/oracles/BalancerOracle.sol | 15 ++-----------
src/oracles/ThenaOracle.sol | 3 +--
src/oracles/UniswapV3Oracle.sol | 12 +++-------
test/BalancerOracle.t.sol | 13 ++++-------
test/OptionsToken.t.sol | 32 +++++++++------------------
test/ThenaOracle.t.sol | 3 +--
test/mocks/MockBalancerTwapOracle.sol | 6 +----
test/mocks/MockUniswapPool.sol | 14 ++----------
12 files changed, 29 insertions(+), 90 deletions(-)
diff --git a/foundry.toml b/foundry.toml
index 15f6ce7..2362c36 100644
--- a/foundry.toml
+++ b/foundry.toml
@@ -4,7 +4,7 @@ verbosity = 1
via_ir = true
[fmt]
-line_length = 130
+line_length = 150
# Extreme Fuzzing CI Profile :P
[profile.ci]
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 3048eea..e4df922 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -26,9 +26,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/// Events
/// -----------------------------------------------------------------------
- event Exercise(
- address indexed sender, address indexed recipient, uint256 amount, address data0, uint256 data1, uint256 data2
- );
+ event Exercise(address indexed sender, address indexed recipient, uint256 amount, address data0, uint256 data1, uint256 data2);
event SetOracle(IOracle indexed newOracle);
event SetExerciseContract(address indexed _address, bool _isExercise);
diff --git a/src/interfaces/IBalancerVault.sol b/src/interfaces/IBalancerVault.sol
index a67cf92..eb4630c 100644
--- a/src/interfaces/IBalancerVault.sol
+++ b/src/interfaces/IBalancerVault.sol
@@ -141,10 +141,7 @@ interface IVault {
*
* Emits a `Swap` event.
*/
- function swap(SingleSwap memory singleSwap, FundManagement memory funds, uint256 limit, uint256 deadline)
- external
- payable
- returns (uint256);
+ function swap(SingleSwap memory singleSwap, FundManagement memory funds, uint256 limit, uint256 deadline) external payable returns (uint256);
/**
* @dev Data for a single swap executed by `swap`. `amount` is either `amountIn` or `amountOut` depending on
diff --git a/src/interfaces/IThenaPair.sol b/src/interfaces/IThenaPair.sol
index 9ab4697..76db264 100644
--- a/src/interfaces/IThenaPair.sol
+++ b/src/interfaces/IThenaPair.sol
@@ -7,19 +7,13 @@ interface IThenaPair {
function reserve1CumulativeLast() external view returns (uint256);
- function currentCumulativePrices()
- external
- view
- returns (uint256 reserve0Cumulative, uint256 reserve1Cumulative, uint256 blockTimestamp);
+ function currentCumulativePrices() external view returns (uint256 reserve0Cumulative, uint256 reserve1Cumulative, uint256 blockTimestamp);
function stable() external view returns (bool);
function observationLength() external view returns (uint256);
- function observations(uint256)
- external
- view
- returns (uint256 timestamp, uint256 reserve0Cumulative, uint256 reserve1Cumulative);
+ function observations(uint256) external view returns (uint256 timestamp, uint256 reserve0Cumulative, uint256 reserve1Cumulative);
function token0() external view returns (address);
diff --git a/src/oracles/BalancerOracle.sol b/src/oracles/BalancerOracle.sol
index e1c818f..633515e 100644
--- a/src/oracles/BalancerOracle.sol
+++ b/src/oracles/BalancerOracle.sol
@@ -66,14 +66,7 @@ contract BalancerOracle is IOracle, Owned {
/// Constructor
/// -----------------------------------------------------------------------
- constructor(
- IBalancerTwapOracle balancerTwapOracle_,
- address token,
- address owner_,
- uint56 secs_,
- uint56 ago_,
- uint128 minPrice_
- ) Owned(owner_) {
+ constructor(IBalancerTwapOracle balancerTwapOracle_, address token, address owner_, uint56 secs_, uint56 ago_, uint128 minPrice_) Owned(owner_) {
balancerTwapOracle = balancerTwapOracle_;
IVault vault = balancerTwapOracle.getVault();
@@ -118,11 +111,7 @@ contract BalancerOracle is IOracle, Owned {
// query Balancer oracle to get TWAP value
{
IBalancerTwapOracle.OracleAverageQuery[] memory queries = new IBalancerTwapOracle.OracleAverageQuery[](1);
- queries[0] = IBalancerTwapOracle.OracleAverageQuery({
- variable: IBalancerTwapOracle.Variable.PAIR_PRICE,
- secs: secs_,
- ago: ago_
- });
+ queries[0] = IBalancerTwapOracle.OracleAverageQuery({variable: IBalancerTwapOracle.Variable.PAIR_PRICE, secs: secs_, ago: ago_});
price = balancerTwapOracle.getTimeWeightedAverage(queries)[0];
}
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
index 91e33a6..1916774 100644
--- a/src/oracles/ThenaOracle.sol
+++ b/src/oracles/ThenaOracle.sol
@@ -97,8 +97,7 @@ contract ThenaOracle is IOracle, Owned {
thenaPair.observations(observationLength - 1);
uint32 T = uint32(blockTimestampCurrent - blockTimestampLast);
if (T < secs_) {
- (blockTimestampLast, reserve0CumulativeLast, reserve1CumulativeLast) =
- thenaPair.observations(observationLength - 2);
+ (blockTimestampLast, reserve0CumulativeLast, reserve1CumulativeLast) = thenaPair.observations(observationLength - 2);
T = uint32(blockTimestampCurrent - blockTimestampLast);
}
uint112 reserve0 = safe112((reserve0CumulativeCurrent - reserve0CumulativeLast) / T);
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index 2bb3588..de15ef6 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -66,9 +66,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Constructor
/// -----------------------------------------------------------------------
- constructor(IUniswapV3Pool uniswapPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_)
- Owned(owner_)
- {
+ constructor(IUniswapV3Pool uniswapPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_) Owned(owner_) {
uniswapPool = uniswapPool_;
isToken0 = token == uniswapPool_.token0();
secs = secs_;
@@ -113,14 +111,10 @@ contract UniswapV3Oracle is IOracle, Owned {
// Calculate quoteAmount with better precision if it doesn't overflow when multiplied by itself
if (sqrtRatioX96 <= type(uint128).max) {
uint256 ratioX192 = uint256(sqrtRatioX96) * sqrtRatioX96;
- price = isToken0
- ? FullMath.mulDiv(ratioX192, decimalPrecision, 1 << 192)
- : FullMath.mulDiv(1 << 192, decimalPrecision, ratioX192);
+ price = isToken0 ? FullMath.mulDiv(ratioX192, decimalPrecision, 1 << 192) : FullMath.mulDiv(1 << 192, decimalPrecision, ratioX192);
} else {
uint256 ratioX128 = FullMath.mulDiv(sqrtRatioX96, sqrtRatioX96, 1 << 64);
- price = isToken0
- ? FullMath.mulDiv(ratioX128, decimalPrecision, 1 << 128)
- : FullMath.mulDiv(1 << 128, decimalPrecision, ratioX128);
+ price = isToken0 ? FullMath.mulDiv(ratioX128, decimalPrecision, 1 << 128) : FullMath.mulDiv(1 << 128, decimalPrecision, ratioX128);
}
}
diff --git a/test/BalancerOracle.t.sol b/test/BalancerOracle.t.sol
index e91c8f6..05cc0c6 100644
--- a/test/BalancerOracle.t.sol
+++ b/test/BalancerOracle.t.sol
@@ -166,9 +166,8 @@ contract BalancerOracleTest is Test {
// weighted average of the first recorded oracle price and the current spot price
// weighted by the time since the last update
- uint256 spotAverage = (
- (price_1 * (_default.secs - skipTime)) + (getSpotPrice(address(_default.pair), _default.token) * skipTime)
- ) / _default.secs;
+ uint256 spotAverage =
+ ((price_1 * (_default.secs - skipTime)) + (getSpotPrice(address(_default.pair), _default.token) * skipTime)) / _default.secs;
assertApproxEqRel(spotAverage, oracle.getPrice(), 0.01 ether, "price variance too large");
}
@@ -187,13 +186,9 @@ contract BalancerOracleTest is Test {
: (balances[0] * weights[1]).divWadDown(balances[1] * weights[0]);
}
- function swap(address pool, address tokenIn, address tokenOut, uint256 amountIn, address sender)
- internal
- returns (uint256 amountOut)
- {
+ function swap(address pool, address tokenIn, address tokenOut, uint256 amountIn, address sender) internal returns (uint256 amountOut) {
bytes32 poolId = IBalancerTwapOracle(pool).getPoolId();
- IVault.SingleSwap memory singleSwap =
- IVault.SingleSwap(poolId, IVault.SwapKind.GIVEN_IN, IAsset(tokenIn), IAsset(tokenOut), amountIn, "");
+ IVault.SingleSwap memory singleSwap = IVault.SingleSwap(poolId, IVault.SwapKind.GIVEN_IN, IAsset(tokenIn), IAsset(tokenOut), amountIn, "");
IVault.FundManagement memory funds = IVault.FundManagement(sender, false, payable(sender), false);
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index e88d2d7..8302af2 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -111,8 +111,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
(uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
@@ -123,12 +122,8 @@ contract OptionsTokenTest is Test {
assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
uint256 paymentFee1 = expectedPaymentAmount.mulDivDown(feeBPS_[0], 10000);
uint256 paymentFee2 = expectedPaymentAmount - paymentFee1;
- assertEqDecimal(
- paymentToken.balanceOf(feeRecipients_[0]), paymentFee1, 18, "fee recipient 1 didn't receive payment tokens"
- );
- assertEqDecimal(
- paymentToken.balanceOf(feeRecipients_[1]), paymentFee2, 18, "fee recipient 2 didn't receive payment tokens"
- );
+ assertEqDecimal(paymentToken.balanceOf(feeRecipients_[0]), paymentFee1, 18, "fee recipient 1 didn't receive payment tokens");
+ assertEqDecimal(paymentToken.balanceOf(feeRecipients_[1]), paymentFee2, 18, "fee recipient 2 didn't receive payment tokens");
assertEqDecimal(paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
}
@@ -147,8 +142,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
vm.expectRevert(bytes4(keccak256("BalancerOracle__BelowMinPrice()")));
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -168,8 +162,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
(uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
// update multiplier
@@ -201,8 +194,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1, deadline: type(uint256).max});
vm.expectRevert(DiscountExercise.Exercise__SlippageTooHigh.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -225,8 +217,7 @@ contract OptionsTokenTest is Test {
oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
// exercise options tokens which should fail
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
vm.expectRevert(BalancerOracle.BalancerOracle__TWAPOracleNotReady.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -244,8 +235,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline});
if (amount != 0) {
vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
}
@@ -263,8 +253,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
vm.expectRevert(BaseExercise.Exercise__NotOToken.selector);
exerciser.exercise(address(this), amount, recipient, abi.encode(params));
}
@@ -285,8 +274,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
diff --git a/test/ThenaOracle.t.sol b/test/ThenaOracle.t.sol
index 26e5219..0b592be 100644
--- a/test/ThenaOracle.t.sol
+++ b/test/ThenaOracle.t.sol
@@ -188,8 +188,7 @@ contract ThenaOracleTest is Test {
// wait
skip(skipTime);
- uint256 expectedMinPrice =
- (price_1 * (_default.secs - skipTime) + getSpotPrice(_default.pair, _default.token) * skipTime) / _default.secs;
+ uint256 expectedMinPrice = (price_1 * (_default.secs - skipTime) + getSpotPrice(_default.pair, _default.token) * skipTime) / _default.secs;
assertGeDecimal(oracle.getPrice(), expectedMinPrice, 18, "price variation too large");
}
diff --git a/test/mocks/MockBalancerTwapOracle.sol b/test/mocks/MockBalancerTwapOracle.sol
index f14e56d..3d0eb2c 100644
--- a/test/mocks/MockBalancerTwapOracle.sol
+++ b/test/mocks/MockBalancerTwapOracle.sol
@@ -11,11 +11,7 @@ contract MockVault is IVault {
tokens = _tokens;
}
- function joinPool(bytes32 poolId, address sender, address recipient, JoinPoolRequest memory request)
- external
- payable
- override
- {}
+ function joinPool(bytes32 poolId, address sender, address recipient, JoinPoolRequest memory request) external payable override {}
function getPool(bytes32 poolId) external view override returns (address, PoolSpecialization) {}
diff --git a/test/mocks/MockUniswapPool.sol b/test/mocks/MockUniswapPool.sol
index c47066d..42cd0ba 100644
--- a/test/mocks/MockUniswapPool.sol
+++ b/test/mocks/MockUniswapPool.sol
@@ -92,13 +92,7 @@ contract MockUniswapPool is IUniswapV3Pool {
external
view
override
- returns (
- uint128 _liquidity,
- uint256 feeGrowthInside0LastX128,
- uint256 feeGrowthInside1LastX128,
- uint128 tokensOwed0,
- uint128 tokensOwed1
- )
+ returns (uint128 _liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1)
{}
function observations(uint256 index)
@@ -122,11 +116,7 @@ contract MockUniswapPool is IUniswapV3Pool {
returns (uint128 amount0, uint128 amount1)
{}
- function burn(int24 tickLower, int24 tickUpper, uint128 amount)
- external
- override
- returns (uint256 amount0, uint256 amount1)
- {}
+ function burn(int24 tickLower, int24 tickUpper, uint128 amount) external override returns (uint256 amount0, uint256 amount1) {}
function swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, bytes calldata data)
external
From 1075484cd6cae3b1cdfec618763825c04a058b60 Mon Sep 17 00:00:00 2001
From: Eidolon <92181746+imrtlfarm@users.noreply.github.com>
Date: Thu, 11 Jan 2024 04:40:18 -0800
Subject: [PATCH 42/64] Update README.md
---
README.md | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index ba1fdbf..9548b78 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,22 @@
# OptionsToken
-An options token representing the right to purchase the underlying token at an oracle-specified rate. It's similar to a call option but with a variable strike price that's always at a certain discount to the market price.
-It also has no expiry date.
+An options token representing the right to exercise any one of the whitelisted exercise contracts, allowing the user to receive different forms of discounted assets in return for the appropriate payment. The option does not expire. The options token receives user input and a specified exercise contract address, passing through to the exercise contract to execute the option. We fork https://github.com/timeless-fi/options-token, which is a simple implementation of an option for discounted tokens at an adjusted oracle rate. Here, we divorce the exercise functionality from the token contract, and allow an admin to whitelist and fund exercise contracts as the desired. We also implement more potential oracle types, and make several other minor changes.
+
+We want to ensure there are no attacks on pricing in DiscountExercise, atomically or otherwise, in each oracle implementation. We want to ensure users will never pay more than maxPaymentAmount. When properly specified, this should ensure users experience no more deviation in price than they specify.
+
+Given the nature of this token, it is fine for the admin to have some centralized permissions (admin can mint tokens, admin is the one who funds exercise contracts, etc). The team is responsible for refilling the exercise contracts. We limit the amount of funds we leave in an exercise contract at any given time to limit risk.
+
+# Flow of an Option Token Exercise (Ex. Discount Exercise)
+
+The user will always interact with the OptionsToken itself, and never with any exercise contract directly.
+
+1. The user approves OptionsToken the amount of WETH they wish to spend
+2. User calls exercise on the OptionsToken, specifying their desired exercise contract and encoding exercise parameters
+3. OptionsToken validates the exercise contract, decodes the parameters for the exercise function on the exercise contract of choice, and calls said function. In the case of DiscountExercise, the params are maxPaymentAmount and deadline.
+4. oTokens are burnt, WETH is sent to the treasury, and underlyingTokens, discounted by the multiplier, are sent to the user exercising
+ a. Can be priced using balancer, thena, univ3 twap oracles
+ b. Reverts above maxPaymentAmount or past deadline
+
## Installation
From 9aa8a91e6788ada2354682e43e781e1c691af574 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 23 Jan 2024 13:41:49 -0300
Subject: [PATCH 43/64] audit review
---
hardhat.config.ts | 17 +-
package-lock.json | 485 +++++---------------------
package.json | 3 +
script/DeployThena.s.sol | 72 ----
src/OptionsToken.sol | 7 +-
src/exercise/BaseExercise.sol | 25 +-
src/exercise/DiscountExercise.sol | 44 ++-
src/interfaces/IOracle.sol | 3 +
src/oracles/BalancerOracle.sol | 24 ++
src/oracles/ThenaOracle.sol | 20 +-
src/oracles/UniswapV3Oracle.sol | 18 +-
test/OptionsToken.t.sol | 7 +-
test/mocks/MockBalancerTwapOracle.sol | 8 +-
test/mocks/OptionsTokenV2.sol | 195 +++++++++++
test_hardhat/OptionsToken.ts | 51 +++
15 files changed, 475 insertions(+), 504 deletions(-)
delete mode 100644 script/DeployThena.s.sol
create mode 100644 test/mocks/OptionsTokenV2.sol
create mode 100644 test_hardhat/OptionsToken.ts
diff --git a/hardhat.config.ts b/hardhat.config.ts
index 860e869..b7c2f29 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -2,6 +2,11 @@ import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
import '@openzeppelin/hardhat-upgrades';
import "@nomicfoundation/hardhat-foundry";
+import glob from "glob";
+import {TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS} from "hardhat/builtin-tasks/task-names";
+import path from "path";
+import { subtask } from "hardhat/config";
+
import { config as dotenvConfig } from "dotenv";
dotenvConfig();
@@ -16,7 +21,8 @@ const config: HardhatUserConfig = {
}
},
paths: {
- sources: "./src"
+ sources: "./src",
+ tests: "./test_hardhat",
},
networks: {
op: {
@@ -37,4 +43,13 @@ const config: HardhatUserConfig = {
},
};
+subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS).setAction(async (_, hre, runSuper) => {
+ const paths = await runSuper();
+
+ const otherDirectoryGlob = path.join(hre.config.paths.root, "test", "**", "*.sol");
+ const otherPaths = glob.sync(otherDirectoryGlob);
+
+ return [...paths, ...otherPaths];
+});
+
export default config;
diff --git a/package-lock.json b/package-lock.json
index 21f914d..6d88e8c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,9 @@
"name": "options-token",
"version": "1.0.0",
"license": "AGPL-3.0",
+ "dependencies": {
+ "@nomicfoundation/hardhat-network-helpers": "^1.0.10"
+ },
"devDependencies": {
"@nomicfoundation/hardhat-ethers": "^3.0.5",
"@nomicfoundation/hardhat-foundry": "^1.1.1",
@@ -89,14 +92,12 @@
"node_modules/@chainsafe/as-sha256": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz",
- "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==",
- "dev": true
+ "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg=="
},
"node_modules/@chainsafe/persistent-merkle-tree": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz",
"integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==",
- "dev": true,
"dependencies": {
"@chainsafe/as-sha256": "^0.3.1"
}
@@ -105,7 +106,6 @@
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz",
"integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==",
- "dev": true,
"dependencies": {
"@chainsafe/as-sha256": "^0.3.1",
"@chainsafe/persistent-merkle-tree": "^0.4.2",
@@ -116,7 +116,7 @@
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
@@ -196,7 +196,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
"integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -223,7 +222,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
"integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -248,7 +246,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
"integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -271,7 +268,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
"integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -294,7 +290,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
"integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -313,7 +308,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz",
"integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -333,7 +327,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
"integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -354,7 +347,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
"integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -373,7 +365,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
"integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -392,7 +383,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz",
"integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -420,7 +410,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
"integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -447,7 +436,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz",
"integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -477,7 +465,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz",
"integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -507,14 +494,12 @@
"node_modules/@ethersproject/json-wallets/node_modules/aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
- "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==",
- "dev": true
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
},
"node_modules/@ethersproject/keccak256": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
"integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -534,7 +519,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
"integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -550,7 +534,6 @@
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
"integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -569,7 +552,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz",
"integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -589,7 +571,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
"integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -608,7 +589,6 @@
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz",
"integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -646,7 +626,6 @@
"version": "7.4.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
"integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "dev": true,
"engines": {
"node": ">=8.3.0"
},
@@ -667,7 +646,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
"integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -687,7 +665,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
"integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -707,7 +684,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz",
"integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -728,7 +704,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
"integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -752,7 +727,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz",
"integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -776,7 +750,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
"integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -797,7 +770,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
"integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -824,7 +796,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz",
"integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -845,7 +816,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz",
"integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -878,7 +848,6 @@
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
"integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -901,7 +870,6 @@
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz",
"integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -924,7 +892,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz",
"integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==",
- "dev": true,
"engines": {
"node": ">=14"
}
@@ -933,7 +900,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"engines": {
"node": ">=6.0.0"
@@ -943,14 +910,14 @@
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
@@ -961,7 +928,6 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz",
"integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==",
- "dev": true,
"dependencies": {
"ethereumjs-abi": "^0.6.8",
"ethereumjs-util": "^6.2.1",
@@ -977,7 +943,6 @@
"version": "4.11.6",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
"integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
- "dev": true,
"dependencies": {
"@types/node": "*"
}
@@ -985,14 +950,12 @@
"node_modules/@metamask/eth-sig-util/node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
"integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
- "dev": true,
"dependencies": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
@@ -1031,7 +994,6 @@
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
"integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -1081,7 +1043,6 @@
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz",
"integrity": "sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-common": "4.0.2",
"@nomicfoundation/ethereumjs-rlp": "5.0.2",
@@ -1099,7 +1060,6 @@
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
"integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -1147,7 +1107,6 @@
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz",
"integrity": "sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-block": "5.0.2",
"@nomicfoundation/ethereumjs-common": "4.0.2",
@@ -1171,7 +1130,6 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz",
"integrity": "sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-util": "9.0.2",
"crc-32": "^1.2.0"
@@ -1181,7 +1139,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz",
"integrity": "sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-block": "5.0.2",
"@nomicfoundation/ethereumjs-rlp": "5.0.2",
@@ -1198,7 +1155,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz",
"integrity": "sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==",
- "dev": true,
"dependencies": {
"@ethersproject/providers": "^5.7.1",
"@nomicfoundation/ethereumjs-common": "4.0.2",
@@ -1217,7 +1173,6 @@
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz",
"integrity": "sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==",
- "dev": true,
"bin": {
"rlp": "bin/rlp"
},
@@ -1229,7 +1184,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz",
"integrity": "sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-common": "4.0.2",
"@nomicfoundation/ethereumjs-rlp": "5.0.2",
@@ -1243,7 +1197,6 @@
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
"integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -1291,7 +1244,6 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz",
"integrity": "sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-rlp": "5.0.2",
"@nomicfoundation/ethereumjs-util": "9.0.2",
@@ -1307,7 +1259,6 @@
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz",
"integrity": "sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==",
- "dev": true,
"dependencies": {
"@chainsafe/ssz": "^0.9.2",
"@ethersproject/providers": "^5.7.2",
@@ -1324,7 +1275,6 @@
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz",
"integrity": "sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==",
- "dev": true,
"dependencies": {
"@chainsafe/ssz": "^0.10.0",
"@nomicfoundation/ethereumjs-rlp": "5.0.2",
@@ -1338,7 +1288,6 @@
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz",
"integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==",
- "dev": true,
"dependencies": {
"@chainsafe/as-sha256": "^0.3.1"
}
@@ -1347,7 +1296,6 @@
"version": "0.10.2",
"resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz",
"integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==",
- "dev": true,
"dependencies": {
"@chainsafe/as-sha256": "^0.3.1",
"@chainsafe/persistent-merkle-tree": "^0.5.0"
@@ -1357,7 +1305,6 @@
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz",
"integrity": "sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-block": "5.0.2",
"@nomicfoundation/ethereumjs-blockchain": "7.0.2",
@@ -1426,8 +1373,6 @@
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz",
"integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==",
- "dev": true,
- "peer": true,
"dependencies": {
"ethereumjs-util": "^7.1.4"
},
@@ -1485,7 +1430,6 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz",
"integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==",
- "dev": true,
"engines": {
"node": ">= 12"
},
@@ -1509,7 +1453,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"optional": true,
"os": [
"darwin"
@@ -1525,7 +1468,6 @@
"cpu": [
"x64"
],
- "dev": true,
"optional": true,
"os": [
"darwin"
@@ -1541,7 +1483,6 @@
"cpu": [
"x64"
],
- "dev": true,
"optional": true,
"os": [
"freebsd"
@@ -1557,7 +1498,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"optional": true,
"os": [
"linux"
@@ -1573,7 +1513,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"optional": true,
"os": [
"linux"
@@ -1589,7 +1528,6 @@
"cpu": [
"x64"
],
- "dev": true,
"optional": true,
"os": [
"linux"
@@ -1605,7 +1543,6 @@
"cpu": [
"x64"
],
- "dev": true,
"optional": true,
"os": [
"linux"
@@ -1621,7 +1558,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"optional": true,
"os": [
"win32"
@@ -1637,7 +1573,6 @@
"cpu": [
"ia32"
],
- "dev": true,
"optional": true,
"os": [
"win32"
@@ -1653,7 +1588,6 @@
"cpu": [
"x64"
],
- "dev": true,
"optional": true,
"os": [
"win32"
@@ -1965,7 +1899,6 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz",
"integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==",
- "dev": true,
"funding": {
"url": "https://paulmillr.com/funding/"
}
@@ -2029,7 +1962,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
"integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==",
- "dev": true,
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -2044,14 +1976,12 @@
"node_modules/@sentry/core/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/hub": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz",
"integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==",
- "dev": true,
"dependencies": {
"@sentry/types": "5.30.0",
"@sentry/utils": "5.30.0",
@@ -2064,14 +1994,12 @@
"node_modules/@sentry/hub/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/minimal": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz",
"integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==",
- "dev": true,
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/types": "5.30.0",
@@ -2084,14 +2012,12 @@
"node_modules/@sentry/minimal/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/node": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz",
"integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==",
- "dev": true,
"dependencies": {
"@sentry/core": "5.30.0",
"@sentry/hub": "5.30.0",
@@ -2110,14 +2036,12 @@
"node_modules/@sentry/node/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/tracing": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz",
"integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==",
- "dev": true,
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -2132,14 +2056,12 @@
"node_modules/@sentry/tracing/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/types": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz",
"integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -2148,7 +2070,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz",
"integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==",
- "dev": true,
"dependencies": {
"@sentry/types": "5.30.0",
"tslib": "^1.9.3"
@@ -2160,8 +2081,7 @@
"node_modules/@sentry/utils/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@smithy/types": {
"version": "2.8.0",
@@ -2195,28 +2115,28 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/@tsconfig/node12": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/@tsconfig/node14": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/@tsconfig/node16": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
"integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/@typechain/ethers-v6": {
@@ -2255,7 +2175,6 @@
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz",
"integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==",
- "dev": true,
"dependencies": {
"@types/node": "*"
}
@@ -2311,8 +2230,7 @@
"node_modules/@types/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==",
- "dev": true
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw=="
},
"node_modules/@types/minimatch": {
"version": "5.1.2",
@@ -2332,7 +2250,6 @@
"version": "20.10.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz",
"integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==",
- "dev": true,
"dependencies": {
"undici-types": "~5.26.4"
}
@@ -2341,7 +2258,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
- "dev": true,
"dependencies": {
"@types/node": "*"
}
@@ -2364,7 +2280,6 @@
"version": "2.3.15",
"resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz",
"integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==",
- "dev": true,
"dependencies": {
"@types/node": "*",
"safe-buffer": "~5.1.1"
@@ -2373,14 +2288,12 @@
"node_modules/@types/readable-stream/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/@types/secp256k1": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
"integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
- "dev": true,
"dependencies": {
"@types/node": "*"
}
@@ -2396,7 +2309,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz",
"integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==",
- "dev": true,
"dependencies": {
"buffer": "^6.0.3",
"catering": "^2.1.0",
@@ -2414,7 +2326,7 @@
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"bin": {
"acorn": "bin/acorn"
@@ -2427,7 +2339,7 @@
"version": "8.3.1",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz",
"integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"engines": {
"node": ">=0.4.0"
@@ -2447,7 +2359,6 @@
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
"integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
- "dev": true,
"engines": {
"node": ">=0.3.0"
}
@@ -2462,7 +2373,6 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
"dependencies": {
"debug": "4"
},
@@ -2474,7 +2384,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -2539,7 +2448,6 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -2548,7 +2456,6 @@
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
"integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
"dependencies": {
"type-fest": "^0.21.3"
},
@@ -2563,7 +2470,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -2572,7 +2478,6 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -2591,7 +2496,6 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -2604,14 +2508,13 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/array-back": {
"version": "3.1.0",
@@ -2781,14 +2684,12 @@
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/base-x": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
- "dev": true,
"dependencies": {
"safe-buffer": "^5.0.1"
}
@@ -2797,7 +2698,6 @@
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -2816,14 +2716,12 @@
"node_modules/bech32": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
- "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==",
- "dev": true
+ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
},
"node_modules/bigint-crypto-utils": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz",
"integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==",
- "dev": true,
"engines": {
"node": ">=14.0.0"
}
@@ -2832,7 +2730,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -2840,20 +2737,17 @@
"node_modules/blakejs": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
- "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==",
- "dev": true
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"node_modules/bn.js": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -2863,7 +2757,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -2874,14 +2767,12 @@
"node_modules/brorand": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "dev": true
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"node_modules/browser-level": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz",
"integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==",
- "dev": true,
"dependencies": {
"abstract-level": "^1.0.2",
"catering": "^2.1.1",
@@ -2892,14 +2783,12 @@
"node_modules/browser-stdout": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
},
"node_modules/browserify-aes": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "dev": true,
"dependencies": {
"buffer-xor": "^1.0.3",
"cipher-base": "^1.0.0",
@@ -2913,7 +2802,6 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
- "dev": true,
"dependencies": {
"base-x": "^3.0.2"
}
@@ -2922,7 +2810,6 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
"integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
- "dev": true,
"dependencies": {
"bs58": "^4.0.0",
"create-hash": "^1.1.0",
@@ -2933,7 +2820,6 @@
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -2956,20 +2842,17 @@
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"node_modules/buffer-xor": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
- "dev": true
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
},
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -2992,7 +2875,6 @@
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -3004,7 +2886,6 @@
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz",
"integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==",
- "dev": true,
"engines": {
"node": ">= 0.8.0"
}
@@ -3020,7 +2901,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz",
"integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -3074,7 +2954,6 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -3111,7 +2990,6 @@
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -3137,14 +3015,12 @@
"node_modules/ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
- "dev": true
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
},
"node_modules/cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "dev": true,
"dependencies": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -3154,7 +3030,6 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz",
"integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==",
- "dev": true,
"hasInstallScript": true,
"dependencies": {
"abstract-level": "^1.0.2",
@@ -3171,7 +3046,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -3197,7 +3071,6 @@
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -3208,7 +3081,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -3217,7 +3089,6 @@
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -3231,7 +3102,6 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
"dependencies": {
"color-name": "1.1.3"
}
@@ -3239,8 +3109,7 @@
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/colors": {
"version": "1.4.0",
@@ -3267,8 +3136,7 @@
"node_modules/command-exists": {
"version": "1.2.9",
"resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
- "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
- "dev": true
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
},
"node_modules/command-line-args": {
"version": "5.2.1",
@@ -3325,8 +3193,7 @@
"node_modules/commander": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
- "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==",
- "dev": true
+ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
},
"node_modules/compare-versions": {
"version": "6.1.0",
@@ -3337,8 +3204,7 @@
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/concat-stream": {
"version": "1.6.2",
@@ -3393,7 +3259,6 @@
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
- "dev": true,
"engines": {
"node": ">= 0.6"
}
@@ -3409,7 +3274,6 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
- "dev": true,
"bin": {
"crc32": "bin/crc32.njs"
},
@@ -3421,7 +3285,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "dev": true,
"dependencies": {
"cipher-base": "^1.0.1",
"inherits": "^2.0.1",
@@ -3434,7 +3297,6 @@
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "dev": true,
"dependencies": {
"cipher-base": "^1.0.3",
"create-hash": "^1.1.0",
@@ -3448,7 +3310,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/crypt": {
@@ -3472,7 +3334,6 @@
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
"dependencies": {
"ms": "2.1.2"
},
@@ -3489,7 +3350,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -3571,7 +3431,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -3595,7 +3454,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true,
"engines": {
"node": ">=0.3.1"
}
@@ -3642,7 +3500,6 @@
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
"integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
- "dev": true,
"dependencies": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
@@ -3656,20 +3513,17 @@
"node_modules/elliptic/node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/enquirer": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
"integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
- "dev": true,
"dependencies": {
"ansi-colors": "^4.1.1",
"strip-ansi": "^6.0.1"
@@ -3682,7 +3536,6 @@
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -3784,7 +3637,6 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -3793,7 +3645,6 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
"engines": {
"node": ">=0.8.0"
}
@@ -4009,7 +3860,6 @@
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
"integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
"dependencies": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -4032,7 +3882,6 @@
"version": "0.6.8",
"resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
"integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
- "dev": true,
"dependencies": {
"bn.js": "^4.11.8",
"ethereumjs-util": "^6.0.0"
@@ -4042,7 +3891,6 @@
"version": "4.11.6",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
"integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
- "dev": true,
"dependencies": {
"@types/node": "*"
}
@@ -4050,14 +3898,12 @@
"node_modules/ethereumjs-abi/node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/ethereumjs-abi/node_modules/ethereumjs-util": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
"integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
- "dev": true,
"dependencies": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
@@ -4072,7 +3918,6 @@
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
"integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
- "dev": true,
"dependencies": {
"@types/bn.js": "^5.1.0",
"bn.js": "^5.1.2",
@@ -4144,7 +3989,6 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
"integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
- "dev": true,
"dependencies": {
"is-hex-prefixed": "1.0.0",
"strip-hex-prefix": "1.0.0"
@@ -4158,7 +4002,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
"integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "dev": true,
"dependencies": {
"md5.js": "^1.3.4",
"safe-buffer": "^5.1.1"
@@ -4215,7 +4058,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -4240,7 +4082,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
- "dev": true,
"dependencies": {
"locate-path": "^2.0.0"
},
@@ -4252,7 +4093,6 @@
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
"integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true,
"bin": {
"flat": "cli.js"
}
@@ -4261,7 +4101,6 @@
"version": "1.15.4",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
"integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -4303,8 +4142,7 @@
"node_modules/fp-ts": {
"version": "1.19.3",
"resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz",
- "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==",
- "dev": true
+ "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg=="
},
"node_modules/fs-extra": {
"version": "9.1.0",
@@ -4332,14 +4170,12 @@
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
@@ -4379,8 +4215,7 @@
"node_modules/functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
- "dev": true
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
},
"node_modules/functions-have-names": {
"version": "1.2.3",
@@ -4395,7 +4230,6 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
@@ -4469,7 +4303,6 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -4489,7 +4322,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -4575,8 +4407,7 @@
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
"node_modules/handlebars": {
"version": "4.7.8",
@@ -4614,7 +4445,6 @@
"version": "2.19.4",
"resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.19.4.tgz",
"integrity": "sha512-fTQJpqSt3Xo9Mn/WrdblNGAfcANM6XC3tAEi6YogB4s02DmTf93A8QsGb8uR0KR8TFcpcS8lgiW4ugAIYpnbrQ==",
- "dev": true,
"dependencies": {
"@ethersproject/abi": "^5.1.2",
"@metamask/eth-sig-util": "^4.0.0",
@@ -4700,7 +4530,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
"integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -4712,7 +4541,6 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
"integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -4729,7 +4557,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
"integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -4745,7 +4572,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
"integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
- "dev": true,
"dependencies": {
"@noble/hashes": "1.2.0",
"@noble/secp256k1": "1.7.1",
@@ -4757,7 +4583,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
- "dev": true,
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@@ -4771,7 +4596,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
@@ -4780,7 +4604,6 @@
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true,
"engines": {
"node": ">= 4.0.0"
}
@@ -4789,7 +4612,6 @@
"version": "7.5.9",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
- "dev": true,
"engines": {
"node": ">=8.3.0"
},
@@ -4819,7 +4641,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -4879,7 +4700,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
"integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "dev": true,
"dependencies": {
"inherits": "^2.0.4",
"readable-stream": "^3.6.0",
@@ -4893,7 +4713,6 @@
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "dev": true,
"dependencies": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
@@ -4915,7 +4734,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
"bin": {
"he": "bin/he"
}
@@ -4931,7 +4749,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
"integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "dev": true,
"dependencies": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
@@ -4958,7 +4775,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
@@ -4991,7 +4807,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -5004,7 +4819,6 @@
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -5016,7 +4830,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -5045,14 +4858,12 @@
"node_modules/immutable": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
- "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
- "dev": true
+ "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA=="
},
"node_modules/indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -5061,7 +4872,6 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -5070,8 +4880,7 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
"version": "1.3.8",
@@ -5108,7 +4917,6 @@
"version": "1.10.4",
"resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz",
"integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==",
- "dev": true,
"dependencies": {
"fp-ts": "^1.0.0"
}
@@ -5143,7 +4951,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -5171,7 +4978,6 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
"integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -5221,7 +5027,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -5240,7 +5045,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -5252,7 +5056,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
"integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==",
- "dev": true,
"engines": {
"node": ">=6.5.0",
"npm": ">=3"
@@ -5274,7 +5077,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
"engines": {
"node": ">=0.12.0"
}
@@ -5298,7 +5100,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
"integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -5380,7 +5181,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -5433,7 +5233,6 @@
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz",
"integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==",
- "dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/js-sdsl"
@@ -5442,14 +5241,12 @@
"node_modules/js-sha3": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
- "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
- "dev": true
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
"dependencies": {
"argparse": "^2.0.1"
},
@@ -5491,7 +5288,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
"integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
- "dev": true,
"hasInstallScript": true,
"dependencies": {
"node-addon-api": "^2.0.0",
@@ -5516,7 +5312,6 @@
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
"integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
- "dev": true,
"optionalDependencies": {
"graceful-fs": "^4.1.9"
}
@@ -5525,7 +5320,6 @@
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz",
"integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==",
- "dev": true,
"dependencies": {
"browser-level": "^1.0.1",
"classic-level": "^1.2.0"
@@ -5542,7 +5336,6 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz",
"integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==",
- "dev": true,
"engines": {
"node": ">=12"
}
@@ -5551,7 +5344,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz",
"integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==",
- "dev": true,
"dependencies": {
"buffer": "^6.0.3",
"module-error": "^1.0.1"
@@ -5578,7 +5370,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
- "dev": true,
"dependencies": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -5590,8 +5381,7 @@
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash.camelcase": {
"version": "4.3.0",
@@ -5624,7 +5414,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -5640,7 +5429,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -5655,7 +5443,6 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -5671,7 +5458,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -5682,14 +5468,12 @@
"node_modules/log-symbols/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/log-symbols/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -5698,7 +5482,6 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -5719,14 +5502,12 @@
"node_modules/lru_map": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
- "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==",
- "dev": true
+ "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ=="
},
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
"dependencies": {
"yallist": "^3.0.2"
}
@@ -5735,7 +5516,7 @@
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/markdown-table": {
@@ -5749,7 +5530,6 @@
"version": "0.7.9",
"resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz",
"integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==",
- "dev": true,
"engines": {
"node": ">=8.9.0"
}
@@ -5758,7 +5538,6 @@
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "dev": true,
"dependencies": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
@@ -5769,7 +5548,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz",
"integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==",
- "dev": true,
"dependencies": {
"abstract-level": "^1.0.0",
"functional-red-black-tree": "^1.0.1",
@@ -5783,7 +5561,6 @@
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
"integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
- "dev": true,
"engines": {
"node": ">= 0.10.0"
}
@@ -5843,20 +5620,17 @@
"node_modules/minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"node_modules/minimalistic-crypto-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "dev": true
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -5890,7 +5664,6 @@
"version": "0.38.5",
"resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz",
"integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==",
- "dev": true,
"dependencies": {
"obliterator": "^2.0.0"
}
@@ -5899,7 +5672,6 @@
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
"integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
- "dev": true,
"dependencies": {
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
@@ -5939,7 +5711,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -5948,7 +5719,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -5957,7 +5727,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -5969,7 +5738,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -5985,7 +5753,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -5994,7 +5761,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -6009,7 +5775,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
- "dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -6020,14 +5785,12 @@
"node_modules/mocha/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/mocha/node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -6042,7 +5805,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -6057,7 +5819,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -6066,7 +5827,6 @@
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6081,7 +5841,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz",
"integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==",
- "dev": true,
"engines": {
"node": ">=10"
}
@@ -6089,14 +5848,12 @@
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/nanoid": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
"integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
- "dev": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -6107,8 +5864,7 @@
"node_modules/napi-macros": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz",
- "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==",
- "dev": true
+ "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g=="
},
"node_modules/neo-async": {
"version": "2.6.2",
@@ -6120,8 +5876,7 @@
"node_modules/node-addon-api": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
- "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==",
- "dev": true
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
},
"node_modules/node-emoji": {
"version": "1.11.0",
@@ -6157,7 +5912,6 @@
"version": "4.7.1",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz",
"integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==",
- "dev": true,
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
@@ -6190,7 +5944,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6266,14 +6019,12 @@
"node_modules/obliterator": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz",
- "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==",
- "dev": true
+ "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ=="
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
"dependencies": {
"wrappy": "1"
}
@@ -6307,7 +6058,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6316,7 +6066,6 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
"dependencies": {
"p-try": "^1.0.0"
},
@@ -6328,7 +6077,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
- "dev": true,
"dependencies": {
"p-limit": "^1.1.0"
},
@@ -6340,7 +6088,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
"integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dev": true,
"dependencies": {
"aggregate-error": "^3.0.0"
},
@@ -6355,7 +6102,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -6371,7 +6117,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -6380,7 +6125,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6388,8 +6132,7 @@
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/path-type": {
"version": "4.0.0",
@@ -6415,7 +6158,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
- "dev": true,
"dependencies": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
@@ -6431,7 +6173,6 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
"engines": {
"node": ">=8.6"
},
@@ -6548,7 +6289,6 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6568,7 +6308,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
"dependencies": {
"safe-buffer": "^5.1.0"
}
@@ -6577,7 +6316,6 @@
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dev": true,
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -6592,7 +6330,6 @@
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -6606,7 +6343,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -6697,7 +6433,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6706,7 +6441,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6715,7 +6449,6 @@
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
"integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
- "dev": true,
"dependencies": {
"path-parse": "^1.0.6"
},
@@ -6757,7 +6490,6 @@
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
"dependencies": {
"glob": "^7.1.3"
},
@@ -6769,7 +6501,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "dev": true,
"dependencies": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
@@ -6779,7 +6510,6 @@
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
"integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
- "dev": true,
"dependencies": {
"bn.js": "^5.2.0"
},
@@ -6815,7 +6545,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz",
"integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6837,8 +6566,7 @@
"node_modules/rustbn.js": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz",
- "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==",
- "dev": true
+ "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA=="
},
"node_modules/safe-array-concat": {
"version": "1.0.1",
@@ -6868,7 +6596,6 @@
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6901,8 +6628,7 @@
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sc-istanbul": {
"version": "0.4.6",
@@ -7018,14 +6744,12 @@
"node_modules/scrypt-js": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
- "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
- "dev": true
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
},
"node_modules/secp256k1": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
"integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
- "dev": true,
"hasInstallScript": true,
"dependencies": {
"elliptic": "^6.5.4",
@@ -7040,7 +6764,6 @@
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
"bin": {
"semver": "bin/semver.js"
}
@@ -7049,7 +6772,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
"dependencies": {
"randombytes": "^2.1.0"
}
@@ -7086,20 +6808,17 @@
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
- "dev": true
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
},
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/sha.js": {
"version": "2.4.11",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "dev": true,
"dependencies": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -7238,7 +6957,6 @@
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz",
"integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==",
- "dev": true,
"dependencies": {
"command-exists": "^1.2.8",
"commander": "3.0.2",
@@ -7261,7 +6979,6 @@
"version": "0.30.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
"integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==",
- "dev": true,
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^2.1.0",
@@ -7274,7 +6991,6 @@
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
"integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
- "dev": true,
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
@@ -7283,7 +6999,6 @@
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
"bin": {
"semver": "bin/semver"
}
@@ -7431,7 +7146,6 @@
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -7441,7 +7155,6 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7457,7 +7170,6 @@
"version": "0.1.10",
"resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
"integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
- "dev": true,
"dependencies": {
"type-fest": "^0.7.1"
},
@@ -7469,7 +7181,6 @@
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
"integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -7478,7 +7189,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -7487,7 +7197,6 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
"dependencies": {
"safe-buffer": "~5.2.0"
}
@@ -7585,7 +7294,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -7597,7 +7305,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
"integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
- "dev": true,
"dependencies": {
"is-hex-prefixed": "1.0.0"
},
@@ -7610,7 +7317,6 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
"engines": {
"node": ">=8"
},
@@ -7622,7 +7328,6 @@
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -7782,7 +7487,6 @@
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
"dependencies": {
"os-tmpdir": "~1.0.2"
},
@@ -7794,7 +7498,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -7806,7 +7509,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true,
"engines": {
"node": ">=0.6"
}
@@ -7923,7 +7625,7 @@
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
@@ -7967,7 +7669,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"engines": {
"node": ">=0.3.1"
@@ -7982,20 +7684,17 @@
"node_modules/tsort": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
- "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==",
- "dev": true
+ "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw=="
},
"node_modules/tweetnacl": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
- "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
- "dev": true
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
},
"node_modules/tweetnacl-util": {
"version": "0.15.1",
"resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
- "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==",
- "dev": true
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
},
"node_modules/type-check": {
"version": "0.3.2",
@@ -8024,7 +7723,6 @@
"version": "0.21.3",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
"integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -8202,7 +7900,7 @@
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"bin": {
"tsc": "bin/tsc",
@@ -8255,7 +7953,6 @@
"version": "5.28.2",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz",
"integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==",
- "dev": true,
"dependencies": {
"@fastify/busboy": "^2.0.0"
},
@@ -8266,8 +7963,7 @@
"node_modules/undici-types": {
"version": "5.26.5",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
"node_modules/unfetch": {
"version": "4.2.0",
@@ -8289,7 +7985,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -8314,14 +8009,12 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true,
"bin": {
"uuid": "dist/bin/uuid"
}
@@ -8330,7 +8023,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"node_modules/web3-utils": {
@@ -8500,14 +8193,12 @@
"node_modules/workerpool": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
- "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
- "dev": true
+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw=="
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -8524,7 +8215,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8539,7 +8229,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8550,14 +8239,12 @@
"node_modules/wrap-ansi/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -8566,7 +8253,6 @@
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -8579,8 +8265,7 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/ws": {
"version": "8.5.0",
@@ -8607,7 +8292,6 @@
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
"engines": {
"node": ">=10"
}
@@ -8615,14 +8299,12 @@
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
},
"node_modules/yargs": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
"dependencies": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -8640,7 +8322,6 @@
"version": "20.2.4",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true,
"engines": {
"node": ">=10"
}
@@ -8649,7 +8330,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
"integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dev": true,
"dependencies": {
"camelcase": "^6.0.0",
"decamelize": "^4.0.0",
@@ -8664,7 +8344,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -8673,7 +8352,6 @@
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -8687,7 +8365,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"engines": {
"node": ">=6"
@@ -8697,7 +8375,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
"engines": {
"node": ">=10"
},
diff --git a/package.json b/package.json
index 0eac360..58f10dd 100644
--- a/package.json
+++ b/package.json
@@ -20,5 +20,8 @@
"dotenv": "^16.3.1",
"ethers": "^6.9.2",
"hardhat": "^2.19.4"
+ },
+ "dependencies": {
+ "@nomicfoundation/hardhat-network-helpers": "^1.0.10"
}
}
diff --git a/script/DeployThena.s.sol b/script/DeployThena.s.sol
deleted file mode 100644
index a3ce881..0000000
--- a/script/DeployThena.s.sol
+++ /dev/null
@@ -1,72 +0,0 @@
-// SPDX-License-Identifier: AGPL-3.0
-pragma solidity ^0.8.13;
-
-import {Script} from "forge-std/Script.sol";
-import {ERC20} from "solmate/tokens/ERC20.sol";
-import {IERC20} from "oz/token/ERC20/IERC20.sol";
-import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
-
-import {OptionsToken} from "../src/OptionsToken.sol";
-import {DiscountExercise} from "../src/exercise/DiscountExercise.sol";
-import {ThenaOracle, IThenaPair} from "../src/oracles/ThenaOracle.sol";
-import {IERC20Mintable} from "../src/interfaces/IERC20Mintable.sol";
-import {IBalancerTwapOracle} from "../src/interfaces/IBalancerTwapOracle.sol";
-
-contract DeployScript is Script {
- constructor() {}
-
- function run() public returns (OptionsToken optionsToken, DiscountExercise exercise, ThenaOracle oracle) {
- uint256 deployerPrivateKey = uint256(vm.envBytes32("PRIVATE_KEY"));
-
- vm.startBroadcast(deployerPrivateKey);
-
- {
- IThenaPair thenaPair = IThenaPair(vm.envAddress("BALANCER_POOL"));
- address owner = vm.envAddress("OWNER");
- address targetToken = vm.envAddress("ORACLE_TOKEN");
- uint56 secs = uint56(vm.envUint("ORACLE_SECS"));
- uint128 minPrice = uint128(vm.envUint("ORACLE_MIN_PRICE"));
-
- oracle = new ThenaOracle(thenaPair, targetToken, owner, secs, minPrice);
- }
-
- {
- string memory name = vm.envString("OT_NAME");
- string memory symbol = vm.envString("OT_SYMBOL");
- address owner = vm.envAddress("OWNER");
- address tokenAdmin = vm.envAddress("OT_TOKEN_ADMIN");
-
- address implementation = address(new OptionsToken());
- ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), "");
- optionsToken = OptionsToken(address(proxy));
- optionsToken.initialize(name, symbol, tokenAdmin);
- optionsToken.transferOwnership(owner);
- }
-
- {
- address owner = vm.envAddress("OWNER");
- uint256 multiplier = vm.envUint("MULTIPLIER");
-
- address[] memory feeRecipients = vm.envAddress("OT_FEE_RECIPIENTS", ",");
- uint256[] memory feeBps = vm.envUint("OT_FEE_BPS", ",");
-
- address paymentToken = vm.envAddress("OT_PAYMENT_TOKEN");
- address underlyingToken = vm.envAddress("OT_UNDERLYING_TOKEN");
-
- exercise = new DiscountExercise(
- optionsToken,
- owner,
- IERC20(paymentToken),
- IERC20(underlyingToken),
- oracle,
- multiplier,
- feeRecipients,
- feeBps
- );
- }
-
- optionsToken.setExerciseContract(address(exercise), true);
-
- vm.stopBroadcast();
- }
-}
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index e4df922..d51db05 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -46,6 +46,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
mapping(address => bool) public isExerciseContract;
uint256 public upgradeProposalTime;
+ address public nextImplementation;
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
@@ -158,8 +159,9 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
* @dev This function must be called prior to upgrading the implementation.
* It's required to wait UPGRADE_TIMELOCK seconds before executing the upgrade.
*/
- function initiateUpgradeCooldown() external onlyOwner {
+ function initiateUpgradeCooldown(address _nextImplementation) external onlyOwner {
upgradeProposalTime = block.timestamp;
+ nextImplementation = _nextImplementation;
}
/**
@@ -181,8 +183,9 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
* Only the owner can upgrade the implementation once the timelock
* has passed.
*/
- function _authorizeUpgrade(address) internal override onlyOwner {
+ function _authorizeUpgrade(address _nextImplementation) internal override onlyOwner {
require(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp, "Upgrade cooldown not initiated or still ongoing");
+ require(_nextImplementation == nextImplementation, "Incorrect implementation");
_clearUpgradeCooldown();
}
}
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index c172535..9de0cc6 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -14,6 +14,7 @@ abstract contract BaseExercise is IExercise, Owned {
error Exercise__NotOToken();
error Exercise__feeArrayLengthMismatch();
+ error Exercise__InvalidFeeAmounts();
event SetFees(address[] feeRecipients, uint256[] feeBPS);
event DistributeFees(address[] feeRecipients, uint256[] feeBPS, uint256 totalAmount);
@@ -31,10 +32,7 @@ abstract contract BaseExercise is IExercise, Owned {
constructor(IOptionsToken _oToken, address[] memory _feeRecipients, uint256[] memory _feeBPS) {
oToken = _oToken;
- if (_feeRecipients.length != _feeBPS.length) revert Exercise__feeArrayLengthMismatch();
- feeRecipients = _feeRecipients;
- feeBPS = _feeBPS;
- emit SetFees(_feeRecipients, _feeBPS);
+ _setFees(_feeRecipients, _feeBPS);
}
modifier onlyOToken() {
@@ -55,7 +53,16 @@ abstract contract BaseExercise is IExercise, Owned {
returns (uint256 paymentAmount, address, uint256, uint256);
function setFees(address[] memory _feeRecipients, uint256[] memory _feeBPS) external onlyOwner {
+ _setFees(_feeRecipients, _feeBPS);
+ }
+
+ function _setFees(address[] memory _feeRecipients, uint256[] memory _feeBPS) internal {
if (_feeRecipients.length != _feeBPS.length) revert Exercise__feeArrayLengthMismatch();
+ uint256 totalBPS = 0;
+ for (uint256 i = 0; i < _feeBPS.length; i++) {
+ totalBPS += _feeBPS[i];
+ }
+ if (totalBPS != FEE_DENOMINATOR) revert Exercise__InvalidFeeAmounts();
feeRecipients = _feeRecipients;
feeBPS = _feeBPS;
emit SetFees(_feeRecipients, _feeBPS);
@@ -64,24 +71,26 @@ abstract contract BaseExercise is IExercise, Owned {
/// @notice Distributes fees to the fee recipients from a token holder who has approved
/// @dev Sends the residual amount to the last fee recipient to avoid rounding errors
function distributeFeesFrom(uint256 totalAmount, IERC20 token, address from) internal virtual {
+ uint256 remaining = totalAmount;
for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransferFrom(from, feeRecipients[i], feeAmount);
- totalAmount -= feeAmount;
+ remaining -= feeAmount;
}
- token.safeTransferFrom(from, feeRecipients[feeRecipients.length - 1], totalAmount);
+ token.safeTransferFrom(from, feeRecipients[feeRecipients.length - 1], remaining);
emit DistributeFees(feeRecipients, feeBPS, totalAmount);
}
/// @notice Distributes fees to the fee recipients from token balance of exercise contract
/// @dev Sends the residual amount to the last fee recipient to avoid rounding errors
function distributeFees(uint256 totalAmount, IERC20 token) internal virtual {
+ uint256 remaining = totalAmount;
for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransfer(feeRecipients[i], feeAmount);
- totalAmount -= feeAmount;
+ remaining -= feeAmount;
}
- token.safeTransfer(feeRecipients[feeRecipients.length - 1], totalAmount);
+ token.safeTransfer(feeRecipients[feeRecipients.length - 1], remaining);
emit DistributeFees(feeRecipients, feeBPS, totalAmount);
}
}
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index c1b10bb..54f7dbb 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -29,6 +29,7 @@ contract DiscountExercise is BaseExercise {
error Exercise__SlippageTooHigh();
error Exercise__PastDeadline();
error Exercise__MultiplierOutOfRange();
+ error Exercise__InvalidOracle();
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
@@ -60,6 +61,10 @@ contract DiscountExercise is BaseExercise {
/// the options token. Uses 4 decimals.
uint256 public multiplier;
+ /// @notice The amount of payment tokens the user can claim
+ /// Used when the contract does not have enough tokens to pay the user
+ mapping (address => uint256) public credit;
+
constructor(
OptionsToken oToken_,
address owner_,
@@ -72,11 +77,11 @@ contract DiscountExercise is BaseExercise {
) BaseExercise(oToken_, feeRecipients_, feeBPS_) Owned(owner_) {
paymentToken = paymentToken_;
underlyingToken = underlyingToken_;
- oracle = oracle_;
- multiplier = multiplier_;
+
+ _setOracle(oracle_);
+ _setMultiplier(multiplier_);
emit SetOracle(oracle_);
- emit SetMultiplier(multiplier_);
}
/// External functions
@@ -97,11 +102,25 @@ contract DiscountExercise is BaseExercise {
return _exercise(from, amount, recipient, params);
}
+ function claim(address to) external {
+ uint256 amount = credit[msg.sender];
+ if (amount == 0) return;
+ credit[msg.sender] = 0;
+ underlyingToken.safeTransfer(to, amount);
+ }
+
/// Owner functions
/// @notice Sets the oracle contract. Only callable by the owner.
/// @param oracle_ The new oracle contract
function setOracle(IOracle oracle_) external onlyOwner {
+ _setOracle(oracle_);
+ }
+
+ function _setOracle(IOracle oracle_) internal {
+ (address paymentToken_, address underlyingToken_) = oracle_.getTokens();
+ if (paymentToken_ != address(paymentToken) || underlyingToken_ != address(underlyingToken))
+ revert Exercise__InvalidOracle();
oracle = oracle_;
emit SetOracle(oracle_);
}
@@ -109,6 +128,10 @@ contract DiscountExercise is BaseExercise {
/// @notice Sets the discount multiplier.
/// @param multiplier_ The new multiplier
function setMultiplier(uint256 multiplier_) external onlyOwner {
+ _setMultiplier(multiplier_);
+ }
+
+ function _setMultiplier(uint256 multiplier_) internal {
if (
multiplier_ > MULTIPLIER_DENOM * 2 // over 200%
|| multiplier_ < MULTIPLIER_DENOM / 10 // under 10%
@@ -138,16 +161,27 @@ contract DiscountExercise is BaseExercise {
// transfer payment tokens from user to the set receivers
distributeFeesFrom(paymentAmount, paymentToken, from);
// transfer underlying tokens to recipient
- underlyingToken.safeTransfer(recipient, amount);
+ _pay(recipient, amount);
emit Exercised(from, recipient, amount, paymentAmount);
}
+ function _pay(address to, uint256 amount) internal returns (uint256 remainingAmount) {
+ uint256 balance = underlyingToken.balanceOf(address(this));
+ if (amount > balance) {
+ underlyingToken.safeTransfer(to, balance);
+ remainingAmount = amount - balance;
+ } else {
+ underlyingToken.safeTransfer(to, amount);
+ }
+ credit[to] += remainingAmount;
+ }
+
/// View functions
/// @notice Returns the amount of payment tokens required to exercise the given amount of options tokens.
/// @param amount The amount of options tokens to exercise
function getPaymentAmount(uint256 amount) external view returns (uint256 paymentAmount) {
- paymentAmount = amount.mulWadUp(oracle.getPrice());
+ paymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(multiplier, MULTIPLIER_DENOM));
}
}
diff --git a/src/interfaces/IOracle.sol b/src/interfaces/IOracle.sol
index de4f7d2..562f5c4 100644
--- a/src/interfaces/IOracle.sol
+++ b/src/interfaces/IOracle.sol
@@ -11,4 +11,7 @@ interface IOracle {
/// For example, if the payment token is $2 and the strike price is $4, the return value
/// would be 2e18.
function getPrice() external view returns (uint256 price);
+
+ /// @notice This is important for verifying compatibility between oracle and exercise.
+ function getTokens() external view returns (address paymentToken, address underlyingToken);
}
diff --git a/src/oracles/BalancerOracle.sol b/src/oracles/BalancerOracle.sol
index 633515e..6eba82e 100644
--- a/src/oracles/BalancerOracle.sol
+++ b/src/oracles/BalancerOracle.sol
@@ -3,6 +3,7 @@ pragma solidity ^0.8.13;
import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {ERC20} from "solmate/tokens/ERC20.sol";
import {IOracle} from "../interfaces/IOracle.sol";
import {IVault} from "../interfaces/IBalancerVault.sol";
@@ -27,6 +28,8 @@ contract BalancerOracle is IOracle, Owned {
/// Errors
/// -----------------------------------------------------------------------
+ error BalancerOracle__InvalidParams();
+ error BalancerOracle__InvalidWindow();
error BalancerOracle__TWAPOracleNotReady();
error BalancerOracle__BelowMinPrice();
@@ -40,6 +43,8 @@ contract BalancerOracle is IOracle, Owned {
/// Immutable parameters
/// -----------------------------------------------------------------------
+ uint256 internal constant MIN_SECS = 20 minutes;
+
/// @notice The Balancer TWAP oracle contract (usually a pool with oracle support)
IBalancerTwapOracle public immutable balancerTwapOracle;
@@ -71,6 +76,11 @@ contract BalancerOracle is IOracle, Owned {
IVault vault = balancerTwapOracle.getVault();
(address[] memory poolTokens,,) = vault.getPoolTokens(balancerTwapOracle_.getPoolId());
+
+ if (ERC20(poolTokens[0]).decimals() != 18 || ERC20(poolTokens[1]).decimals() != 18) revert BalancerOracle__InvalidParams();
+ if (token != poolTokens[0] && token != poolTokens[1]) revert BalancerOracle__InvalidParams();
+ if (secs_ < MIN_SECS) revert BalancerOracle__InvalidWindow();
+
isToken0 = poolTokens[0] == token;
secs = secs_;
@@ -124,6 +134,19 @@ contract BalancerOracle is IOracle, Owned {
if (price < minPrice_) revert BalancerOracle__BelowMinPrice();
}
+ /// @inheritdoc IOracle
+ function getTokens() external view override returns (address paymentToken, address underlyingToken) {
+ IVault vault = balancerTwapOracle.getVault();
+ (address[] memory poolTokens,,) = vault.getPoolTokens(balancerTwapOracle.getPoolId());
+ if (isToken0) {
+ paymentToken = poolTokens[1];
+ underlyingToken = poolTokens[0];
+ } else {
+ paymentToken = poolTokens[0];
+ underlyingToken = poolTokens[1];
+ }
+ }
+
/// -----------------------------------------------------------------------
/// Owner functions
/// -----------------------------------------------------------------------
@@ -135,6 +158,7 @@ contract BalancerOracle is IOracle, Owned {
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
function setParams(uint56 secs_, uint56 ago_, uint128 minPrice_) external onlyOwner {
+ if (secs_ < MIN_SECS) revert BalancerOracle__InvalidWindow();
secs = secs_;
ago = ago_;
minPrice = minPrice_;
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
index 1916774..0b2e8a1 100644
--- a/src/oracles/ThenaOracle.sol
+++ b/src/oracles/ThenaOracle.sol
@@ -12,9 +12,6 @@ import {IThenaPair} from "../interfaces/IThenaPair.sol";
/// @notice The oracle contract that provides the current price to purchase
/// the underlying token while exercising options. Uses Thena TWAP oracle
/// as data source, and then applies a lower bound.
-/// Furthermore, the payment token and the underlying token must use 18 decimals.
-/// This is because the Thena oracle returns the TWAP value in 18 decimals
-/// and the OptionsToken contract also expects 18 decimals.
contract ThenaOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
/// Library usage
@@ -26,6 +23,8 @@ contract ThenaOracle is IOracle, Owned {
/// Errors
/// -----------------------------------------------------------------------
+ error ThenaOracle__InvalidParams();
+ error ThenaOracle__InvalidWindow();
error ThenaOracle__StablePairsUnsupported();
error ThenaOracle__Overflow();
error ThenaOracle__BelowMinPrice();
@@ -40,6 +39,8 @@ contract ThenaOracle is IOracle, Owned {
/// Immutable parameters
/// -----------------------------------------------------------------------
+ uint256 internal constant MIN_SECS = 20 minutes;
+
/// @notice The Thena TWAP oracle contract (usually a pool with oracle support)
IThenaPair public immutable thenaPair;
@@ -64,6 +65,9 @@ contract ThenaOracle is IOracle, Owned {
constructor(IThenaPair thenaPair_, address token, address owner_, uint56 secs_, uint128 minPrice_) Owned(owner_) {
if (thenaPair_.stable()) revert ThenaOracle__StablePairsUnsupported();
+ if (thenaPair_.token0() != token && thenaPair_.token1() != token) revert ThenaOracle__InvalidParams();
+ if (secs_ < MIN_SECS) revert ThenaOracle__InvalidWindow();
+
thenaPair = thenaPair_;
isToken0 = thenaPair_.token0() == token;
secs = secs_;
@@ -113,6 +117,15 @@ contract ThenaOracle is IOracle, Owned {
if (price < minPrice) revert ThenaOracle__BelowMinPrice();
}
+ /// @inheritdoc IOracle
+ function getTokens() external view override returns (address paymentToken, address underlyingToken) {
+ if (isToken0) {
+ return (thenaPair.token1(), thenaPair.token0());
+ } else {
+ return (thenaPair.token0(), thenaPair.token1());
+ }
+ }
+
/// -----------------------------------------------------------------------
/// Owner functions
/// -----------------------------------------------------------------------
@@ -122,6 +135,7 @@ contract ThenaOracle is IOracle, Owned {
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
function setParams(uint56 secs_, uint128 minPrice_) external onlyOwner {
+ if (secs_ < MIN_SECS) revert ThenaOracle__InvalidWindow();
secs = secs_;
minPrice = minPrice_;
emit SetParams(secs_, minPrice_);
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index de15ef6..8c93e6d 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -15,8 +15,6 @@ import {FullMath} from "v3-core/libraries/FullMath.sol";
/// @notice The oracle contract that provides the current price to purchase
/// the underlying token while exercising options. Uses UniswapV3 TWAP oracle
/// as data source, and then applies a multiplier & lower bound.
-/// @dev IMPORTANT: This oracle assumes both tokens have 18 decimals, and
-/// returns the price with 18 decimals.
contract UniswapV3Oracle is IOracle, Owned {
/// -----------------------------------------------------------------------
/// Library usage
@@ -28,6 +26,8 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Errors
/// -----------------------------------------------------------------------
+ error UniswapOracle__InvalidParams();
+ error UniswapOracle__InvalidWindow();
error UniswapOracle__BelowMinPrice();
/// -----------------------------------------------------------------------
@@ -40,6 +40,8 @@ contract UniswapV3Oracle is IOracle, Owned {
/// Immutable parameters
/// -----------------------------------------------------------------------
+ uint256 internal constant MIN_SECS = 20 minutes;
+
/// @notice The UniswapV3 Pool contract (provides the oracle)
IUniswapV3Pool public immutable uniswapPool;
@@ -67,6 +69,8 @@ contract UniswapV3Oracle is IOracle, Owned {
/// -----------------------------------------------------------------------
constructor(IUniswapV3Pool uniswapPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_) Owned(owner_) {
+ if (uniswapPool_.token0() != token && uniswapPool_.token1() != token) revert UniswapOracle__InvalidParams();
+ if (secs_ < MIN_SECS) revert UniswapOracle__InvalidWindow();
uniswapPool = uniswapPool_;
isToken0 = token == uniswapPool_.token0();
secs = secs_;
@@ -122,6 +126,15 @@ contract UniswapV3Oracle is IOracle, Owned {
if (price < minPrice) revert UniswapOracle__BelowMinPrice();
}
+ /// @inheritdoc IOracle
+ function getTokens() external view override returns (address paymentToken, address underlyingToken) {
+ if (isToken0) {
+ return (uniswapPool.token1(), uniswapPool.token0());
+ } else {
+ return (uniswapPool.token0(), uniswapPool.token1());
+ }
+ }
+
/// -----------------------------------------------------------------------
/// Owner functions
/// -----------------------------------------------------------------------
@@ -133,6 +146,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
/// price to mitigate potential attacks on the TWAP oracle.
function setParams(uint32 secs_, uint32 ago_, uint128 minPrice_) external onlyOwner {
+ if (secs_ < MIN_SECS) revert UniswapOracle__InvalidWindow();
secs = secs_;
ago = ago_;
minPrice = minPrice_;
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 8302af2..89207a5 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -61,10 +61,11 @@ contract OptionsTokenTest is Test {
optionsToken.transferOwnership(owner);
address[] memory tokens = new address[](2);
- tokens[0] = underlyingToken;
- tokens[1] = address(paymentToken);
+ tokens[0] = address(paymentToken);
+ tokens[1] = underlyingToken;
balancerTwapOracle = new MockBalancerTwapOracle(tokens);
+ console.log(tokens[0], tokens[1]);
oracle = new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
exerciser =
@@ -100,7 +101,7 @@ contract OptionsTokenTest is Test {
}
function test_exerciseHappyPath(uint256 amount, address recipient) public {
- amount = bound(amount, 0, MAX_SUPPLY);
+ amount = bound(amount, 100, MAX_SUPPLY);
// mint options tokens
vm.prank(tokenAdmin);
diff --git a/test/mocks/MockBalancerTwapOracle.sol b/test/mocks/MockBalancerTwapOracle.sol
index 3d0eb2c..5e0dd81 100644
--- a/test/mocks/MockBalancerTwapOracle.sol
+++ b/test/mocks/MockBalancerTwapOracle.sol
@@ -15,10 +15,10 @@ contract MockVault is IVault {
function getPool(bytes32 poolId) external view override returns (address, PoolSpecialization) {}
- function getPoolTokens(bytes32 poolId) external view override returns (address[] memory tokens, uint256[] memory, uint256) {
- tokens = new address[](2);
- tokens[0] = tokens[0];
- tokens[1] = tokens[1];
+ function getPoolTokens(bytes32 poolId) external view override returns (address[] memory tokens_, uint256[] memory, uint256) {
+ tokens_ = new address[](2);
+ tokens_[0] = tokens[0];
+ tokens_[1] = tokens[1];
}
function swap(SingleSwap memory singleSwap, FundManagement memory funds, uint256 limit, uint256 deadline)
diff --git a/test/mocks/OptionsTokenV2.sol b/test/mocks/OptionsTokenV2.sol
new file mode 100644
index 0000000..36c95ca
--- /dev/null
+++ b/test/mocks/OptionsTokenV2.sol
@@ -0,0 +1,195 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import {OwnableUpgradeable} from "oz-upgradeable/access/OwnableUpgradeable.sol";
+import {ERC20Upgradeable} from "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol";
+import {UUPSUpgradeable} from "oz-upgradeable/proxy/utils/UUPSUpgradeable.sol";
+
+import {IOptionsToken} from "../../src/interfaces/IOptionsToken.sol";
+import {IOracle} from "../../src/interfaces/IOracle.sol";
+import {IExercise} from "../../src/interfaces/IExercise.sol";
+
+/// @title Options Token
+/// @author Eidolon & lookee
+/// @notice Options token representing the right to perform an advantageous action,
+/// such as purchasing the underlying token at a discount to the market price.
+contract OptionsTokenV2 is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UUPSUpgradeable {
+ /// -----------------------------------------------------------------------
+ /// Errors
+ /// -----------------------------------------------------------------------
+
+ error OptionsToken__NotTokenAdmin();
+ error OptionsToken__NotExerciseContract();
+ error Upgradeable__Unauthorized();
+
+ /// -----------------------------------------------------------------------
+ /// Events
+ /// -----------------------------------------------------------------------
+
+ event Exercise(
+ address indexed sender, address indexed recipient, uint256 amount, address data0, uint256 data1, uint256 data2
+ );
+ event SetOracle(IOracle indexed newOracle);
+ event SetExerciseContract(address indexed _address, bool _isExercise);
+
+ /// -----------------------------------------------------------------------
+ /// Constant parameters
+ /// -----------------------------------------------------------------------
+
+ uint256 public constant UPGRADE_TIMELOCK = 48 hours;
+ uint256 public constant FUTURE_NEXT_PROPOSAL_TIME = 365 days * 100;
+
+ /// -----------------------------------------------------------------------
+ /// Storage variables
+ /// -----------------------------------------------------------------------
+
+ /// @notice The contract that has the right to mint options tokens
+ address public tokenAdmin;
+
+ mapping(address => bool) public isExerciseContract;
+ uint256 public upgradeProposalTime;
+ address public nextImplementation;
+
+ uint256 public constant newVar = 123456;
+
+ /// @custom:oz-upgrades-unsafe-allow constructor
+ constructor() {
+ _disableInitializers();
+ }
+
+ /// -----------------------------------------------------------------------
+ /// Initializer
+ /// -----------------------------------------------------------------------
+
+ function initialize(string memory name_, string memory symbol_, address tokenAdmin_) external initializer {
+ __UUPSUpgradeable_init();
+ __ERC20_init(name_, symbol_);
+ __Ownable_init();
+ tokenAdmin = tokenAdmin_;
+
+ _clearUpgradeCooldown();
+ }
+
+ /// -----------------------------------------------------------------------
+ /// External functions
+ /// -----------------------------------------------------------------------
+
+ /// @notice Called by the token admin to mint options tokens
+ /// @param to The address that will receive the minted options tokens
+ /// @param amount The amount of options tokens that will be minted
+ function mint(address to, uint256 amount) external virtual override {
+ /// -----------------------------------------------------------------------
+ /// Verification
+ /// -----------------------------------------------------------------------
+
+ if (msg.sender != tokenAdmin) revert OptionsToken__NotTokenAdmin();
+
+ /// -----------------------------------------------------------------------
+ /// State updates
+ /// -----------------------------------------------------------------------
+
+ // skip if amount is zero
+ if (amount == 0) return;
+
+ // mint options tokens
+ _mint(to, amount);
+ }
+
+ /// @notice Exercises options tokens, burning them and giving the reward to the recipient.
+ /// @param amount The amount of options tokens to exercise
+ /// @param recipient The recipient of the reward
+ /// @param option The address of the Exercise contract with the redemption logic
+ /// @param params Extra parameters to be used by the exercise function
+ function exercise(uint256 amount, address recipient, address option, bytes calldata params)
+ external
+ virtual
+ returns (
+ uint256 paymentAmount,
+ address,
+ uint256,
+ uint256 // misc data
+ )
+ {
+ return _exercise(amount, recipient, option, params);
+ }
+
+ /// -----------------------------------------------------------------------
+ /// Owner functions
+ /// -----------------------------------------------------------------------
+
+ /// @notice Adds a new Exercise contract to the available options.
+ /// @param _address Address of the Exercise contract, that implements BaseExercise.
+ /// @param _isExercise Whether oToken holders should be allowed to exercise using this option.
+ function setExerciseContract(address _address, bool _isExercise) external onlyOwner {
+ isExerciseContract[_address] = _isExercise;
+ emit SetExerciseContract(_address, _isExercise);
+ }
+
+ /// -----------------------------------------------------------------------
+ /// Internal functions
+ /// -----------------------------------------------------------------------
+
+ function _exercise(uint256 amount, address recipient, address option, bytes calldata params)
+ internal
+ virtual
+ returns (
+ uint256 paymentAmount,
+ address data0,
+ uint256 data1,
+ uint256 data2 // misc data
+ )
+ {
+ // skip if amount is zero
+ if (amount == 0) return (0, address(0), 0, 0);
+
+ // revert if the exercise contract is not whitelisted
+ if (!isExerciseContract[option]) revert OptionsToken__NotExerciseContract();
+
+ // burn options tokens
+ _burn(msg.sender, amount);
+
+ // give rewards to recipient
+ (paymentAmount, data0, data1, data2) = IExercise(option).exercise(msg.sender, amount, recipient, params);
+
+ // emit event
+ emit Exercise(msg.sender, recipient, amount, data0, data1, data2);
+ }
+
+ /// -----------------------------------------------------------------------
+ /// UUPS functions
+ /// -----------------------------------------------------------------------
+
+ /**
+ * @dev This function must be called prior to upgrading the implementation.
+ * It's required to wait UPGRADE_TIMELOCK seconds before executing the upgrade.
+ */
+ function initiateUpgradeCooldown(address _nextImplementation) external onlyOwner {
+ upgradeProposalTime = block.timestamp;
+ nextImplementation = _nextImplementation;
+ }
+
+ /**
+ * @dev This function is called:
+ * - in initialize()
+ * - as part of a successful upgrade
+ * - manually to clear the upgrade cooldown.
+ */
+ function _clearUpgradeCooldown() internal {
+ upgradeProposalTime = block.timestamp + FUTURE_NEXT_PROPOSAL_TIME;
+ }
+
+ function clearUpgradeCooldown() external onlyOwner {
+ _clearUpgradeCooldown();
+ }
+
+ /**
+ * @dev This function must be overriden simply for access control purposes.
+ * Only the owner can upgrade the implementation once the timelock
+ * has passed.
+ */
+ function _authorizeUpgrade(address _nextImplementation) internal override onlyOwner {
+ require(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp, "Upgrade cooldown not initiated or still ongoing");
+ require(_nextImplementation == nextImplementation, "Incorrect implementation");
+ _clearUpgradeCooldown();
+ }
+}
diff --git a/test_hardhat/OptionsToken.ts b/test_hardhat/OptionsToken.ts
new file mode 100644
index 0000000..3c014bd
--- /dev/null
+++ b/test_hardhat/OptionsToken.ts
@@ -0,0 +1,51 @@
+import {expect} from "chai";
+import {ethers, upgrades} from "hardhat";
+import {AddressZero} from "@ethersproject/constants";
+import { time } from "@nomicfoundation/hardhat-network-helpers";
+
+describe("OptionsToken", function() {
+ it('upgrades seamlessly', async () => {
+ const OptionsToken = await ethers.getContractFactory("OptionsToken");
+ const OptionsTokenV2 = await ethers.getContractFactory("OptionsTokenV2");
+
+ const signerAddress = await (await ethers.getSigners())[0].getAddress();
+
+ const instance = await upgrades.deployProxy(OptionsToken, ["TEST", "TEST", signerAddress]);
+ const newImpl = await upgrades.prepareUpgrade(instance, OptionsTokenV2);
+ await instance.initiateUpgradeCooldown(newImpl);
+ await time.increase(60 * 60 * 48);
+ await instance.upgradeTo(newImpl);
+
+ const instanceV2 = OptionsTokenV2.attach(await instance.getAddress());
+
+ const value = await (instanceV2 as any).newVar();
+ expect(value.toString()).to.equal('123456');
+
+ await instance.mint(signerAddress, 1000);
+ expect(await instance.balanceOf(signerAddress)).to.equal(1000);
+ });
+
+ it('prevents upgrading before the given timelock', async () => {
+ const OptionsToken = await ethers.getContractFactory("OptionsToken");
+ const OptionsTokenV2 = await ethers.getContractFactory("OptionsTokenV2");
+
+ const instance = await upgrades.deployProxy(OptionsToken, ["TEST", "TEST", AddressZero]);
+ const newImpl = await upgrades.prepareUpgrade(instance, OptionsTokenV2);
+ await instance.initiateUpgradeCooldown(newImpl);
+ await time.increase(60 * 60 * 48 - 1);
+
+ await expect(instance.upgradeTo(newImpl)).to.be.revertedWith('Upgrade cooldown not initiated or still ongoing');
+ });
+
+ it('requires correct contract to be set before an upgrade', async () => {
+ const OptionsToken = await ethers.getContractFactory("OptionsToken");
+ const OptionsTokenV2 = await ethers.getContractFactory("OptionsTokenV2");
+
+ const instance = await upgrades.deployProxy(OptionsToken, ["TEST", "TEST", AddressZero]);
+ const newImpl = await upgrades.prepareUpgrade(instance, OptionsTokenV2);
+ await instance.initiateUpgradeCooldown(AddressZero);
+ await time.increase(60 * 60 * 48);
+
+ await expect(instance.upgradeTo(newImpl)).to.be.revertedWith('Incorrect implementation');
+ });
+});
From 40797fbabf69fc0b8f22667591bfc90d2a1dc583 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Thu, 1 Feb 2024 16:44:59 +0100
Subject: [PATCH 44/64] forge install: tarot-price-oracle
---
.gitmodules | 3 +++
lib/tarot-price-oracle | 1 +
2 files changed, 4 insertions(+)
create mode 160000 lib/tarot-price-oracle
diff --git a/.gitmodules b/.gitmodules
index 45bc574..7adb170 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,3 +16,6 @@
[submodule "lib/openzeppelin-contracts"]
path = lib/openzeppelin-contracts
url = https://github.com/OpenZeppelin/openzeppelin-contracts
+[submodule "lib/tarot-price-oracle"]
+ path = lib/tarot-price-oracle
+ url = https://github.com/xrave110/tarot-price-oracle
diff --git a/lib/tarot-price-oracle b/lib/tarot-price-oracle
new file mode 160000
index 0000000..483959c
--- /dev/null
+++ b/lib/tarot-price-oracle
@@ -0,0 +1 @@
+Subproject commit 483959c501ddab57e5215e47bbb257f04aa02b76
From 4d36188fe1d343768684354f1fb0240b7d6536f8 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Mon, 5 Feb 2024 19:37:33 -0300
Subject: [PATCH 45/64] bsc deployment
---
.openzeppelin/bsc.json | 205 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 205 insertions(+)
create mode 100644 .openzeppelin/bsc.json
diff --git a/.openzeppelin/bsc.json b/.openzeppelin/bsc.json
new file mode 100644
index 0000000..7320b61
--- /dev/null
+++ b/.openzeppelin/bsc.json
@@ -0,0 +1,205 @@
+{
+ "manifestVersion": "3.2",
+ "proxies": [
+ {
+ "address": "0x45c19a3068642B98F5AEf1dEdE023443cd1FbFAd",
+ "txHash": "0xb0835bbacd616b635b6a1230e89a7d4f47fa5a4c55969a510d92b87d9b1367eb",
+ "kind": "uups"
+ }
+ ],
+ "impls": {
+ "d568e812a589f8a8e8864a13f1ba9c178a5bf812de48e4764db703f702d1ec44": {
+ "address": "0xc79593C528d673f5Db0B8707115193FE1596aB34",
+ "txHash": "0xb0107c79caa671945a41ee8e6e6300a08081285e10d0e56233c7db3023df32b3",
+ "layout": {
+ "solcVersion": "0.8.19",
+ "storage": [
+ {
+ "label": "_initialized",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_uint8",
+ "contract": "Initializable",
+ "src": "oz-upgradeable/proxy/utils/Initializable.sol:62",
+ "retypedFrom": "bool"
+ },
+ {
+ "label": "_initializing",
+ "offset": 1,
+ "slot": "0",
+ "type": "t_bool",
+ "contract": "Initializable",
+ "src": "oz-upgradeable/proxy/utils/Initializable.sol:67"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "ContextUpgradeable",
+ "src": "oz-upgradeable/utils/ContextUpgradeable.sol:36"
+ },
+ {
+ "label": "_balances",
+ "offset": 0,
+ "slot": "51",
+ "type": "t_mapping(t_address,t_uint256)",
+ "contract": "ERC20Upgradeable",
+ "src": "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol:37"
+ },
+ {
+ "label": "_allowances",
+ "offset": 0,
+ "slot": "52",
+ "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))",
+ "contract": "ERC20Upgradeable",
+ "src": "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol:39"
+ },
+ {
+ "label": "_totalSupply",
+ "offset": 0,
+ "slot": "53",
+ "type": "t_uint256",
+ "contract": "ERC20Upgradeable",
+ "src": "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol:41"
+ },
+ {
+ "label": "_name",
+ "offset": 0,
+ "slot": "54",
+ "type": "t_string_storage",
+ "contract": "ERC20Upgradeable",
+ "src": "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol:43"
+ },
+ {
+ "label": "_symbol",
+ "offset": 0,
+ "slot": "55",
+ "type": "t_string_storage",
+ "contract": "ERC20Upgradeable",
+ "src": "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol:44"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "56",
+ "type": "t_array(t_uint256)45_storage",
+ "contract": "ERC20Upgradeable",
+ "src": "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol:400"
+ },
+ {
+ "label": "_owner",
+ "offset": 0,
+ "slot": "101",
+ "type": "t_address",
+ "contract": "OwnableUpgradeable",
+ "src": "oz-upgradeable/access/OwnableUpgradeable.sol:22"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "102",
+ "type": "t_array(t_uint256)49_storage",
+ "contract": "OwnableUpgradeable",
+ "src": "oz-upgradeable/access/OwnableUpgradeable.sol:94"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "151",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "ERC1967UpgradeUpgradeable",
+ "src": "oz-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:197"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "201",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "UUPSUpgradeable",
+ "src": "oz-upgradeable/proxy/utils/UUPSUpgradeable.sol:107"
+ },
+ {
+ "label": "tokenAdmin",
+ "offset": 0,
+ "slot": "251",
+ "type": "t_address",
+ "contract": "OptionsToken",
+ "src": "src/OptionsToken.sol:45"
+ },
+ {
+ "label": "isExerciseContract",
+ "offset": 0,
+ "slot": "252",
+ "type": "t_mapping(t_address,t_bool)",
+ "contract": "OptionsToken",
+ "src": "src/OptionsToken.sol:47"
+ },
+ {
+ "label": "upgradeProposalTime",
+ "offset": 0,
+ "slot": "253",
+ "type": "t_uint256",
+ "contract": "OptionsToken",
+ "src": "src/OptionsToken.sol:48"
+ },
+ {
+ "label": "nextImplementation",
+ "offset": 0,
+ "slot": "254",
+ "type": "t_address",
+ "contract": "OptionsToken",
+ "src": "src/OptionsToken.sol:49"
+ }
+ ],
+ "types": {
+ "t_address": {
+ "label": "address",
+ "numberOfBytes": "20"
+ },
+ "t_array(t_uint256)45_storage": {
+ "label": "uint256[45]",
+ "numberOfBytes": "1440"
+ },
+ "t_array(t_uint256)49_storage": {
+ "label": "uint256[49]",
+ "numberOfBytes": "1568"
+ },
+ "t_array(t_uint256)50_storage": {
+ "label": "uint256[50]",
+ "numberOfBytes": "1600"
+ },
+ "t_bool": {
+ "label": "bool",
+ "numberOfBytes": "1"
+ },
+ "t_mapping(t_address,t_bool)": {
+ "label": "mapping(address => bool)",
+ "numberOfBytes": "32"
+ },
+ "t_mapping(t_address,t_mapping(t_address,t_uint256))": {
+ "label": "mapping(address => mapping(address => uint256))",
+ "numberOfBytes": "32"
+ },
+ "t_mapping(t_address,t_uint256)": {
+ "label": "mapping(address => uint256)",
+ "numberOfBytes": "32"
+ },
+ "t_string_storage": {
+ "label": "string",
+ "numberOfBytes": "32"
+ },
+ "t_uint256": {
+ "label": "uint256",
+ "numberOfBytes": "32"
+ },
+ "t_uint8": {
+ "label": "uint8",
+ "numberOfBytes": "1"
+ }
+ },
+ "namespaces": {}
+ }
+ }
+ }
+}
From 9e87a0b05c884e3cc2962f4963cfa0900ce8b0e4 Mon Sep 17 00:00:00 2001
From: lookeey <71905281+lookeey@users.noreply.github.com>
Date: Tue, 20 Feb 2024 19:54:43 -0300
Subject: [PATCH 46/64] Add algebra oracle
---
src/interfaces/IAlgebraPool.sol | 24 +++++
src/oracles/AlgebraOracle.sol | 156 ++++++++++++++++++++++++++++++++
2 files changed, 180 insertions(+)
create mode 100644 src/interfaces/IAlgebraPool.sol
create mode 100644 src/oracles/AlgebraOracle.sol
diff --git a/src/interfaces/IAlgebraPool.sol b/src/interfaces/IAlgebraPool.sol
new file mode 100644
index 0000000..5e2f44f
--- /dev/null
+++ b/src/interfaces/IAlgebraPool.sol
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+pragma solidity >=0.5.0;
+
+/**
+ * @title The minimal interface we use for a Algebra Pool
+ * @dev The pool interface is broken up into many smaller pieces.
+ * Credit to Uniswap Labs under GPL-2.0-or-later license:
+ * https://github.com/Uniswap/v3-core/tree/main/contracts/interfaces
+ */
+interface IAlgebraPool {
+ /// @notice The first of the two tokens of the pool, sorted by address
+ /// @return The token contract address
+ function token0() external view returns (address);
+
+ /// @notice The second of the two tokens of the pool, sorted by address
+ /// @return The token contract address
+ function token1() external view returns (address);
+
+ function getTimepoints(uint32[] calldata secondsAgos)
+ external
+ view
+ returns (int56[] memory tickCumulatives, uint160[] memory secondsPerLiquidityCumulativeX128s, uint112[] memory volatilityCumulatives, uint256[] memory volumePerAvgLiquiditys);
+
+}
\ No newline at end of file
diff --git a/src/oracles/AlgebraOracle.sol b/src/oracles/AlgebraOracle.sol
new file mode 100644
index 0000000..349e8aa
--- /dev/null
+++ b/src/oracles/AlgebraOracle.sol
@@ -0,0 +1,156 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import {Owned} from "solmate/auth/Owned.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+
+import {IOracle} from "../interfaces/IOracle.sol";
+
+import {IAlgebraPool} from "../interfaces/IAlgebraPool.sol";
+import {TickMath} from "v3-core/libraries/TickMath.sol";
+import {FullMath} from "v3-core/libraries/FullMath.sol";
+
+/// @title Oracle using Algebra TWAP oracle as data source
+/// @notice The oracle contract that provides the current price to purchase
+/// the underlying token while exercising options. Uses Algebra TWAP oracle
+/// as data source, and then applies a multiplier & lower bound.
+/// @notice Same as UniswapV3, with a minimal interface change.
+/// (observe -> getTimepoints)
+contract AlgebraOracle is IOracle, Owned {
+ /// -----------------------------------------------------------------------
+ /// Library usage
+ /// -----------------------------------------------------------------------
+
+ using FixedPointMathLib for uint256;
+
+ /// -----------------------------------------------------------------------
+ /// Errors
+ /// -----------------------------------------------------------------------
+
+ error AlgebraOracle__InvalidParams();
+ error AlgebraOracle__InvalidWindow();
+ error AlgebraOracle__BelowMinPrice();
+
+ /// -----------------------------------------------------------------------
+ /// Events
+ /// -----------------------------------------------------------------------
+
+ event SetParams(uint56 secs, uint56 ago, uint128 minPrice);
+
+ /// -----------------------------------------------------------------------
+ /// Immutable parameters
+ /// -----------------------------------------------------------------------
+
+ uint256 internal constant MIN_SECS = 20 minutes;
+
+ /// @notice The Algebra Pool contract (provides the oracle)
+ IAlgebraPool public immutable algebraPool;
+
+ /// -----------------------------------------------------------------------
+ /// Storage variables
+ /// -----------------------------------------------------------------------
+
+ /// @notice The size of the window to take the TWAP value over in seconds.
+ uint32 public secs;
+
+ /// @notice The number of seconds in the past to take the TWAP from. The window
+ /// would be (block.timestamp - secs - ago, block.timestamp - ago].
+ uint32 public ago;
+
+ /// @notice The minimum value returned by getPrice(). Maintains a floor for the
+ /// price to mitigate potential attacks on the TWAP oracle.
+ uint128 public minPrice;
+
+ /// @notice Whether the price of token0 should be returned (in units of token1).
+ /// If false, the price is returned in units of token0.
+ bool public isToken0;
+
+ /// -----------------------------------------------------------------------
+ /// Constructor
+ /// -----------------------------------------------------------------------
+
+ constructor(IAlgebraPool algebraPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_) Owned(owner_) {
+ if (algebraPool_.token0() != token && algebraPool_.token1() != token) revert AlgebraOracle__InvalidParams();
+ if (secs_ < MIN_SECS) revert AlgebraOracle__InvalidWindow();
+ algebraPool = algebraPool_;
+ isToken0 = token == algebraPool_.token0();
+ secs = secs_;
+ ago = ago_;
+ minPrice = minPrice_;
+
+ emit SetParams(secs_, ago_, minPrice_);
+ }
+
+ /// -----------------------------------------------------------------------
+ /// IOracle
+ /// -----------------------------------------------------------------------
+
+ /// @inheritdoc IOracle
+ function getPrice() external view override returns (uint256 price) {
+ /// -----------------------------------------------------------------------
+ /// Validation
+ /// -----------------------------------------------------------------------
+
+ // The Algebra pool reverts on invalid TWAP queries, so we don't need to
+
+ /// -----------------------------------------------------------------------
+ /// Computation
+ /// -----------------------------------------------------------------------
+
+ // query Algebra oracle to get TWAP tick
+ {
+ uint32 _twapDuration = secs;
+ uint32 _twapAgo = ago;
+ uint32[] memory secondsAgo = new uint32[](2);
+ secondsAgo[0] = _twapDuration + _twapAgo;
+ secondsAgo[1] = _twapAgo;
+
+ (int56[] memory tickCumulatives,,,) = algebraPool.getTimepoints(secondsAgo);
+ int24 tick = int24((tickCumulatives[1] - tickCumulatives[0]) / int56(int32(_twapDuration)));
+
+ uint256 decimalPrecision = 1e18;
+
+ // from https://optimistic.etherscan.io/address/0xB210CE856631EeEB767eFa666EC7C1C57738d438#code#F5#L49
+ uint160 sqrtRatioX96 = TickMath.getSqrtRatioAtTick(tick);
+
+ // Calculate quoteAmount with better precision if it doesn't overflow when multiplied by itself
+ if (sqrtRatioX96 <= type(uint128).max) {
+ uint256 ratioX192 = uint256(sqrtRatioX96) * sqrtRatioX96;
+ price = isToken0 ? FullMath.mulDiv(ratioX192, decimalPrecision, 1 << 192) : FullMath.mulDiv(1 << 192, decimalPrecision, ratioX192);
+ } else {
+ uint256 ratioX128 = FullMath.mulDiv(sqrtRatioX96, sqrtRatioX96, 1 << 64);
+ price = isToken0 ? FullMath.mulDiv(ratioX128, decimalPrecision, 1 << 128) : FullMath.mulDiv(1 << 128, decimalPrecision, ratioX128);
+ }
+ }
+
+ // apply minimum price
+ if (price < minPrice) revert AlgebraOracle__BelowMinPrice();
+ }
+
+ /// @inheritdoc IOracle
+ function getTokens() external view override returns (address paymentToken, address underlyingToken) {
+ if (isToken0) {
+ return (algebraPool.token1(), algebraPool.token0());
+ } else {
+ return (algebraPool.token0(), algebraPool.token1());
+ }
+ }
+
+ /// -----------------------------------------------------------------------
+ /// Owner functions
+ /// -----------------------------------------------------------------------
+
+ /// @notice Updates the oracle parameters. Only callable by the owner.
+ /// @param secs_ The size of the window to take the TWAP value over in seconds.
+ /// @param ago_ The number of seconds in the past to take the TWAP from. The window
+ /// would be (block.timestamp - secs - ago, block.timestamp - ago].
+ /// @param minPrice_ The minimum value returned by getPrice(). Maintains a floor for the
+ /// price to mitigate potential attacks on the TWAP oracle.
+ function setParams(uint32 secs_, uint32 ago_, uint128 minPrice_) external onlyOwner {
+ if (secs_ < MIN_SECS) revert AlgebraOracle__InvalidWindow();
+ secs = secs_;
+ ago = ago_;
+ minPrice = minPrice_;
+ emit SetParams(secs_, ago_, minPrice_);
+ }
+}
From de55775597e3e70bad951b6871a03823c4a454eb Mon Sep 17 00:00:00 2001
From: xRave110
Date: Fri, 7 Jun 2024 17:37:57 +0200
Subject: [PATCH 47/64] Simple instant exit feature
---
src/exercise/DiscountExercise.sol | 70 ++++++++++++++++++++++++-------
test/OptionsToken.t.sol | 59 ++++++++++++++++++++------
2 files changed, 103 insertions(+), 26 deletions(-)
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 54f7dbb..5c60528 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -13,6 +13,7 @@ import {OptionsToken} from "../OptionsToken.sol";
struct DiscountExerciseParams {
uint256 maxPaymentAmount;
uint256 deadline;
+ bool isInstantExit;
}
/// @title Options Token Exercise Contract
@@ -30,6 +31,7 @@ contract DiscountExercise is BaseExercise {
error Exercise__PastDeadline();
error Exercise__MultiplierOutOfRange();
error Exercise__InvalidOracle();
+ error Exercise__FeeGreaterThanMax();
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
@@ -41,7 +43,7 @@ contract DiscountExercise is BaseExercise {
/// @notice The denominator for converting the multiplier into a decimal number.
/// i.e. multiplier uses 4 decimals.
- uint256 internal constant MULTIPLIER_DENOM = 10000;
+ uint256 internal constant BPS_DENOM = 10_000;
/// Immutable parameters
@@ -63,7 +65,9 @@ contract DiscountExercise is BaseExercise {
/// @notice The amount of payment tokens the user can claim
/// Used when the contract does not have enough tokens to pay the user
- mapping (address => uint256) public credit;
+ mapping(address => uint256) public credit;
+
+ uint256 public instantExitFee;
constructor(
OptionsToken oToken_,
@@ -72,6 +76,7 @@ contract DiscountExercise is BaseExercise {
IERC20 underlyingToken_,
IOracle oracle_,
uint256 multiplier_,
+ uint256 instantExitFee_,
address[] memory feeRecipients_,
uint256[] memory feeBPS_
) BaseExercise(oToken_, feeRecipients_, feeBPS_) Owned(owner_) {
@@ -80,6 +85,7 @@ contract DiscountExercise is BaseExercise {
_setOracle(oracle_);
_setMultiplier(multiplier_);
+ _setInstantExitFee(instantExitFee_);
emit SetOracle(oracle_);
}
@@ -99,7 +105,14 @@ contract DiscountExercise is BaseExercise {
onlyOToken
returns (uint256 paymentAmount, address, uint256, uint256)
{
- return _exercise(from, amount, recipient, params);
+ DiscountExerciseParams memory _params = abi.decode(params, (DiscountExerciseParams));
+ if (_params.isInstantExit) {
+ return _instantExitExercise(from, amount, recipient, _params);
+ }
+ else
+ {
+ return _discountExercise(from, amount, recipient, _params);
+ }
}
function claim(address to) external {
@@ -119,8 +132,9 @@ contract DiscountExercise is BaseExercise {
function _setOracle(IOracle oracle_) internal {
(address paymentToken_, address underlyingToken_) = oracle_.getTokens();
- if (paymentToken_ != address(paymentToken) || underlyingToken_ != address(underlyingToken))
+ if (paymentToken_ != address(paymentToken) || underlyingToken_ != address(underlyingToken)) {
revert Exercise__InvalidOracle();
+ }
oracle = oracle_;
emit SetOracle(oracle_);
}
@@ -133,30 +147,58 @@ contract DiscountExercise is BaseExercise {
function _setMultiplier(uint256 multiplier_) internal {
if (
- multiplier_ > MULTIPLIER_DENOM * 2 // over 200%
- || multiplier_ < MULTIPLIER_DENOM / 10 // under 10%
+ multiplier_ > BPS_DENOM * 2 // over 200%
+ || multiplier_ < BPS_DENOM / 10 // under 10%
) revert Exercise__MultiplierOutOfRange();
multiplier = multiplier_;
emit SetMultiplier(multiplier_);
}
- /// Internal functions
+ function setInstantExitFee(uint256 _instantExitFee) external onlyOwner {
+ _setInstantExitFee(_instantExitFee);
+ }
- function _exercise(address from, uint256 amount, address recipient, bytes memory params)
+ function _setInstantExitFee(uint256 _instantExitFee) internal {
+ if (_instantExitFee > BPS_DENOM) {
+ revert Exercise__FeeGreaterThanMax();
+ }
+ instantExitFee = _instantExitFee;
+ }
+
+ /// Internal functions
+ function _instantExitExercise(address from, uint256 amount, address recipient, DiscountExerciseParams memory params)
internal
virtual
returns (uint256 paymentAmount, address, uint256, uint256)
{
- // decode params
- DiscountExerciseParams memory _params = abi.decode(params, (DiscountExerciseParams));
+ if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
- if (block.timestamp > _params.deadline) revert Exercise__PastDeadline();
+ uint256 underlyingAmount = amount.mulDivUp(multiplier, BPS_DENOM);
+ uint256 feeAmount = amount.mulDivUp(instantExitFee, BPS_DENOM);
+ underlyingAmount -= feeAmount;
+
+ // transfer underlying tokens from user to the set receivers
+ distributeFees(feeAmount, underlyingToken);
+
+ // transfer underlying tokens to recipient
+ _pay(recipient, underlyingAmount);
+
+ emit Exercised(from, recipient, underlyingAmount, paymentAmount);
+ }
+
+ /// Internal functions
+ function _discountExercise(address from, uint256 amount, address recipient, DiscountExerciseParams memory params)
+ internal
+ virtual
+ returns (uint256 paymentAmount, address, uint256, uint256)
+ {
+ if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
// apply multiplier to price
- uint256 price = oracle.getPrice().mulDivUp(multiplier, MULTIPLIER_DENOM);
+ uint256 price = oracle.getPrice().mulDivUp(multiplier, BPS_DENOM);
paymentAmount = amount.mulWadUp(price);
- if (paymentAmount > _params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
+ if (paymentAmount > params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
// transfer payment tokens from user to the set receivers
distributeFeesFrom(paymentAmount, paymentToken, from);
@@ -182,6 +224,6 @@ contract DiscountExercise is BaseExercise {
/// @notice Returns the amount of payment tokens required to exercise the given amount of options tokens.
/// @param amount The amount of options tokens to exercise
function getPaymentAmount(uint256 amount) external view returns (uint256 paymentAmount) {
- paymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(multiplier, MULTIPLIER_DENOM));
+ paymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(multiplier, BPS_DENOM));
}
}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 89207a5..76edb83 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -24,6 +24,7 @@ contract OptionsTokenTest is Test {
uint256 constant ORACLE_INIT_TWAP_VALUE = 1e19;
uint256 constant ORACLE_MIN_PRICE_DENOM = 10000;
uint256 constant MAX_SUPPLY = 1e27; // the max supply of the options token & the underlying token
+ uint256 constant INSTANT_EXIT_FEE = 500;
address owner;
address tokenAdmin;
@@ -67,10 +68,8 @@ contract OptionsTokenTest is Test {
balancerTwapOracle = new MockBalancerTwapOracle(tokens);
console.log(tokens[0], tokens[1]);
oracle = new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
-
exerciser =
- new DiscountExercise(optionsToken, owner, IERC20(address(paymentToken)), IERC20(underlyingToken), oracle, PRICE_MULTIPLIER, feeRecipients_, feeBPS_);
-
+ new DiscountExercise(optionsToken, owner, IERC20(address(paymentToken)), IERC20(underlyingToken), oracle, PRICE_MULTIPLIER, INSTANT_EXIT_FEE, feeRecipients_, feeBPS_);
TestERC20(underlyingToken).mint(address(exerciser), 1e20 ether);
// add exerciser to the list of options
@@ -100,7 +99,7 @@ contract OptionsTokenTest is Test {
assertEqDecimal(optionsToken.balanceOf(address(this)), amount, 18);
}
- function test_exerciseHappyPath(uint256 amount, address recipient) public {
+ function test_discountExerciseHappyPath(uint256 amount, address recipient) public {
amount = bound(amount, 100, MAX_SUPPLY);
// mint options tokens
@@ -112,7 +111,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
(uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
@@ -128,6 +127,42 @@ contract OptionsTokenTest is Test {
assertEqDecimal(paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
}
+ function test_instantExitExerciseHappyPath(uint256 amount, address recipient) public {
+ amount = bound(amount, 10_000, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
+ uint256 expectedUnderlyingAmount = discountedUnderlying - amount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ paymentToken.mint(address(this), expectedPaymentAmount);
+ console.log("discountedUnderlying:", discountedUnderlying);
+ console.log("expectedUnderlyingAmount:", expectedUnderlyingAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were transferred
+ assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
+ uint256 totalFee = amount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ uint256 fee1 = totalFee.mulDivDown(feeBPS_[0], 10_000);
+ uint256 fee2 = totalFee - fee1;
+ console.log("paymentFee1: ", fee1);
+ console.log("paymentFee2: ", fee2);
+ assertEqDecimal(IERC20(underlyingToken).balanceOf(feeRecipients_[0]), fee1, 18, "fee recipient 1 didn't receive payment tokens");
+ assertEqDecimal(IERC20(underlyingToken).balanceOf(feeRecipients_[1]), fee2, 18, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
+ // assertEq(expectedUnderlyingAmount, IERC20(underlyingToken).balanceOf(recipient), "Recipient got wrong amount of underlying token");
+ }
+
function test_exerciseMinPrice(uint256 amount, address recipient) public {
amount = bound(amount, 1, MAX_SUPPLY);
@@ -143,7 +178,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(bytes4(keccak256("BalancerOracle__BelowMinPrice()")));
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -163,7 +198,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
(uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
// update multiplier
@@ -195,7 +230,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(DiscountExercise.Exercise__SlippageTooHigh.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -218,7 +253,7 @@ contract OptionsTokenTest is Test {
oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(BalancerOracle.BalancerOracle__TWAPOracleNotReady.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -236,7 +271,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline, isInstantExit: false});
if (amount != 0) {
vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
}
@@ -254,7 +289,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(BaseExercise.Exercise__NotOToken.selector);
exerciser.exercise(address(this), amount, recipient, abi.encode(params));
}
@@ -275,7 +310,7 @@ contract OptionsTokenTest is Test {
paymentToken.mint(address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max});
+ DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
From 016ca86f5c319a7d7c47ae4364063da585c6e788 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Tue, 18 Jun 2024 09:05:58 +0200
Subject: [PATCH 48/64] Zapping feature with tests
---
.gitmodules | 3 +
.vscode/settings.json | 4 +
lib/vault-v2 | 1 +
remappings.txt | 1 +
src/exercise/BaseExercise.sol | 4 +-
src/exercise/DiscountExercise.sol | 95 ++++---
src/helpers/SwapHelper.sol | 104 ++++++++
src/interfaces/ISwapperSwaps.sol | 128 +++++++++
test/Common.sol | 241 +++++++++++++++++
test/ItBscOptionsToken.t.solNOT | 407 +++++++++++++++++++++++++++++
test/ItModeOptionsToken.t.sol | 391 ++++++++++++++++++++++++++++
test/ItOpOptionsToken.t copy.sol | 413 ++++++++++++++++++++++++++++++
test/OptionsToken.t.sol | 142 ++++++----
test/mocks/ReaperSwapperMock.sol | 71 +++++
14 files changed, 1920 insertions(+), 85 deletions(-)
create mode 100644 .vscode/settings.json
create mode 160000 lib/vault-v2
create mode 100644 src/helpers/SwapHelper.sol
create mode 100644 src/interfaces/ISwapperSwaps.sol
create mode 100644 test/Common.sol
create mode 100644 test/ItBscOptionsToken.t.solNOT
create mode 100644 test/ItModeOptionsToken.t.sol
create mode 100644 test/ItOpOptionsToken.t copy.sol
create mode 100644 test/mocks/ReaperSwapperMock.sol
diff --git a/.gitmodules b/.gitmodules
index 7adb170..c75bf00 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -19,3 +19,6 @@
[submodule "lib/tarot-price-oracle"]
path = lib/tarot-price-oracle
url = https://github.com/xrave110/tarot-price-oracle
+[submodule "lib/vault-v2"]
+ path = lib/vault-v2
+ url = https://github.com/Byte-Masons/vault-v2
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..2306f3c
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,4 @@
+{
+ "solidity.formatter": "forge",
+ "editor.formatOnSave": true
+}
\ No newline at end of file
diff --git a/lib/vault-v2 b/lib/vault-v2
new file mode 160000
index 0000000..23df243
--- /dev/null
+++ b/lib/vault-v2
@@ -0,0 +1 @@
+Subproject commit 23df243595d358986708544e03229501fc82b595
diff --git a/remappings.txt b/remappings.txt
index d1a17b6..faaa3df 100644
--- a/remappings.txt
+++ b/remappings.txt
@@ -2,4 +2,5 @@ create3-factory/=lib/create3-factory/src/
v3-core/=lib/v3-core/contracts/
oz-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
oz/=lib/openzeppelin-contracts/contracts/
+vault/=lib/vault-v2/src
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index 9de0cc6..959ff94 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -72,7 +72,7 @@ abstract contract BaseExercise is IExercise, Owned {
/// @dev Sends the residual amount to the last fee recipient to avoid rounding errors
function distributeFeesFrom(uint256 totalAmount, IERC20 token, address from) internal virtual {
uint256 remaining = totalAmount;
- for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
+ for (uint256 i = 0; i < feeRecipients.length; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransferFrom(from, feeRecipients[i], feeAmount);
remaining -= feeAmount;
@@ -85,7 +85,7 @@ abstract contract BaseExercise is IExercise, Owned {
/// @dev Sends the residual amount to the last fee recipient to avoid rounding errors
function distributeFees(uint256 totalAmount, IERC20 token) internal virtual {
uint256 remaining = totalAmount;
- for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
+ for (uint256 i = 0; i < feeRecipients.length; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransfer(feeRecipients[i], feeAmount);
remaining -= feeAmount;
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 5c60528..95d2f45 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -10,6 +10,10 @@ import {BaseExercise} from "../exercise/BaseExercise.sol";
import {IOracle} from "../interfaces/IOracle.sol";
import {OptionsToken} from "../OptionsToken.sol";
+import {ExchangeType, SwapProps, SwapHelper} from "../helpers/SwapHelper.sol";
+
+import "forge-std/console.sol";
+
struct DiscountExerciseParams {
uint256 maxPaymentAmount;
uint256 deadline;
@@ -21,7 +25,7 @@ struct DiscountExerciseParams {
/// @notice Contract that allows the holder of options tokens to exercise them,
/// in this case, by purchasing the underlying token at a discount to the market price.
/// @dev Assumes the underlying token and the payment token both use 18 decimals.
-contract DiscountExercise is BaseExercise {
+contract DiscountExercise is BaseExercise, SwapHelper {
/// Library usage
using SafeERC20 for IERC20;
using FixedPointMathLib for uint256;
@@ -32,6 +36,9 @@ contract DiscountExercise is BaseExercise {
error Exercise__MultiplierOutOfRange();
error Exercise__InvalidOracle();
error Exercise__FeeGreaterThanMax();
+ error Exercise__SlippageGreaterThanMax();
+ error Exercise__ParamHasAddressZero();
+ error Exercise__InvalidExchangeType(uint256);
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
@@ -40,11 +47,6 @@ contract DiscountExercise is BaseExercise {
event SetMultiplier(uint256 indexed newMultiplier);
/// Constants
-
- /// @notice The denominator for converting the multiplier into a decimal number.
- /// i.e. multiplier uses 4 decimals.
- uint256 internal constant BPS_DENOM = 10_000;
-
/// Immutable parameters
/// @notice The token paid by the options token holder during redemption
@@ -67,7 +69,9 @@ contract DiscountExercise is BaseExercise {
/// Used when the contract does not have enough tokens to pay the user
mapping(address => uint256) public credit;
- uint256 public instantExitFee;
+ uint256 private feeAmount;
+ uint256 public minAmountToTriggerSwap;
+ uint256 public redeemBonus;
constructor(
OptionsToken oToken_,
@@ -76,16 +80,17 @@ contract DiscountExercise is BaseExercise {
IERC20 underlyingToken_,
IOracle oracle_,
uint256 multiplier_,
- uint256 instantExitFee_,
+ uint256 redeemBonus_,
address[] memory feeRecipients_,
- uint256[] memory feeBPS_
- ) BaseExercise(oToken_, feeRecipients_, feeBPS_) Owned(owner_) {
+ uint256[] memory feeBPS_,
+ SwapProps memory swapProps_
+ ) BaseExercise(oToken_, feeRecipients_, feeBPS_) Owned(owner_) SwapHelper(swapProps_) {
paymentToken = paymentToken_;
underlyingToken = underlyingToken_;
_setOracle(oracle_);
_setMultiplier(multiplier_);
- _setInstantExitFee(instantExitFee_);
+ _setRedeemBonus(redeemBonus_);
emit SetOracle(oracle_);
}
@@ -107,11 +112,9 @@ contract DiscountExercise is BaseExercise {
{
DiscountExerciseParams memory _params = abi.decode(params, (DiscountExerciseParams));
if (_params.isInstantExit) {
- return _instantExitExercise(from, amount, recipient, _params);
- }
- else
- {
- return _discountExercise(from, amount, recipient, _params);
+ return _zap(from, amount, recipient, _params);
+ } else {
+ return _redeem(from, amount, recipient, _params);
}
}
@@ -154,40 +157,62 @@ contract DiscountExercise is BaseExercise {
emit SetMultiplier(multiplier_);
}
- function setInstantExitFee(uint256 _instantExitFee) external onlyOwner {
- _setInstantExitFee(_instantExitFee);
+ function setRedeemBonus(uint256 _redeemBonus) external onlyOwner {
+ _setRedeemBonus(_redeemBonus);
}
- function _setInstantExitFee(uint256 _instantExitFee) internal {
- if (_instantExitFee > BPS_DENOM) {
+ function _setRedeemBonus(uint256 _redeemBonus) internal {
+ if (_redeemBonus > BPS_DENOM) {
revert Exercise__FeeGreaterThanMax();
}
- instantExitFee = _instantExitFee;
+ redeemBonus = _redeemBonus;
+ }
+
+ function setMinAmountToTriggerSwap(uint256 _minAmountToTriggerSwap) external onlyOwner {
+ minAmountToTriggerSwap = _minAmountToTriggerSwap;
}
/// Internal functions
- function _instantExitExercise(address from, uint256 amount, address recipient, DiscountExerciseParams memory params)
+ function _zap(address from, uint256 amount, address recipient, DiscountExerciseParams memory params)
internal
virtual
returns (uint256 paymentAmount, address, uint256, uint256)
{
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
- uint256 underlyingAmount = amount.mulDivUp(multiplier, BPS_DENOM);
- uint256 feeAmount = amount.mulDivUp(instantExitFee, BPS_DENOM);
- underlyingAmount -= feeAmount;
+ uint256 discountedUnderlying = amount.mulDivUp(multiplier, BPS_DENOM);
+ uint256 fee = discountedUnderlying.mulDivUp(redeemBonus, BPS_DENOM);
+ uint256 underlyingAmount = discountedUnderlying - fee;
+
+ console.log("Discounted: %e \t fee: %e", discountedUnderlying, fee);
+
+ // Fee amount in underlying tokens which is effect of not having redeem bonus
+ feeAmount += fee;
+ console.log("feeAmount: %s vs minAmountToTriggerSwap: %s", feeAmount, minAmountToTriggerSwap);
+
+ if (feeAmount >= minAmountToTriggerSwap) {
+ uint256 minAmountOut = _getMinAmountOutData(feeAmount, swapProps.maxSwapSlippage, address(oracle));
+ console.log("minAmountOut: ", minAmountOut);
+ /* Approve the underlying token to make swap */
+ underlyingToken.approve(swapProps.swapper, feeAmount);
+ /* Swap underlying token to payment token (asset) */
+ console.log("under before: %e", underlyingToken.balanceOf(address(this)));
+ _generalSwap(swapProps.exchangeTypes, address(underlyingToken), address(paymentToken), feeAmount, minAmountOut, swapProps.exchangeAddress);
+ feeAmount = 0;
+ // transfer payment tokens from user to the set receivers
+ console.log("Fee recipients: ", feeRecipients.length);
+ distributeFees(paymentToken.balanceOf(address(this)), paymentToken);
+ }
- // transfer underlying tokens from user to the set receivers
- distributeFees(feeAmount, underlyingToken);
-
- // transfer underlying tokens to recipient
+ // transfer underlying tokens to recipient without the bonus
+ console.log("Transferring underlying : %e", underlyingAmount);
_pay(recipient, underlyingAmount);
emit Exercised(from, recipient, underlyingAmount, paymentAmount);
}
/// Internal functions
- function _discountExercise(address from, uint256 amount, address recipient, DiscountExerciseParams memory params)
+ function _redeem(address from, uint256 amount, address recipient, DiscountExerciseParams memory params)
internal
virtual
returns (uint256 paymentAmount, address, uint256, uint256)
@@ -195,9 +220,7 @@ contract DiscountExercise is BaseExercise {
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
// apply multiplier to price
- uint256 price = oracle.getPrice().mulDivUp(multiplier, BPS_DENOM);
-
- paymentAmount = amount.mulWadUp(price);
+ paymentAmount = _getPaymentAmount(amount);
if (paymentAmount > params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
// transfer payment tokens from user to the set receivers
@@ -224,6 +247,12 @@ contract DiscountExercise is BaseExercise {
/// @notice Returns the amount of payment tokens required to exercise the given amount of options tokens.
/// @param amount The amount of options tokens to exercise
function getPaymentAmount(uint256 amount) external view returns (uint256 paymentAmount) {
+ return _getPaymentAmount(amount);
+ }
+
+ function _getPaymentAmount(uint256 amount) private view returns (uint256 paymentAmount) {
+ console.log("Price inside: ", oracle.getPrice());
paymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(multiplier, BPS_DENOM));
+ // paymentAmount -= paymentAmount.mulDivUp(redeemBonus, BPS_DENOM); // redeem bonus applied
}
}
diff --git a/src/helpers/SwapHelper.sol b/src/helpers/SwapHelper.sol
new file mode 100644
index 0000000..bea68e7
--- /dev/null
+++ b/src/helpers/SwapHelper.sol
@@ -0,0 +1,104 @@
+// SPDX-License-Identifier: BUSL-1.1
+
+pragma solidity ^0.8.0;
+
+import {ISwapperSwaps, MinAmountOutData, MinAmountOutKind} from "vault-v2/ReaperSwapper.sol";
+import {IOracle} from "../interfaces/IOracle.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+
+import "forge-std/console.sol";
+
+enum ExchangeType {
+ UniV2,
+ Bal,
+ VeloSolid,
+ UniV3
+}
+
+struct SwapProps {
+ address swapper;
+ address exchangeAddress;
+ ExchangeType exchangeTypes;
+ uint256 maxSwapSlippage;
+}
+
+abstract contract SwapHelper {
+ using FixedPointMathLib for uint256;
+
+ /// @notice The denominator for converting the multiplier into a decimal number.
+ /// i.e. multiplier uses 4 decimals.
+ uint256 internal constant BPS_DENOM = 10_000;
+ SwapProps public swapProps;
+
+ error NotAnOwner();
+ error SwapHelper__SlippageGreaterThanMax();
+ error SwapHelper__ParamHasAddressZero();
+ error SwapHelper__AddressZero();
+ error SwapHelper__InvalidExchangeType(uint256 exType);
+
+ constructor(SwapProps memory _swapProps) {
+ _configSwapProps(_swapProps);
+ }
+
+ function configSwapProps(SwapProps memory _swapProps) external virtual {
+ _configSwapProps(_swapProps);
+ }
+
+ function _configSwapProps(SwapProps memory _swapProps) internal {
+ if (_swapProps.maxSwapSlippage > BPS_DENOM) {
+ revert SwapHelper__SlippageGreaterThanMax();
+ }
+ if (_swapProps.exchangeAddress == address(0)) {
+ revert SwapHelper__ParamHasAddressZero();
+ }
+ if (_swapProps.swapper == address(0)) {
+ revert SwapHelper__ParamHasAddressZero();
+ }
+ swapProps = _swapProps;
+ }
+
+ /**
+ * @dev Private function that allow to swap via multiple exchange types
+ * @param exType - type of exchange
+ * @param tokenIn - address of token in
+ * @param tokenOut - address of token out
+ * @param amount - amount of tokenIn to swap
+ * @param minAmountOut - minimal acceptable amount of tokenOut
+ * @param exchangeAddress - address of the exchange
+ */
+ function _generalSwap(ExchangeType exType, address tokenIn, address tokenOut, uint256 amount, uint256 minAmountOut, address exchangeAddress)
+ internal
+ {
+ ISwapperSwaps _swapper = ISwapperSwaps(swapProps.swapper);
+ MinAmountOutData memory minAmountOutData = MinAmountOutData(MinAmountOutKind.Absolute, minAmountOut);
+ if (exType == ExchangeType.UniV2) {
+ console.log("Calling Univ2");
+ _swapper.swapUniV2(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ } else if (exType == ExchangeType.Bal) {
+ _swapper.swapBal(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ console.log("HERE");
+ } else if (exType == ExchangeType.VeloSolid) {
+ _swapper.swapVelo(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ } else if (exType == ExchangeType.UniV3) {
+ console.log("Calling Univ3");
+ _swapper.swapUniV3(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ } else {
+ revert SwapHelper__InvalidExchangeType(uint256(exType));
+ }
+ }
+
+ /**
+ * @dev Private function that calculates minimal amount token out of swap using oracles
+ * @param _amountIn - amount of token to be swapped
+ * @param _maxSlippage - max allowed slippage
+ */
+ function _getMinAmountOutData(uint256 _amountIn, uint256 _maxSlippage, address _oracle) internal view returns (uint256) {
+ uint256 minAmountOut = 0;
+ /* Get price from oracle */
+ uint256 price = IOracle(_oracle).getPrice();
+ /* Deduct slippage amount from predicted amount */
+ minAmountOut = ((_amountIn.mulWadUp(price)) - (((_amountIn.mulWadUp(price)) * _maxSlippage) / BPS_DENOM));
+
+ return minAmountOut;
+ }
+}
diff --git a/src/interfaces/ISwapperSwaps.sol b/src/interfaces/ISwapperSwaps.sol
new file mode 100644
index 0000000..2cf6215
--- /dev/null
+++ b/src/interfaces/ISwapperSwaps.sol
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: BUSL1.1
+
+pragma solidity ^0.8.0;
+
+enum MinAmountOutKind {
+ Absolute,
+ ChainlinkBased
+}
+
+struct MinAmountOutData {
+ MinAmountOutKind kind;
+ uint256 absoluteOrBPSValue; // for type "ChainlinkBased", value must be in BPS
+}
+
+struct UniV3SwapData {
+ address[] path;
+ uint24[] fees;
+}
+
+interface ISwapperSwaps {
+ function swapUniV2(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router,
+ uint256 _deadline,
+ bool _tryCatchActive
+ ) external returns (uint256);
+
+ function swapUniV2(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router,
+ uint256 _deadline
+ ) external returns (uint256);
+
+ function swapUniV2(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router
+ ) external returns (uint256);
+
+ function swapBal(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _vault,
+ uint256 _deadline,
+ bool _tryCatchActive
+ ) external returns (uint256);
+
+ function swapBal(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _vault,
+ uint256 _deadline
+ ) external returns (uint256);
+
+ function swapBal(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _vault
+ ) external returns (uint256);
+
+ function swapThenaRam(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router,
+ uint256 _deadline,
+ bool _tryCatchActive
+ ) external returns (uint256);
+
+ function swapThenaRam(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router,
+ uint256 _deadline
+ ) external returns (uint256);
+
+ function swapThenaRam(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router
+ ) external returns (uint256);
+
+ function swapUniV3(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router,
+ uint256 _deadline,
+ bool _tryCatchActive
+ ) external returns (uint256);
+
+ function swapUniV3(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router,
+ uint256 _deadline
+ ) external returns (uint256);
+
+ function swapUniV3(
+ address _from,
+ address _to,
+ uint256 _amount,
+ MinAmountOutData memory _minAmountOutData,
+ address _router
+ ) external returns (uint256);
+}
diff --git a/test/Common.sol b/test/Common.sol
new file mode 100644
index 0000000..843f5fe
--- /dev/null
+++ b/test/Common.sol
@@ -0,0 +1,241 @@
+// SPDX-License-Identifier: BUSL-1.1
+
+pragma solidity ^0.8.0;
+
+import "forge-std/Test.sol";
+import {ReaperVaultV2} from "vault-v2/ReaperVaultV2.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {ReaperSwapper, MinAmountOutData, MinAmountOutKind, IVeloRouter, ISwapRouter, UniV3SwapData} from "vault-v2/ReaperSwapper.sol";
+import {OptionsToken} from "../src/OptionsToken.sol";
+import {SwapProps, ExchangeType} from "../src/helpers/SwapHelper.sol";
+import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
+import {ERC20} from "solmate/tokens/ERC20.sol";
+import {DiscountExerciseParams, DiscountExercise} from "../src/exercise/DiscountExercise.sol";
+import {IOracle} from "../src/interfaces/IOracle.sol";
+import {ThenaOracle, IThenaPair} from "../src/oracles/ThenaOracle.sol";
+import {IUniswapV3Factory} from "vault-v2/interfaces/IUniswapV3Factory.sol";
+import {IUniswapV3Pool, UniswapV3Oracle} from "../src/oracles/UniswapV3Oracle.sol";
+import {MockBalancerTwapOracle} from "../test/mocks/MockBalancerTwapOracle.sol";
+import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
+
+error Common__NotYetImplemented();
+
+/* Constants */
+uint256 constant NON_ZERO_PROFIT = 1;
+uint16 constant PRICE_MULTIPLIER = 5000; // 0.5
+uint256 constant INSTANT_EXIT_FEE = 500; // 0.05
+uint56 constant ORACLE_SECS = 30 minutes;
+uint56 constant ORACLE_AGO = 2 minutes;
+uint128 constant ORACLE_MIN_PRICE = 1e7;
+uint56 constant ORACLE_LARGEST_SAFETY_WINDOW = 24 hours;
+uint256 constant ORACLE_MIN_PRICE_DENOM = 10000;
+uint256 constant BPS_DENOM = 10_000;
+uint256 constant MAX_SUPPLY = 1e27; // the max supply of the options token & the underlying token
+
+uint256 constant AMOUNT = 2e18; // 2 ETH
+address constant REWARDER = 0x6A0406B8103Ec68EE9A713A073C7bD587c5e04aD;
+uint256 constant MIN_OATH_FOR_FUZZING = 1e19;
+
+/* OP */
+address constant OP_POOL_ADDRESSES_PROVIDER_V2 = 0xdDE5dC81e40799750B92079723Da2acAF9e1C6D6; // Granary (aavev2)
+// AAVEv3 - 0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb;
+address constant OP_WETH = 0x4200000000000000000000000000000000000006;
+address constant OP_OATHV1 = 0x39FdE572a18448F8139b7788099F0a0740f51205;
+address constant OP_OATHV2 = 0x00e1724885473B63bCE08a9f0a52F35b0979e35A;
+address constant OP_CUSDC = 0xEC8FEa79026FfEd168cCf5C627c7f486D77b765F;
+address constant OP_GUSDC = 0x7A0FDDBA78FF45D353B1630B77f4D175A00df0c0;
+address constant OP_GOP = 0x30091e843deb234EBb45c7E1Da4bBC4C33B3f0B4;
+address constant OP_SOOP = 0x8cD6b19A07d754bF36AdEEE79EDF4F2134a8F571;
+address constant OP_USDC = 0x7F5c764cBc14f9669B88837ca1490cCa17c31607;
+address constant OP_OP = 0x4200000000000000000000000000000000000042;
+/* Balancer */
+address constant OP_DATA_PROVIDER = 0x9546F673eF71Ff666ae66d01Fd6E7C6Dae5a9995;
+bytes32 constant OP_OATHV1_ETH_BPT = 0xd20f6f1d8a675cdca155cb07b5dc9042c467153f0002000000000000000000bc; // OATHv1/ETH BPT
+bytes32 constant OP_OATHV2_ETH_BPT = 0xd13d81af624956327a24d0275cbe54b0ee0e9070000200000000000000000109; // OATHv2/ETH BPT
+bytes32 constant OP_BTC_WETH_USDC_BPT = 0x5028497af0c9a54ea8c6d42a054c0341b9fc6168000100000000000000000004;
+bytes32 constant OP_WETH_OP_USDC_BPT = 0x39965c9dab5448482cf7e002f583c812ceb53046000100000000000000000003;
+address constant OP_BEETX_VAULT = 0xBA12222222228d8Ba445958a75a0704d566BF2C8;
+/* Uniswap */
+address constant OP_UNIV3_ROUTERV = 0xE592427A0AEce92De3Edee1F18E0157C05861564;
+address constant OP_UNIV3_FACTORY = 0x1F98431c8aD98523631AE4a59f267346ea31F984;
+/* Velodrome */
+address constant OP_VELO_OATHV2_ETH_PAIR = 0xc3439bC1A747e545887192d6b7F8BE47f608473F;
+address constant OP_VELO_ROUTER = 0xa062aE8A9c5e11aaA026fc2670B0D65cCc8B2858;
+address constant OP_VELO_FACTORY = 0xF1046053aa5682b4F9a81b5481394DA16BE5FF5a;
+
+/* BSC */
+address constant BSC_LENDING_POOL = 0xad441B19a9948c3a3f38C0AB6CCbd853036851d2;
+address constant BSC_ADDRESS_PROVIDER = 0xcD2f1565e6d2A83A167FDa6abFc10537d4e984f0;
+address constant BSC_DATA_PROVIDER = 0xFa0AC9b741F0868B2a8C4a6001811a5153019818;
+address constant BSC_HBR = 0x42c95788F791a2be3584446854c8d9BB01BE88A9;
+address constant BSC_USDT = 0x55d398326f99059fF775485246999027B3197955;
+address constant BSC_BTCB = 0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c;
+address constant BSC_WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
+address constant BSC_GUSDT = 0x686C55C8344E902CD8143Cf4BDF2c5089Be273c5;
+address constant BSC_THENA_ROUTER = 0xd4ae6eCA985340Dd434D38F470aCCce4DC78D109;
+address constant BSC_THENA_FACTORY = 0x2c788FE40A417612cb654b14a944cd549B5BF130;
+address constant BSC_UNIV3_ROUTERV2 = 0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2;
+address constant BSC_UNIV3_FACTORY = 0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7;
+address constant BSC_PANCAKE_ROUTER = 0x1b81D678ffb9C0263b24A97847620C99d213eB14;
+address constant BSC_PANCAKE_FACTORY = 0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865;
+address constant BSC_REWARDER = 0x071c626C75248E4F672bAb8c21c089166F49B615;
+
+/* ARB */
+address constant ARB_USDCE = 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8;
+address constant ARB_USDC = 0xaf88d065e77c8cC2239327C5EDb3A432268e5831;
+address constant ARB_RAM = 0xAAA6C1E32C55A7Bfa8066A6FAE9b42650F262418;
+address constant ARB_WETH = 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1;
+/* Ramses */
+address constant ARB_RAM_ROUTER = 0xAAA87963EFeB6f7E0a2711F397663105Acb1805e;
+address constant ARB_RAM_ROUTERV2 = 0xAA23611badAFB62D37E7295A682D21960ac85A90; //univ3
+address constant ARB_RAM_FACTORYV2 = 0xAA2cd7477c451E703f3B9Ba5663334914763edF8;
+
+/* MODE */
+address constant MODE_MODE = 0xDfc7C877a950e49D2610114102175A06C2e3167a;
+address constant MODE_USDC = 0xd988097fb8612cc24eeC14542bC03424c656005f;
+address constant MODE_WETH = 0x4200000000000000000000000000000000000006;
+/* Velodrome */
+address constant MODE_VELO_USDC_MODE_PAIR = 0x283bA4E204DFcB6381BCBf2cb5d0e765A2B57bC2; // DECIMALS ISSUE
+address constant MODE_VELO_WETH_MODE_PAIR = 0x0fba984c97539B3fb49ACDA6973288D0EFA903DB;
+address constant MODE_VELO_ROUTER = 0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45;
+
+contract Common is Test {
+ IERC20 nativeToken;
+ IERC20 paymentToken;
+ IERC20 underlyingToken;
+ IERC20 wantToken;
+ IVeloRouter veloRouter;
+ ISwapRouter swapRouter;
+ IUniswapV3Factory univ3Factory;
+ ReaperSwapper reaperSwapper;
+ MockBalancerTwapOracle underlyingPaymentMock;
+
+ address[] treasuries;
+ uint256[] feeBPS;
+ bytes32 paymentUnderlyingBpt;
+ bytes32 paymentWantBpt;
+
+ address pool;
+ address addressProvider;
+ address dataProvider;
+ address rewarder;
+ address balancerVault;
+ address owner;
+ address gWantAddress;
+ address tokenAdmin;
+ address strategist = address(4);
+ address vault;
+ address management1;
+ address management2;
+ address management3;
+ address keeper;
+
+ uint256 targetLtv = 0.77 ether;
+ uint256 maxLtv = 0.771 ether;
+
+ OptionsToken optionsToken;
+ ERC1967Proxy tmpProxy;
+ OptionsToken optionsTokenProxy;
+ DiscountExercise exerciser;
+
+ function fixture_setupAccountsAndFees(uint256 fee1, uint256 fee2) public {
+ /* Setup accounts */
+ owner = makeAddr("owner");
+ tokenAdmin = makeAddr("tokenAdmin");
+ treasuries = new address[](2);
+ treasuries[0] = makeAddr("treasury1");
+ treasuries[1] = makeAddr("treasury2");
+ vault = makeAddr("vault");
+ management1 = makeAddr("management1");
+ management2 = makeAddr("management2");
+ management3 = makeAddr("management3");
+ keeper = makeAddr("keeper");
+
+ feeBPS = new uint256[](2);
+ feeBPS[0] = fee1;
+ feeBPS[1] = fee2;
+ }
+
+ /* Functions */
+ function fixture_prepareOptionToken(uint256 _amount, address _compounder, address _strategy, OptionsToken _optionsToken, address _tokenAdmin)
+ public
+ {
+ /* Mint options tokens and transfer them to the strategy (rewards simulation) */
+ vm.prank(_tokenAdmin);
+ _optionsToken.mint(_strategy, _amount);
+ vm.prank(_strategy);
+ _optionsToken.approve(_compounder, _amount);
+ }
+
+ function fixture_updateSwapperPaths(ExchangeType exchangeType) public {
+ address[2] memory paths = [address(underlyingToken), address(paymentToken)];
+
+ if (exchangeType == ExchangeType.Bal) {
+ /* Configure balancer like dexes */
+ reaperSwapper.updateBalSwapPoolID(paths[0], paths[1], balancerVault, paymentUnderlyingBpt);
+ reaperSwapper.updateBalSwapPoolID(paths[1], paths[0], balancerVault, paymentUnderlyingBpt);
+ } else if (exchangeType == ExchangeType.VeloSolid) {
+ /* Configure thena ram like dexes */
+ IVeloRouter.Route[] memory veloPath = new IVeloRouter.Route[](1);
+ veloPath[0] = IVeloRouter.Route(paths[0], paths[1], false, OP_VELO_FACTORY);
+ reaperSwapper.updateVeloSwapPath(paths[0], paths[1], address(veloRouter), veloPath);
+ veloPath[0] = IVeloRouter.Route(paths[1], paths[0], false, OP_VELO_FACTORY);
+ reaperSwapper.updateVeloSwapPath(paths[1], paths[0], address(veloRouter), veloPath);
+ } else if (exchangeType == ExchangeType.UniV3) {
+ /* Configure univ3 like dexes */
+ uint24[] memory univ3Fees = new uint24[](1);
+ univ3Fees[0] = 500;
+ address[] memory univ3Path = new address[](2);
+
+ univ3Path[0] = paths[0];
+ univ3Path[1] = paths[1];
+ UniV3SwapData memory swapPathAndFees = UniV3SwapData(univ3Path, univ3Fees);
+ reaperSwapper.updateUniV3SwapPath(paths[0], paths[1], address(swapRouter), swapPathAndFees);
+ } else {
+ revert Common__NotYetImplemented();
+ }
+ }
+
+ function fixture_getMockedOracle(ExchangeType exchangeType) public returns (IOracle) {
+ IOracle oracle;
+ address[] memory _tokens = new address[](2);
+ _tokens[0] = address(paymentToken);
+ _tokens[1] = address(underlyingToken);
+ if (exchangeType == ExchangeType.Bal) {
+ BalancerOracle underlyingPaymentOracle;
+ underlyingPaymentMock = new MockBalancerTwapOracle(_tokens);
+ underlyingPaymentOracle =
+ new BalancerOracle(underlyingPaymentMock, address(underlyingToken), owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
+ oracle = underlyingPaymentOracle;
+ } else if (exchangeType == ExchangeType.VeloSolid) {
+ IVeloRouter router = IVeloRouter(payable(address(veloRouter)));
+ ThenaOracle underlyingPaymentOracle;
+ address pair = router.pairFor(address(underlyingToken), address(paymentToken), false, OP_VELO_FACTORY);
+ underlyingPaymentOracle = new ThenaOracle(IThenaPair(pair), address(underlyingToken), owner, ORACLE_SECS, ORACLE_MIN_PRICE);
+ oracle = IOracle(address(underlyingPaymentOracle));
+ } else if (exchangeType == ExchangeType.UniV3) {
+ IUniswapV3Pool univ3Pool = IUniswapV3Pool(univ3Factory.getPool(address(underlyingToken), address(paymentToken), 500));
+ UniswapV3Oracle univ3Oracle =
+ new UniswapV3Oracle(univ3Pool, address(paymentToken), owner, uint32(ORACLE_SECS), uint32(ORACLE_AGO), ORACLE_MIN_PRICE);
+ oracle = IOracle(address(univ3Oracle));
+ } else {
+ revert Common__NotYetImplemented();
+ }
+ return oracle;
+ }
+
+ function fixture_getSwapProps(ExchangeType exchangeType, uint256 slippage) public view returns (SwapProps memory) {
+ SwapProps memory swapProps;
+
+ if (exchangeType == ExchangeType.Bal) {
+ swapProps = SwapProps(address(reaperSwapper), address(swapRouter), ExchangeType.Bal, slippage);
+ } else if (exchangeType == ExchangeType.VeloSolid) {
+ swapProps = SwapProps(address(reaperSwapper), address(veloRouter), ExchangeType.VeloSolid, slippage);
+ } else if (exchangeType == ExchangeType.UniV3) {
+ swapProps = SwapProps(address(reaperSwapper), address(swapRouter), ExchangeType.UniV3, slippage);
+ } else {
+ revert Common__NotYetImplemented();
+ }
+ return swapProps;
+ }
+}
diff --git a/test/ItBscOptionsToken.t.solNOT b/test/ItBscOptionsToken.t.solNOT
new file mode 100644
index 0000000..8508344
--- /dev/null
+++ b/test/ItBscOptionsToken.t.solNOT
@@ -0,0 +1,407 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import "forge-std/Test.sol";
+
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
+
+import {OptionsToken} from "../src/OptionsToken.sol";
+import {DiscountExerciseParams, DiscountExercise, BaseExercise, SwapProps, ExchangeType} from "../src/exercise/DiscountExercise.sol";
+import {TestERC20} from "./mocks/TestERC20.sol";
+import {ThenaOracle} from "../src/oracles/ThenaOracle.sol";
+import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
+
+import {ReaperSwapper, MinAmountOutData, MinAmountOutKind, IThenaRamRouter, ISwapRouter, UniV3SwapData} from "vault-v2/ReaperSwapper.sol";
+
+contract OptionsTokenTest is Test {
+ using FixedPointMathLib for uint256;
+
+ uint256 constant FORK_BLOCK = 36349190;
+ string MAINNET_URL = vm.envString("BSC_RPC_URL");
+
+ address constant BSC_THENA_ROUTER = 0xd4ae6eCA985340Dd434D38F470aCCce4DC78D109;
+ address constant BSC_UNIV3_ROUTERV2 = 0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2;
+ address constant BSC_HBR = 0x42c95788F791a2be3584446854c8d9BB01BE88A9;
+ address constant BSC_WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
+ address constant ORACLE_CONTRACT = 0x733D732943aC1333771017e7c9D7b2d5abAdE5C4;
+
+ uint16 constant PRICE_MULTIPLIER = 5000; // 0.5
+ uint56 constant ORACLE_SECS = 30 minutes;
+ uint56 constant ORACLE_AGO = 2 minutes;
+ uint128 constant ORACLE_MIN_PRICE = 1e17;
+ uint56 constant ORACLE_LARGEST_SAFETY_WINDOW = 24 hours;
+ uint256 constant ORACLE_INIT_TWAP_VALUE = 1e19;
+ uint256 constant ORACLE_MIN_PRICE_DENOM = 10000;
+
+ uint256 constant MAX_SUPPLY = 1e27; // the max supply of the options token & the underlying token
+ uint256 constant INSTANT_EXIT_FEE = 500;
+
+ address owner;
+ address tokenAdmin;
+ address[] feeRecipients_;
+ uint256[] feeBPS_;
+
+ OptionsToken optionsToken;
+ DiscountExercise exerciser;
+ ThenaOracle oracle;
+ MockBalancerTwapOracle balancerTwapOracle;
+ IERC20 paymentToken;
+ address underlyingToken;
+ ReaperSwapper reaperSwapper;
+
+ function fixture_getSwapProps(ExchangeType exchangeType, uint256 slippage) public view returns (SwapProps memory) {
+ SwapProps memory swapProps;
+
+ if (exchangeType == ExchangeType.ThenaRam) {
+ swapProps = SwapProps(address(reaperSwapper), BSC_THENA_ROUTER, ExchangeType.ThenaRam, slippage);
+ } else if (exchangeType == ExchangeType.UniV3) {
+ swapProps = SwapProps(address(reaperSwapper), BSC_UNIV3_ROUTERV2, ExchangeType.UniV3, slippage);
+ } else {
+ // revert
+ }
+ return swapProps;
+ }
+
+ function fixture_updateSwapperPaths(ExchangeType exchangeType) public {
+ address[2] memory paths = [address(underlyingToken), address(paymentToken)];
+
+ if (exchangeType == ExchangeType.ThenaRam) {
+ /* Configure thena ram like dexes */
+ IThenaRamRouter.route[] memory thenaPath = new IThenaRamRouter.route[](1);
+ thenaPath[0] = IThenaRamRouter.route(paths[0], paths[1], false);
+ reaperSwapper.updateThenaRamSwapPath(paths[0], paths[1], address(BSC_THENA_ROUTER), thenaPath);
+ thenaPath[0] = IThenaRamRouter.route(paths[1], paths[0], false);
+ reaperSwapper.updateThenaRamSwapPath(paths[1], paths[0], address(BSC_THENA_ROUTER), thenaPath);
+ } else if (exchangeType == ExchangeType.UniV3) {
+ /* Configure univ3 like dexes */
+ uint24[] memory univ3Fees = new uint24[](1);
+ univ3Fees[0] = 500;
+ address[] memory univ3Path = new address[](2);
+
+ univ3Path[0] = paths[0];
+ univ3Path[1] = paths[1];
+ UniV3SwapData memory swapPathAndFees = UniV3SwapData(univ3Path, univ3Fees);
+ reaperSwapper.updateUniV3SwapPath(paths[0], paths[1], address(BSC_UNIV3_ROUTERV2), swapPathAndFees);
+ } else {
+ // revert
+ }
+ }
+
+ function setUp() public {
+ uint256 bscFork = vm.createFork(MAINNET_URL, FORK_BLOCK);
+ vm.selectFork(bscFork);
+
+ // set up accounts
+ owner = makeAddr("owner");
+ tokenAdmin = makeAddr("tokenAdmin");
+
+ feeRecipients_ = new address[](2);
+ feeRecipients_[0] = makeAddr("feeRecipient");
+ feeRecipients_[1] = makeAddr("feeRecipient2");
+
+ feeBPS_ = new uint256[](2);
+ feeBPS_[0] = 1000; // 10%
+ feeBPS_[1] = 9000; // 90%
+
+ // deploy contracts
+ paymentToken = IERC20(BSC_WBNB);
+ underlyingToken = BSC_HBR;
+
+ address implementation = address(new OptionsToken());
+ ERC1967Proxy proxy = new ERC1967Proxy(implementation, "");
+ optionsToken = OptionsToken(address(proxy));
+ optionsToken.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
+ optionsToken.transferOwnership(owner);
+
+ /* Reaper deployment and configuration */
+ address[] memory strategists = new address[](1);
+ strategists[0] = makeAddr("strategist");
+ reaperSwapper = new ReaperSwapper();
+ ERC1967Proxy tmpProxy = new ERC1967Proxy(address(reaperSwapper), "");
+ reaperSwapper = ReaperSwapper(address(tmpProxy));
+ reaperSwapper.initialize(strategists, address(this), address(this));
+
+ fixture_updateSwapperPaths(ExchangeType.ThenaRam);
+
+ SwapProps memory swapProps = fixture_getSwapProps(ExchangeType.ThenaRam, 200);
+
+ address[] memory tokens = new address[](2);
+ tokens[0] = address(paymentToken);
+ tokens[1] = underlyingToken;
+
+ balancerTwapOracle = new MockBalancerTwapOracle(tokens);
+ console.log(tokens[0], tokens[1]);
+ oracle = ThenaOracle(ORACLE_CONTRACT);
+ exerciser = new DiscountExercise(
+ optionsToken,
+ owner,
+ IERC20(address(paymentToken)),
+ IERC20(underlyingToken),
+ oracle,
+ PRICE_MULTIPLIER,
+ INSTANT_EXIT_FEE,
+ feeRecipients_,
+ feeBPS_,
+ swapProps
+ );
+ deal(underlyingToken, address(exerciser), 1e20 ether);
+
+ // add exerciser to the list of options
+ vm.startPrank(owner);
+ optionsToken.setExerciseContract(address(exerciser), true);
+ vm.stopPrank();
+
+ // set up contracts
+ balancerTwapOracle.setTwapValue(ORACLE_INIT_TWAP_VALUE);
+ paymentToken.approve(address(exerciser), type(uint256).max);
+ }
+
+ function test_onlyTokenAdminCanMint(uint256 amount, address hacker) public {
+ vm.assume(hacker != tokenAdmin);
+
+ // try minting as non token admin
+ vm.startPrank(hacker);
+ vm.expectRevert(OptionsToken.OptionsToken__NotTokenAdmin.selector);
+ optionsToken.mint(address(this), amount);
+ vm.stopPrank();
+
+ // mint as token admin
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // verify balance
+ assertEqDecimal(optionsToken.balanceOf(address(this)), amount, 18);
+ }
+
+ function test_discountExerciseHappyPath(uint256 amount, address recipient) public {
+ amount = bound(amount, 100, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were transferred
+ assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
+ uint256 paymentFee1 = expectedPaymentAmount.mulDivDown(feeBPS_[0], 10000);
+ uint256 paymentFee2 = expectedPaymentAmount - paymentFee1;
+ assertEqDecimal(paymentToken.balanceOf(feeRecipients_[0]), paymentFee1, 18, "fee recipient 1 didn't receive payment tokens");
+ assertEqDecimal(paymentToken.balanceOf(feeRecipients_[1]), paymentFee2, 18, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(expectedPaymentAmount, paymentAmount, 18, "exercise returned wrong value");
+ }
+
+ function test_instantExitExerciseHappyPath(uint256 amount, address recipient) public {
+ amount = bound(amount, 1e16, 1e22);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
+ uint256 expectedUnderlyingAmount = discountedUnderlying - amount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+ console.log("discountedUnderlying:", discountedUnderlying);
+ console.log("expectedUnderlyingAmount:", expectedUnderlyingAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were transferred
+ assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
+ uint256 calcPaymentAmount = exerciser.getPaymentAmount(amount);
+ uint256 totalFee = calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ uint256 fee1 = totalFee.mulDivDown(feeBPS_[0], 10_000);
+ uint256 fee2 = totalFee - fee1;
+ console.log("paymentFee1: ", fee1);
+ console.log("paymentFee2: ", fee2);
+ assertApproxEqRel(IERC20(paymentToken).balanceOf(feeRecipients_[0]), fee1, 10e16, "fee recipient 1 didn't receive payment tokens");
+ assertApproxEqRel(IERC20(paymentToken).balanceOf(feeRecipients_[1]), fee2, 10e16, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
+ assertApproxEqAbs(IERC20(underlyingToken).balanceOf(recipient), expectedUnderlyingAmount, 1, "Recipient got wrong amount of underlying token");
+ }
+
+ function test_exerciseMinPrice(uint256 amount, address recipient) public {
+ amount = bound(amount, 1, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // set TWAP value such that the strike price is below the oracle's minPrice value
+ balancerTwapOracle.setTwapValue(ORACLE_MIN_PRICE - 1);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_MIN_PRICE);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(bytes4(keccak256("ThenaOracle__BelowMinPrice()")));
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
+
+ function test_priceMultiplier(uint256 amount, uint256 multiplier) public {
+ amount = bound(amount, 1, MAX_SUPPLY / 2);
+
+ vm.prank(owner);
+ exerciser.setMultiplier(10000); // full price
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount * 2);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ (uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ // update multiplier
+ multiplier = bound(multiplier, 1000, 20000);
+ vm.prank(owner);
+ exerciser.setMultiplier(multiplier);
+
+ // exercise options tokens
+ uint256 newPrice = oracle.getPrice().mulDivUp(multiplier, 10000);
+ uint256 newExpectedPaymentAmount = amount.mulWadUp(newPrice);
+ params.maxPaymentAmount = newExpectedPaymentAmount;
+
+ deal(address(paymentToken), address(this), newExpectedPaymentAmount);
+ (uint256 newPaidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+ // verify payment tokens were transferred
+ assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
+ assertEq(newPaidAmount, paidAmount.mulDivUp(multiplier, 10000), "incorrect discount");
+ }
+
+ function test_exerciseHighSlippage(uint256 amount, address recipient) public {
+ amount = bound(amount, 1, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(DiscountExercise.Exercise__SlippageTooHigh.selector);
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
+
+ // function test_exerciseTwapOracleNotReady(uint256 amount, address recipient) public {
+ // amount = bound(amount, 1, MAX_SUPPLY);
+
+ // // mint options tokens
+ // vm.prank(tokenAdmin);
+ // optionsToken.mint(address(this), amount);
+
+ // // mint payment tokens
+ // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ // deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // // update oracle params
+ // // such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
+ // // which is outside of the largest safety window
+ // // vm.prank(owner);
+ // // oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
+
+ // // exercise options tokens which should fail
+ // DiscountExerciseParams memory params =
+ // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ // vm.expectRevert(ThenaOracle.ThenaOracle__TWAPOracleNotReady.selector);
+ // optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ // }
+
+ function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
+ amount = bound(amount, 0, MAX_SUPPLY);
+ deadline = bound(deadline, 0, block.timestamp - 1);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline, isInstantExit: false});
+ if (amount != 0) {
+ vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
+ }
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
+
+ function test_exerciseNotOToken(uint256 amount, address recipient) public {
+ amount = bound(amount, 0, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(BaseExercise.Exercise__NotOToken.selector);
+ exerciser.exercise(address(this), amount, recipient, abi.encode(params));
+ }
+
+ function test_exerciseNotExerciseContract(uint256 amount, address recipient) public {
+ amount = bound(amount, 1, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // set option inactive
+ vm.prank(owner);
+ optionsToken.setExerciseContract(address(exerciser), false);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
+}
diff --git a/test/ItModeOptionsToken.t.sol b/test/ItModeOptionsToken.t.sol
new file mode 100644
index 0000000..8287b09
--- /dev/null
+++ b/test/ItModeOptionsToken.t.sol
@@ -0,0 +1,391 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import "forge-std/Test.sol";
+
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
+
+import {OptionsToken} from "../src/OptionsToken.sol";
+import {DiscountExerciseParams, DiscountExercise, BaseExercise} from "../src/exercise/DiscountExercise.sol";
+// import {SwapProps, ExchangeType} from "../src/helpers/SwapHelper.sol";
+import {TestERC20} from "./mocks/TestERC20.sol";
+import {ThenaOracle} from "../src/oracles/ThenaOracle.sol";
+import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
+
+import {ReaperSwapper, MinAmountOutData, MinAmountOutKind, IVeloRouter, ISwapRouter, UniV3SwapData} from "vault-v2/ReaperSwapper.sol";
+
+import "./Common.sol";
+
+contract ModeOptionsTokenTest is Test, Common {
+ using FixedPointMathLib for uint256;
+
+ uint256 constant FORK_BLOCK = 9260950;
+ string MAINNET_URL = vm.envString("MODE_RPC_URL");
+
+ uint16 constant PRICE_MULTIPLIER = 5000; // 0.5
+ uint56 constant ORACLE_SECS = 30 minutes;
+ uint56 constant ORACLE_AGO = 2 minutes;
+ uint128 constant ORACLE_MIN_PRICE = 1e17;
+ uint56 constant ORACLE_LARGEST_SAFETY_WINDOW = 24 hours;
+ uint256 constant ORACLE_INIT_TWAP_VALUE = 1e19;
+ uint128 constant ORACLE_MIN_PRICE_DENOM = 10000;
+
+ uint256 constant MAX_SUPPLY = 1e27; // the max supply of the options token & the underlying token
+ uint256 constant INSTANT_EXIT_FEE = 500;
+
+ address[] feeRecipients_;
+ uint256[] feeBPS_;
+
+ ThenaOracle oracle;
+ MockBalancerTwapOracle balancerTwapOracle;
+
+ // function fixture_getSwapProps(ExchangeType exchangeType, uint256 slippage) public view returns (SwapProps memory) {
+ // SwapProps memory swapProps;
+
+ // if (exchangeType == ExchangeType.ThenaRam) {
+ // swapProps = SwapProps(address(reaperSwapper), BSC_THENA_ROUTER, ExchangeType.ThenaRam, slippage);
+ // } else if (exchangeType == ExchangeType.UniV3) {
+ // swapProps = SwapProps(address(reaperSwapper), BSC_UNIV3_ROUTERV2, ExchangeType.UniV3, slippage);
+ // } else {
+ // // revert
+ // }
+ // return swapProps;
+ // }
+
+ // function fixture_updateSwapperPaths(ExchangeType exchangeType) public {
+ // address[2] memory paths = [address(underlyingToken), address(paymentToken)];
+
+ // if (exchangeType == ExchangeType.ThenaRam) {
+ // /* Configure thena ram like dexes */
+ // IThenaRamRouter.route[] memory thenaPath = new IThenaRamRouter.route[](1);
+ // thenaPath[0] = IThenaRamRouter.route(paths[0], paths[1], false);
+ // reaperSwapper.updateThenaRamSwapPath(paths[0], paths[1], address(BSC_THENA_ROUTER), thenaPath);
+ // thenaPath[0] = IThenaRamRouter.route(paths[1], paths[0], false);
+ // reaperSwapper.updateThenaRamSwapPath(paths[1], paths[0], address(BSC_THENA_ROUTER), thenaPath);
+ // } else if (exchangeType == ExchangeType.UniV3) {
+ // /* Configure univ3 like dexes */
+ // uint24[] memory univ3Fees = new uint24[](1);
+ // univ3Fees[0] = 500;
+ // address[] memory univ3Path = new address[](2);
+
+ // univ3Path[0] = paths[0];
+ // univ3Path[1] = paths[1];
+ // UniV3SwapData memory swapPathAndFees = UniV3SwapData(univ3Path, univ3Fees);
+ // reaperSwapper.updateUniV3SwapPath(paths[0], paths[1], address(BSC_UNIV3_ROUTERV2), swapPathAndFees);
+ // } else {
+ // // revert
+ // }
+ // }
+
+ function setUp() public {
+ /* Common assignments */
+ ExchangeType exchangeType = ExchangeType.VeloSolid;
+ // nativeToken = IERC20(OP_WETH);
+ paymentToken = IERC20(MODE_MODE);
+ underlyingToken = IERC20(MODE_WETH);
+ // wantToken = IERC20(OP_OP);
+ // paymentUnderlyingBpt = OP_OATHV2_ETH_BPT;
+ // paymentWantBpt = OP_WETH_OP_USDC_BPT;
+ // balancerVault = OP_BEETX_VAULT;
+ // swapRouter = ISwapRouter(OP_BEETX_VAULT);
+ // univ3Factory = IUniswapV3Factory(OP_UNIV3_FACTORY);
+ veloRouter = IVeloRouter(MODE_VELO_ROUTER);
+
+ /* Setup network */
+ uint256 fork = vm.createFork(MAINNET_URL, FORK_BLOCK);
+ vm.selectFork(fork);
+
+ // set up accounts
+ owner = makeAddr("owner");
+ tokenAdmin = makeAddr("tokenAdmin");
+
+ feeRecipients_ = new address[](2);
+ feeRecipients_[0] = makeAddr("feeRecipient");
+ feeRecipients_[1] = makeAddr("feeRecipient2");
+
+ feeBPS_ = new uint256[](2);
+ feeBPS_[0] = 1000; // 10%
+ feeBPS_[1] = 9000; // 90%
+
+ address implementation = address(new OptionsToken());
+ ERC1967Proxy proxy = new ERC1967Proxy(implementation, "");
+ optionsToken = OptionsToken(address(proxy));
+ optionsToken.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
+ optionsToken.transferOwnership(owner);
+
+ /* Reaper deployment and configuration */
+ address[] memory strategists = new address[](1);
+ strategists[0] = makeAddr("strategist");
+ reaperSwapper = new ReaperSwapper();
+ ERC1967Proxy tmpProxy = new ERC1967Proxy(address(reaperSwapper), "");
+ reaperSwapper = ReaperSwapper(address(tmpProxy));
+ reaperSwapper.initialize(strategists, address(this), address(this));
+
+ fixture_updateSwapperPaths(ExchangeType.VeloSolid);
+
+ SwapProps memory swapProps = fixture_getSwapProps(ExchangeType.VeloSolid, 200);
+
+ address[] memory tokens = new address[](2);
+ tokens[0] = address(paymentToken);
+ tokens[1] = address(underlyingToken);
+
+ balancerTwapOracle = new MockBalancerTwapOracle(tokens);
+ console.log(tokens[0], tokens[1]);
+ oracle = new ThenaOracle(IThenaPair(MODE_VELO_WETH_MODE_PAIR), address(underlyingToken), owner, ORACLE_SECS, ORACLE_MIN_PRICE_DENOM);
+ exerciser = new DiscountExercise(
+ optionsToken,
+ owner,
+ IERC20(address(paymentToken)),
+ underlyingToken,
+ oracle,
+ PRICE_MULTIPLIER,
+ INSTANT_EXIT_FEE,
+ feeRecipients_,
+ feeBPS_,
+ swapProps
+ );
+ deal(address(underlyingToken), address(exerciser), 1e20 ether);
+
+ // add exerciser to the list of options
+ vm.startPrank(owner);
+ optionsToken.setExerciseContract(address(exerciser), true);
+ vm.stopPrank();
+
+ // set up contracts
+ balancerTwapOracle.setTwapValue(ORACLE_INIT_TWAP_VALUE);
+ paymentToken.approve(address(exerciser), type(uint256).max);
+ }
+
+ function test_modeRedeemPositiveScenario(uint256 amount, address recipient) public {
+ amount = bound(amount, 100, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were transferred
+ assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
+ uint256 paymentFee1 = expectedPaymentAmount.mulDivDown(feeBPS_[0], 10000);
+ uint256 paymentFee2 = expectedPaymentAmount - paymentFee1;
+ assertEqDecimal(paymentToken.balanceOf(feeRecipients_[0]), paymentFee1, 18, "fee recipient 1 didn't receive payment tokens");
+ assertEqDecimal(paymentToken.balanceOf(feeRecipients_[1]), paymentFee2, 18, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(expectedPaymentAmount, paymentAmount, 18, "exercise returned wrong value");
+ }
+
+ function test_modeZapPositiveScenario(uint256 amount, address recipient) public {
+ amount = bound(amount, 1e10, 1e18 - 1);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
+ uint256 expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ console.log("discountedUnderlying:", discountedUnderlying);
+ console.log("expectedUnderlyingAmount:", expectedUnderlyingAmount);
+
+ // Calculate total fee from zapping
+ uint256 calcPaymentAmount = exerciser.getPaymentAmount(amount);
+ uint256 totalFee = calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+
+ vm.prank(owner);
+ exerciser.setMinAmountToTriggerSwap(totalFee + 1);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ console.log("Exercise 1");
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were not transferred
+ assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
+ //verify whether distributions not happened
+ assertEq(IERC20(paymentToken).balanceOf(feeRecipients_[0]), 0, "fee recipient 1 received payment tokens but shouldn't");
+ assertEq(IERC20(paymentToken).balanceOf(feeRecipients_[1]), 0, "fee recipient 2 received payment tokens but shouldn't");
+ assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
+ uint256 balanceAfterFirstExercise = underlyingToken.balanceOf(recipient);
+ assertApproxEqAbs(balanceAfterFirstExercise, expectedUnderlyingAmount, 1, "Recipient got wrong amount of underlying token");
+
+ /*---------- Second call -----------*/
+ amount = bound(amount, 1e18, 1e24);
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
+ expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ (paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ console.log("Exercise 2");
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were not transferred
+ assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
+
+ // verify fee is distributed
+ calcPaymentAmount = exerciser.getPaymentAmount(amount);
+ totalFee += calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ uint256 fee1 = totalFee.mulDivDown(feeBPS_[0], 10_000);
+ uint256 fee2 = totalFee - fee1;
+ console.log("paymentFee1: ", fee1);
+ console.log("paymentFee2: ", fee2);
+ assertApproxEqRel(IERC20(paymentToken).balanceOf(feeRecipients_[0]), fee1, 5e16, "fee recipient 1 didn't receive payment tokens");
+ assertApproxEqRel(IERC20(paymentToken).balanceOf(feeRecipients_[1]), fee2, 5e16, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
+ assertApproxEqAbs(
+ underlyingToken.balanceOf(recipient) + balanceAfterFirstExercise,
+ expectedUnderlyingAmount,
+ 1,
+ "Recipient got wrong amount of underlying token"
+ );
+ }
+
+ // function test_priceMultiplier(uint256 amount, uint256 multiplier) public {
+ // amount = bound(amount, 1, MAX_SUPPLY / 2);
+
+ // vm.prank(owner);
+ // exerciser.setMultiplier(10000); // full price
+
+ // // mint options tokens
+ // vm.prank(tokenAdmin);
+ // optionsToken.mint(address(this), amount * 2);
+
+ // // mint payment tokens
+ // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE);
+ // deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // // exercise options tokens
+ // DiscountExerciseParams memory params =
+ // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ // (uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ // // update multiplier
+ // multiplier = bound(multiplier, 1000, 20000);
+ // vm.prank(owner);
+ // exerciser.setMultiplier(multiplier);
+
+ // // exercise options tokens
+ // uint256 newPrice = oracle.getPrice().mulDivUp(multiplier, 10000);
+ // uint256 newExpectedPaymentAmount = amount.mulWadUp(newPrice);
+ // params.maxPaymentAmount = newExpectedPaymentAmount;
+
+ // deal(address(paymentToken), address(this), newExpectedPaymentAmount);
+ // (uint256 newPaidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+ // // verify payment tokens were transferred
+ // assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
+ // assertEq(newPaidAmount, paidAmount.mulDivUp(multiplier, 10000), "incorrect discount");
+ // }
+
+ // function test_exerciseTwapOracleNotReady(uint256 amount, address recipient) public {
+ // amount = bound(amount, 1, MAX_SUPPLY);
+
+ // // mint options tokens
+ // vm.prank(tokenAdmin);
+ // optionsToken.mint(address(this), amount);
+
+ // // mint payment tokens
+ // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ // deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // // update oracle params
+ // // such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
+ // // which is outside of the largest safety window
+ // // vm.prank(owner);
+ // // oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
+
+ // // exercise options tokens which should fail
+ // DiscountExerciseParams memory params =
+ // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ // vm.expectRevert(ThenaOracle.ThenaOracle__TWAPOracleNotReady.selector);
+ // optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ // }
+
+ // function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
+ // amount = bound(amount, 0, MAX_SUPPLY);
+ // deadline = bound(deadline, 0, block.timestamp - 1);
+
+ // // mint options tokens
+ // vm.prank(tokenAdmin);
+ // optionsToken.mint(address(this), amount);
+
+ // // mint payment tokens
+ // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ // deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // // exercise options tokens
+ // DiscountExerciseParams memory params =
+ // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline, isInstantExit: false});
+ // if (amount != 0) {
+ // vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
+ // }
+ // optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ // }
+
+ function test_modeExerciseNotOToken(uint256 amount, address recipient) public {
+ amount = bound(amount, 0, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(BaseExercise.Exercise__NotOToken.selector);
+ exerciser.exercise(address(this), amount, recipient, abi.encode(params));
+ }
+
+ function test_modeExerciseNotExerciseContract(uint256 amount, address recipient) public {
+ amount = bound(amount, 1, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // set option inactive
+ vm.prank(owner);
+ optionsToken.setExerciseContract(address(exerciser), false);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
+}
diff --git a/test/ItOpOptionsToken.t copy.sol b/test/ItOpOptionsToken.t copy.sol
new file mode 100644
index 0000000..3d93c04
--- /dev/null
+++ b/test/ItOpOptionsToken.t copy.sol
@@ -0,0 +1,413 @@
+// SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.13;
+
+import "forge-std/Test.sol";
+
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
+
+import {OptionsToken} from "../src/OptionsToken.sol";
+import {DiscountExerciseParams, DiscountExercise, BaseExercise} from "../src/exercise/DiscountExercise.sol";
+// import {SwapProps, ExchangeType} from "../src/helpers/SwapHelper.sol";
+import {TestERC20} from "./mocks/TestERC20.sol";
+import {ThenaOracle} from "../src/oracles/ThenaOracle.sol";
+import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
+
+import {ReaperSwapper, MinAmountOutData, MinAmountOutKind, IVeloRouter, ISwapRouter, UniV3SwapData} from "vault-v2/ReaperSwapper.sol";
+
+import "./Common.sol";
+
+contract OpOptionsTokenTest is Test, Common {
+ using FixedPointMathLib for uint256;
+
+ uint256 constant FORK_BLOCK = 121377470;
+ string MAINNET_URL = vm.envString("OPTIMISM_RPC_URL");
+
+ uint16 constant PRICE_MULTIPLIER = 5000; // 0.5
+ uint56 constant ORACLE_SECS = 30 minutes;
+ uint56 constant ORACLE_AGO = 2 minutes;
+ uint128 constant ORACLE_MIN_PRICE = 1e17;
+ uint56 constant ORACLE_LARGEST_SAFETY_WINDOW = 24 hours;
+ uint256 constant ORACLE_INIT_TWAP_VALUE = 1e19;
+ uint128 constant ORACLE_MIN_PRICE_DENOM = 10000;
+
+ uint256 constant MAX_SUPPLY = 1e27; // the max supply of the options token & the underlying token
+ uint256 constant INSTANT_EXIT_FEE = 500;
+
+ address[] feeRecipients_;
+ uint256[] feeBPS_;
+
+ ThenaOracle oracle;
+ MockBalancerTwapOracle balancerTwapOracle;
+
+ // function fixture_getSwapProps(ExchangeType exchangeType, uint256 slippage) public view returns (SwapProps memory) {
+ // SwapProps memory swapProps;
+
+ // if (exchangeType == ExchangeType.ThenaRam) {
+ // swapProps = SwapProps(address(reaperSwapper), BSC_THENA_ROUTER, ExchangeType.ThenaRam, slippage);
+ // } else if (exchangeType == ExchangeType.UniV3) {
+ // swapProps = SwapProps(address(reaperSwapper), BSC_UNIV3_ROUTERV2, ExchangeType.UniV3, slippage);
+ // } else {
+ // // revert
+ // }
+ // return swapProps;
+ // }
+
+ // function fixture_updateSwapperPaths(ExchangeType exchangeType) public {
+ // address[2] memory paths = [address(underlyingToken), address(paymentToken)];
+
+ // if (exchangeType == ExchangeType.ThenaRam) {
+ // /* Configure thena ram like dexes */
+ // IThenaRamRouter.route[] memory thenaPath = new IThenaRamRouter.route[](1);
+ // thenaPath[0] = IThenaRamRouter.route(paths[0], paths[1], false);
+ // reaperSwapper.updateThenaRamSwapPath(paths[0], paths[1], address(BSC_THENA_ROUTER), thenaPath);
+ // thenaPath[0] = IThenaRamRouter.route(paths[1], paths[0], false);
+ // reaperSwapper.updateThenaRamSwapPath(paths[1], paths[0], address(BSC_THENA_ROUTER), thenaPath);
+ // } else if (exchangeType == ExchangeType.UniV3) {
+ // /* Configure univ3 like dexes */
+ // uint24[] memory univ3Fees = new uint24[](1);
+ // univ3Fees[0] = 500;
+ // address[] memory univ3Path = new address[](2);
+
+ // univ3Path[0] = paths[0];
+ // univ3Path[1] = paths[1];
+ // UniV3SwapData memory swapPathAndFees = UniV3SwapData(univ3Path, univ3Fees);
+ // reaperSwapper.updateUniV3SwapPath(paths[0], paths[1], address(BSC_UNIV3_ROUTERV2), swapPathAndFees);
+ // } else {
+ // // revert
+ // }
+ // }
+
+ function setUp() public {
+ /* Common assignments */
+ ExchangeType exchangeType = ExchangeType.VeloSolid;
+ nativeToken = IERC20(OP_WETH);
+ paymentToken = nativeToken;
+ underlyingToken = IERC20(OP_OATHV2);
+ wantToken = IERC20(OP_OP);
+ paymentUnderlyingBpt = OP_OATHV2_ETH_BPT;
+ paymentWantBpt = OP_WETH_OP_USDC_BPT;
+ balancerVault = OP_BEETX_VAULT;
+ swapRouter = ISwapRouter(OP_BEETX_VAULT);
+ univ3Factory = IUniswapV3Factory(OP_UNIV3_FACTORY);
+ veloRouter = IVeloRouter(OP_VELO_ROUTER);
+
+ /* Setup network */
+ uint256 fork = vm.createFork(MAINNET_URL, FORK_BLOCK);
+ vm.selectFork(fork);
+
+ // set up accounts
+ owner = makeAddr("owner");
+ tokenAdmin = makeAddr("tokenAdmin");
+
+ feeRecipients_ = new address[](2);
+ feeRecipients_[0] = makeAddr("feeRecipient");
+ feeRecipients_[1] = makeAddr("feeRecipient2");
+
+ feeBPS_ = new uint256[](2);
+ feeBPS_[0] = 1000; // 10%
+ feeBPS_[1] = 9000; // 90%
+
+ address implementation = address(new OptionsToken());
+ ERC1967Proxy proxy = new ERC1967Proxy(implementation, "");
+ optionsToken = OptionsToken(address(proxy));
+ optionsToken.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
+ optionsToken.transferOwnership(owner);
+
+ /* Reaper deployment and configuration */
+ address[] memory strategists = new address[](1);
+ strategists[0] = makeAddr("strategist");
+ reaperSwapper = new ReaperSwapper();
+ ERC1967Proxy tmpProxy = new ERC1967Proxy(address(reaperSwapper), "");
+ reaperSwapper = ReaperSwapper(address(tmpProxy));
+ reaperSwapper.initialize(strategists, address(this), address(this));
+
+ fixture_updateSwapperPaths(ExchangeType.VeloSolid);
+
+ SwapProps memory swapProps = fixture_getSwapProps(ExchangeType.VeloSolid, 200);
+
+ address[] memory tokens = new address[](2);
+ tokens[0] = address(paymentToken);
+ tokens[1] = address(underlyingToken);
+
+ balancerTwapOracle = new MockBalancerTwapOracle(tokens);
+ console.log(tokens[0], tokens[1]);
+ oracle = new ThenaOracle(IThenaPair(OP_VELO_OATHV2_ETH_PAIR), address(underlyingToken), owner, ORACLE_SECS, ORACLE_MIN_PRICE_DENOM);
+ exerciser = new DiscountExercise(
+ optionsToken,
+ owner,
+ IERC20(address(paymentToken)),
+ underlyingToken,
+ oracle,
+ PRICE_MULTIPLIER,
+ INSTANT_EXIT_FEE,
+ feeRecipients_,
+ feeBPS_,
+ swapProps
+ );
+ deal(address(underlyingToken), address(exerciser), 1e20 ether);
+
+ // add exerciser to the list of options
+ vm.startPrank(owner);
+ optionsToken.setExerciseContract(address(exerciser), true);
+ vm.stopPrank();
+
+ // set up contracts
+ balancerTwapOracle.setTwapValue(ORACLE_INIT_TWAP_VALUE);
+ paymentToken.approve(address(exerciser), type(uint256).max);
+ }
+
+ function test_opRedeemPositiveScenario(uint256 amount, address recipient) public {
+ amount = bound(amount, 100, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were transferred
+ assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
+ uint256 paymentFee1 = expectedPaymentAmount.mulDivDown(feeBPS_[0], 10000);
+ uint256 paymentFee2 = expectedPaymentAmount - paymentFee1;
+ assertEqDecimal(paymentToken.balanceOf(feeRecipients_[0]), paymentFee1, 18, "fee recipient 1 didn't receive payment tokens");
+ assertEqDecimal(paymentToken.balanceOf(feeRecipients_[1]), paymentFee2, 18, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(expectedPaymentAmount, paymentAmount, 18, "exercise returned wrong value");
+ }
+
+ function test_opZapPositiveScenario(uint256 amount, address recipient) public {
+ amount = bound(amount, 1e10, 1e18 - 1);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
+ uint256 expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ console.log("discountedUnderlying:", discountedUnderlying);
+ console.log("expectedUnderlyingAmount:", expectedUnderlyingAmount);
+
+ // Calculate total fee from zapping
+ uint256 calcPaymentAmount = exerciser.getPaymentAmount(amount);
+ uint256 totalFee = calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+
+ vm.prank(owner);
+ exerciser.setMinAmountToTriggerSwap(totalFee + 1);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ console.log("Exercise 1");
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were not transferred
+ assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
+ //verify whether distributions not happened
+ assertEq(IERC20(paymentToken).balanceOf(feeRecipients_[0]), 0, "fee recipient 1 received payment tokens but shouldn't");
+ assertEq(IERC20(paymentToken).balanceOf(feeRecipients_[1]), 0, "fee recipient 2 received payment tokens but shouldn't");
+ assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
+ uint256 balanceAfterFirstExercise = underlyingToken.balanceOf(recipient);
+ assertApproxEqAbs(balanceAfterFirstExercise, expectedUnderlyingAmount, 1, "Recipient got wrong amount of underlying token");
+
+ /*---------- Second call -----------*/
+ amount = bound(amount, 1e18, 1e24);
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
+ expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ (paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ console.log("Exercise 2");
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were not transferred
+ assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
+
+ // verify fee is distributed
+ calcPaymentAmount = exerciser.getPaymentAmount(amount);
+ totalFee += calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ uint256 fee1 = totalFee.mulDivDown(feeBPS_[0], 10_000);
+ uint256 fee2 = totalFee - fee1;
+ console.log("paymentFee1: ", fee1);
+ console.log("paymentFee2: ", fee2);
+ assertApproxEqRel(IERC20(paymentToken).balanceOf(feeRecipients_[0]), fee1, 5e16, "fee recipient 1 didn't receive payment tokens");
+ assertApproxEqRel(IERC20(paymentToken).balanceOf(feeRecipients_[1]), fee2, 5e16, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
+ assertApproxEqAbs(
+ underlyingToken.balanceOf(recipient) + balanceAfterFirstExercise,
+ expectedUnderlyingAmount,
+ 1,
+ "Recipient got wrong amount of underlying token"
+ );
+ }
+
+ function test_opExerciseMinPrice(uint256 amount, address recipient) public {
+ amount = bound(amount, 1, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // set TWAP value such that the strike price is below the oracle's minPrice value
+ balancerTwapOracle.setTwapValue(ORACLE_MIN_PRICE - 1);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_MIN_PRICE);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(bytes4(keccak256("ThenaOracle__BelowMinPrice()")));
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
+
+ // function test_priceMultiplier(uint256 amount, uint256 multiplier) public {
+ // amount = bound(amount, 1, MAX_SUPPLY / 2);
+
+ // vm.prank(owner);
+ // exerciser.setMultiplier(10000); // full price
+
+ // // mint options tokens
+ // vm.prank(tokenAdmin);
+ // optionsToken.mint(address(this), amount * 2);
+
+ // // mint payment tokens
+ // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE);
+ // deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // // exercise options tokens
+ // DiscountExerciseParams memory params =
+ // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ // (uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ // // update multiplier
+ // multiplier = bound(multiplier, 1000, 20000);
+ // vm.prank(owner);
+ // exerciser.setMultiplier(multiplier);
+
+ // // exercise options tokens
+ // uint256 newPrice = oracle.getPrice().mulDivUp(multiplier, 10000);
+ // uint256 newExpectedPaymentAmount = amount.mulWadUp(newPrice);
+ // params.maxPaymentAmount = newExpectedPaymentAmount;
+
+ // deal(address(paymentToken), address(this), newExpectedPaymentAmount);
+ // (uint256 newPaidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+ // // verify payment tokens were transferred
+ // assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
+ // assertEq(newPaidAmount, paidAmount.mulDivUp(multiplier, 10000), "incorrect discount");
+ // }
+
+ // function test_exerciseTwapOracleNotReady(uint256 amount, address recipient) public {
+ // amount = bound(amount, 1, MAX_SUPPLY);
+
+ // // mint options tokens
+ // vm.prank(tokenAdmin);
+ // optionsToken.mint(address(this), amount);
+
+ // // mint payment tokens
+ // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ // deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // // update oracle params
+ // // such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
+ // // which is outside of the largest safety window
+ // // vm.prank(owner);
+ // // oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
+
+ // // exercise options tokens which should fail
+ // DiscountExerciseParams memory params =
+ // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ // vm.expectRevert(ThenaOracle.ThenaOracle__TWAPOracleNotReady.selector);
+ // optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ // }
+
+ // function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
+ // amount = bound(amount, 0, MAX_SUPPLY);
+ // deadline = bound(deadline, 0, block.timestamp - 1);
+
+ // // mint options tokens
+ // vm.prank(tokenAdmin);
+ // optionsToken.mint(address(this), amount);
+
+ // // mint payment tokens
+ // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ // deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // // exercise options tokens
+ // DiscountExerciseParams memory params =
+ // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline, isInstantExit: false});
+ // if (amount != 0) {
+ // vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
+ // }
+ // optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ // }
+
+ function test_exerciseNotOToken(uint256 amount, address recipient) public {
+ amount = bound(amount, 0, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(BaseExercise.Exercise__NotOToken.selector);
+ exerciser.exercise(address(this), amount, recipient, abi.encode(params));
+ }
+
+ function test_exerciseNotExerciseContract(uint256 amount, address recipient) public {
+ amount = bound(amount, 1, MAX_SUPPLY);
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // set option inactive
+ vm.prank(owner);
+ optionsToken.setExerciseContract(address(exerciser), false);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens which should fail
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
+}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 76edb83..5f72a23 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -8,11 +8,14 @@ import {IERC20} from "oz/token/ERC20/IERC20.sol";
import {ERC1967Proxy} from "oz/proxy/ERC1967/ERC1967Proxy.sol";
import {OptionsToken} from "../src/OptionsToken.sol";
-import {DiscountExerciseParams, DiscountExercise, BaseExercise} from "../src/exercise/DiscountExercise.sol";
+import {DiscountExerciseParams, DiscountExercise, BaseExercise, SwapProps, ExchangeType} from "../src/exercise/DiscountExercise.sol";
import {TestERC20} from "./mocks/TestERC20.sol";
+import {IOracle} from "../src/interfaces/IOracle.sol";
import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
import {MockBalancerTwapOracle} from "./mocks/MockBalancerTwapOracle.sol";
+import {ReaperSwapperMock} from "./mocks/ReaperSwapperMock.sol";
+
contract OptionsTokenTest is Test {
using FixedPointMathLib for uint256;
@@ -33,10 +36,11 @@ contract OptionsTokenTest is Test {
OptionsToken optionsToken;
DiscountExercise exerciser;
- BalancerOracle oracle;
+ IOracle oracle;
MockBalancerTwapOracle balancerTwapOracle;
TestERC20 paymentToken;
address underlyingToken;
+ ReaperSwapperMock reaperSwapper;
function setUp() public {
// set up accounts
@@ -61,16 +65,37 @@ contract OptionsTokenTest is Test {
optionsToken.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
optionsToken.transferOwnership(owner);
+ /* Reaper deployment and configuration */
+
+ uint256 slippage = 500; // 5%
+
address[] memory tokens = new address[](2);
tokens[0] = address(paymentToken);
tokens[1] = underlyingToken;
balancerTwapOracle = new MockBalancerTwapOracle(tokens);
console.log(tokens[0], tokens[1]);
- oracle = new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE);
- exerciser =
- new DiscountExercise(optionsToken, owner, IERC20(address(paymentToken)), IERC20(underlyingToken), oracle, PRICE_MULTIPLIER, INSTANT_EXIT_FEE, feeRecipients_, feeBPS_);
- TestERC20(underlyingToken).mint(address(exerciser), 1e20 ether);
+ oracle = IOracle(new BalancerOracle(balancerTwapOracle, underlyingToken, owner, ORACLE_SECS, ORACLE_AGO, ORACLE_MIN_PRICE));
+
+ reaperSwapper = new ReaperSwapperMock(oracle, address(underlyingToken), address(paymentToken));
+ deal(underlyingToken, address(reaperSwapper), 1e27);
+ deal(address(paymentToken), address(reaperSwapper), 1e27);
+
+ SwapProps memory swapProps = SwapProps(address(reaperSwapper), address(reaperSwapper), ExchangeType.Bal, slippage);
+
+ exerciser = new DiscountExercise(
+ optionsToken,
+ owner,
+ IERC20(address(paymentToken)),
+ IERC20(underlyingToken),
+ oracle,
+ PRICE_MULTIPLIER,
+ INSTANT_EXIT_FEE,
+ feeRecipients_,
+ feeBPS_,
+ swapProps
+ );
+ deal(underlyingToken, address(exerciser), 1e27);
// add exerciser to the list of options
vm.startPrank(owner);
@@ -101,17 +126,19 @@ contract OptionsTokenTest is Test {
function test_discountExerciseHappyPath(uint256 amount, address recipient) public {
amount = bound(amount, 100, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
// mint options tokens
vm.prank(tokenAdmin);
optionsToken.mint(address(this), amount);
// mint payment tokens
- uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
- paymentToken.mint(address(this), expectedPaymentAmount);
+ uint256 expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
(uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
@@ -124,11 +151,15 @@ contract OptionsTokenTest is Test {
uint256 paymentFee2 = expectedPaymentAmount - paymentFee1;
assertEqDecimal(paymentToken.balanceOf(feeRecipients_[0]), paymentFee1, 18, "fee recipient 1 didn't receive payment tokens");
assertEqDecimal(paymentToken.balanceOf(feeRecipients_[1]), paymentFee2, 18, "fee recipient 2 didn't receive payment tokens");
- assertEqDecimal(paymentAmount, expectedPaymentAmount, 18, "exercise returned wrong value");
+ assertEqDecimal(expectedPaymentAmount, paymentAmount, 18, "exercise returned wrong value");
}
function test_instantExitExerciseHappyPath(uint256 amount, address recipient) public {
- amount = bound(amount, 10_000, MAX_SUPPLY);
+ amount = bound(amount, 1e16, 1e22);
+ vm.assume(
+ recipient != address(0) && recipient != feeRecipients_[0] && recipient != feeRecipients_[1] && recipient != address(this)
+ && recipient != address(optionsToken) && recipient != address(exerciser)
+ );
// mint options tokens
vm.prank(tokenAdmin);
@@ -137,13 +168,14 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
uint256 discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
- uint256 expectedUnderlyingAmount = discountedUnderlying - amount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
- paymentToken.mint(address(this), expectedPaymentAmount);
+ uint256 expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
console.log("discountedUnderlying:", discountedUnderlying);
console.log("expectedUnderlyingAmount:", expectedUnderlyingAmount);
-
+
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
(uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
// verify options tokens were transferred
@@ -152,19 +184,21 @@ contract OptionsTokenTest is Test {
// verify payment tokens were transferred
assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
- uint256 totalFee = amount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ uint256 calcPaymentAmount = exerciser.getPaymentAmount(amount);
+ uint256 totalFee = calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
uint256 fee1 = totalFee.mulDivDown(feeBPS_[0], 10_000);
uint256 fee2 = totalFee - fee1;
console.log("paymentFee1: ", fee1);
console.log("paymentFee2: ", fee2);
- assertEqDecimal(IERC20(underlyingToken).balanceOf(feeRecipients_[0]), fee1, 18, "fee recipient 1 didn't receive payment tokens");
- assertEqDecimal(IERC20(underlyingToken).balanceOf(feeRecipients_[1]), fee2, 18, "fee recipient 2 didn't receive payment tokens");
+ assertApproxEqRel(paymentToken.balanceOf(feeRecipients_[0]), fee1, 10e16, "fee recipient 1 didn't receive payment tokens");
+ assertApproxEqRel(paymentToken.balanceOf(feeRecipients_[1]), fee2, 10e16, "fee recipient 2 didn't receive payment tokens");
assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
- // assertEq(expectedUnderlyingAmount, IERC20(underlyingToken).balanceOf(recipient), "Recipient got wrong amount of underlying token");
+ assertApproxEqAbs(IERC20(underlyingToken).balanceOf(recipient), expectedUnderlyingAmount, 1, "Recipient got wrong amount of underlying token");
}
function test_exerciseMinPrice(uint256 amount, address recipient) public {
amount = bound(amount, 1, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
// mint options tokens
vm.prank(tokenAdmin);
@@ -175,10 +209,11 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_MIN_PRICE);
- paymentToken.mint(address(this), expectedPaymentAmount);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(bytes4(keccak256("BalancerOracle__BelowMinPrice()")));
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
@@ -195,10 +230,11 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE);
- paymentToken.mint(address(this), expectedPaymentAmount);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
(uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
// update multiplier
@@ -211,7 +247,7 @@ contract OptionsTokenTest is Test {
uint256 newExpectedPaymentAmount = amount.mulWadUp(newPrice);
params.maxPaymentAmount = newExpectedPaymentAmount;
- paymentToken.mint(address(this), newExpectedPaymentAmount);
+ deal(address(paymentToken), address(this), newExpectedPaymentAmount);
(uint256 newPaidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
// verify payment tokens were transferred
assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
@@ -220,6 +256,7 @@ contract OptionsTokenTest is Test {
function test_exerciseHighSlippage(uint256 amount, address recipient) public {
amount = bound(amount, 1, MAX_SUPPLY);
+ vm.assume(recipient != address(0));
// mint options tokens
vm.prank(tokenAdmin);
@@ -227,36 +264,38 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
- paymentToken.mint(address(this), expectedPaymentAmount);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1, deadline: type(uint256).max, isInstantExit: false});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount - 1, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(DiscountExercise.Exercise__SlippageTooHigh.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
- function test_exerciseTwapOracleNotReady(uint256 amount, address recipient) public {
- amount = bound(amount, 1, MAX_SUPPLY);
+ // function test_exerciseTwapOracleNotReady(uint256 amount, address recipient) public {
+ // amount = bound(amount, 1, MAX_SUPPLY);
- // mint options tokens
- vm.prank(tokenAdmin);
- optionsToken.mint(address(this), amount);
+ // // mint options tokens
+ // vm.prank(tokenAdmin);
+ // optionsToken.mint(address(this), amount);
- // mint payment tokens
- uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
- paymentToken.mint(address(this), expectedPaymentAmount);
+ // // mint payment tokens
+ // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ // deal(address(paymentToken), address(this), expectedPaymentAmount);
- // update oracle params
- // such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
- // which is outside of the largest safety window
- vm.prank(owner);
- oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
+ // // update oracle params
+ // // such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
+ // // which is outside of the largest safety window
+ // // vm.prank(owner);
+ // // oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
- // exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
- vm.expectRevert(BalancerOracle.BalancerOracle__TWAPOracleNotReady.selector);
- optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
- }
+ // // exercise options tokens which should fail
+ // DiscountExerciseParams memory params =
+ // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ // vm.expectRevert(ThenaOracle.ThenaOracle__TWAPOracleNotReady.selector);
+ // optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ // }
function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
amount = bound(amount, 0, MAX_SUPPLY);
@@ -268,10 +307,11 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
- paymentToken.mint(address(this), expectedPaymentAmount);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
// exercise options tokens
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline, isInstantExit: false});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline, isInstantExit: false});
if (amount != 0) {
vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
}
@@ -286,10 +326,11 @@ contract OptionsTokenTest is Test {
optionsToken.mint(address(this), amount);
uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
- paymentToken.mint(address(this), expectedPaymentAmount);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(BaseExercise.Exercise__NotOToken.selector);
exerciser.exercise(address(this), amount, recipient, abi.encode(params));
}
@@ -307,10 +348,11 @@ contract OptionsTokenTest is Test {
// mint payment tokens
uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
- paymentToken.mint(address(this), expectedPaymentAmount);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
// exercise options tokens which should fail
- DiscountExerciseParams memory params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
diff --git a/test/mocks/ReaperSwapperMock.sol b/test/mocks/ReaperSwapperMock.sol
new file mode 100644
index 0000000..2afa2f7
--- /dev/null
+++ b/test/mocks/ReaperSwapperMock.sol
@@ -0,0 +1,71 @@
+//SPDX-License-Identifier: AGPL-3.0
+pragma solidity ^0.8.0;
+
+import {IOracle} from "../../src/interfaces/IOracle.sol";
+
+import {ISwapperSwaps, MinAmountOutData, MinAmountOutKind} from "vault-v2/ReaperSwapper.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+
+import "forge-std/console.sol";
+
+contract ReaperSwapperMock {
+ using FixedPointMathLib for uint256;
+
+ IOracle oracle;
+ address underlyingToken;
+ address paymentToken;
+
+ constructor(IOracle _oracle, address _underlyingToken, address _paymentToken) {
+ oracle = _oracle;
+ underlyingToken = _underlyingToken;
+ paymentToken = _paymentToken;
+ }
+
+ function swapUniV2(address tokenIn, address tokenOut, uint256 amount, MinAmountOutData memory minAmountOutData, address exchangeAddress)
+ public
+ returns (uint256)
+ {
+ console.log("Called Univ2");
+ return _swap(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ }
+
+ function swapBal(address tokenIn, address tokenOut, uint256 amount, MinAmountOutData memory minAmountOutData, address exchangeAddress)
+ public
+ returns (uint256)
+ {
+ console.log("Called Bal");
+ return _swap(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ }
+
+ function swapVelo(address tokenIn, address tokenOut, uint256 amount, MinAmountOutData memory minAmountOutData, address exchangeAddress)
+ public
+ returns (uint256)
+ {
+ console.log("Called Velo");
+ return _swap(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ }
+
+ function swapUniV3(address tokenIn, address tokenOut, uint256 amount, MinAmountOutData memory minAmountOutData, address exchangeAddress)
+ public
+ returns (uint256)
+ {
+ console.log("Called Univ3");
+ return _swap(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ }
+
+ function _swap(address tokenIn, address tokenOut, uint256 amount, MinAmountOutData memory minAmountOutData, address exchangeAddress)
+ private
+ returns (uint256)
+ {
+ (address oraclePaymentToken, address oracleUnderlyingToken) = oracle.getTokens();
+ require(tokenIn == address(oracleUnderlyingToken) || tokenIn == address(oraclePaymentToken), "Not allowed token in");
+ require(tokenOut == address(oracleUnderlyingToken) || tokenOut == address(oraclePaymentToken), "Not allowed token");
+ IERC20(tokenIn).transferFrom(msg.sender, address(this), amount);
+ console.log("Price from oracle is: %e", oracle.getPrice());
+ uint256 amountToSend = (oracleUnderlyingToken == tokenIn) ? amount.mulWadUp(oracle.getPrice()) : (amount * 1e18) / oracle.getPrice();
+ console.log("Amount to send is : %e", amountToSend);
+ IERC20(tokenOut).transfer(msg.sender, amountToSend);
+ return amountToSend;
+ }
+}
From b7e5e4c5aa2c0b6edee727578ae7fe4348f4b9c5 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Thu, 20 Jun 2024 06:20:09 +0200
Subject: [PATCH 49/64] Comments and refactor
---
hardhat.config.ts | 40 ++++++++++++++++++++++++-------
src/exercise/BaseExercise.sol | 4 ++--
src/exercise/DiscountExercise.sol | 26 ++++++++++++--------
3 files changed, 49 insertions(+), 21 deletions(-)
diff --git a/hardhat.config.ts b/hardhat.config.ts
index b7c2f29..f5f1364 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -9,16 +9,22 @@ import { subtask } from "hardhat/config";
import { config as dotenvConfig } from "dotenv";
+// import "@nomiclabs/hardhat-ethers";
+import "@nomicfoundation/hardhat-verify";
+
dotenvConfig();
const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
const config: HardhatUserConfig = {
solidity: {
- version: "0.8.19",
- settings: {
- optimizer: { enabled: true, runs: 9999 }
- }
+ version: "0.8.20",
+ // settings: {
+ // optimizer: { enabled: true, runs: 200 }
+ // }
+ },
+ sourcify: {
+ enabled: true
},
paths: {
sources: "./src",
@@ -35,12 +41,28 @@ const config: HardhatUserConfig = {
chainId: 56,
accounts: [`0x${PRIVATE_KEY}`],
},
+ mode: {
+ url: "https://mainnet.mode.network/",
+ chainId: 34443,
+ accounts: [`0x${PRIVATE_KEY}`],
+ },
},
- etherscan: {
- apiKey: {
- bsc: process.env.ETHERSCAN_KEY || "",
- }
- },
+ // etherscan: {
+ // apiKey: {
+ // bsc: process.env.ETHERSCAN_KEY || "",
+ // },
+ // customChains: [
+ // {
+ // network: "mode",
+ // chainId: 34443,
+ // urls: {
+ // apiURL: "https://explorer.mode.network",
+ // browserURL: "https://explorer.mode.network"
+ // }
+ // }
+ // ]
+ // },
+
};
subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS).setAction(async (_, hre, runSuper) => {
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index 959ff94..9de0cc6 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -72,7 +72,7 @@ abstract contract BaseExercise is IExercise, Owned {
/// @dev Sends the residual amount to the last fee recipient to avoid rounding errors
function distributeFeesFrom(uint256 totalAmount, IERC20 token, address from) internal virtual {
uint256 remaining = totalAmount;
- for (uint256 i = 0; i < feeRecipients.length; i++) {
+ for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransferFrom(from, feeRecipients[i], feeAmount);
remaining -= feeAmount;
@@ -85,7 +85,7 @@ abstract contract BaseExercise is IExercise, Owned {
/// @dev Sends the residual amount to the last fee recipient to avoid rounding errors
function distributeFees(uint256 totalAmount, IERC20 token) internal virtual {
uint256 remaining = totalAmount;
- for (uint256 i = 0; i < feeRecipients.length; i++) {
+ for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
token.safeTransfer(feeRecipients[i], feeAmount);
remaining -= feeAmount;
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 95d2f45..5417f45 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -3,6 +3,7 @@ pragma solidity ^0.8.13;
import {Owned} from "solmate/auth/Owned.sol";
import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {Pausable} from "oz/security/Pausable.sol";
import {SafeERC20} from "oz/token/ERC20/utils/SafeERC20.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
@@ -25,7 +26,7 @@ struct DiscountExerciseParams {
/// @notice Contract that allows the holder of options tokens to exercise them,
/// in this case, by purchasing the underlying token at a discount to the market price.
/// @dev Assumes the underlying token and the payment token both use 18 decimals.
-contract DiscountExercise is BaseExercise, SwapHelper {
+contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
/// Library usage
using SafeERC20 for IERC20;
using FixedPointMathLib for uint256;
@@ -69,9 +70,14 @@ contract DiscountExercise is BaseExercise, SwapHelper {
/// Used when the contract does not have enough tokens to pay the user
mapping(address => uint256) public credit;
+ /// @notice The fee amount gathered in the contract to be swapped and distributed
uint256 private feeAmount;
+
+ /// @notice Minimal trigger to swap, if the trigger is not reached then feeAmount counts the ammount to swap and distribute
uint256 public minAmountToTriggerSwap;
- uint256 public redeemBonus;
+
+ /// @notice configurable parameter that determines what is the fee for zap (instant exit) feature
+ uint256 public instantExitFee;
constructor(
OptionsToken oToken_,
@@ -80,7 +86,7 @@ contract DiscountExercise is BaseExercise, SwapHelper {
IERC20 underlyingToken_,
IOracle oracle_,
uint256 multiplier_,
- uint256 redeemBonus_,
+ uint256 instantExitFee_,
address[] memory feeRecipients_,
uint256[] memory feeBPS_,
SwapProps memory swapProps_
@@ -90,7 +96,7 @@ contract DiscountExercise is BaseExercise, SwapHelper {
_setOracle(oracle_);
_setMultiplier(multiplier_);
- _setRedeemBonus(redeemBonus_);
+ _setInstantExitFee(instantExitFee_);
emit SetOracle(oracle_);
}
@@ -157,15 +163,15 @@ contract DiscountExercise is BaseExercise, SwapHelper {
emit SetMultiplier(multiplier_);
}
- function setRedeemBonus(uint256 _redeemBonus) external onlyOwner {
- _setRedeemBonus(_redeemBonus);
+ function setInstantExitFee(uint256 _instantExitFee) external onlyOwner {
+ _setInstantExitFee(_instantExitFee);
}
- function _setRedeemBonus(uint256 _redeemBonus) internal {
- if (_redeemBonus > BPS_DENOM) {
+ function _setInstantExitFee(uint256 _instantExitFee) internal {
+ if (_instantExitFee > BPS_DENOM) {
revert Exercise__FeeGreaterThanMax();
}
- redeemBonus = _redeemBonus;
+ instantExitFee = _instantExitFee;
}
function setMinAmountToTriggerSwap(uint256 _minAmountToTriggerSwap) external onlyOwner {
@@ -181,7 +187,7 @@ contract DiscountExercise is BaseExercise, SwapHelper {
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
uint256 discountedUnderlying = amount.mulDivUp(multiplier, BPS_DENOM);
- uint256 fee = discountedUnderlying.mulDivUp(redeemBonus, BPS_DENOM);
+ uint256 fee = discountedUnderlying.mulDivUp(instantExitFee, BPS_DENOM);
uint256 underlyingAmount = discountedUnderlying - fee;
console.log("Discounted: %e \t fee: %e", discountedUnderlying, fee);
From a6abd70a7e8cf19e34a3e6b653c324622f5497eb Mon Sep 17 00:00:00 2001
From: xRave110
Date: Sun, 23 Jun 2024 19:44:19 +0200
Subject: [PATCH 50/64] InstantExit working on optimism
---
output.json | 228363 +++++++++++++++
src/exercise/BaseExercise.sol | 4 +
src/exercise/DiscountExercise.sol | 28 +-
src/helpers/SwapHelper.sol | 3 -
test/Common.sol | 6 +-
test/ItModeOptionsToken.t.sol | 16 +-
...oken.t copy.sol => ItOpOptionsToken.t.sol} | 118 +-
test/OptionsToken.t.sol | 33 +
8 files changed, 228444 insertions(+), 127 deletions(-)
create mode 100644 output.json
rename test/{ItOpOptionsToken.t copy.sol => ItOpOptionsToken.t.sol} (73%)
diff --git a/output.json b/output.json
new file mode 100644
index 0000000..5a04500
--- /dev/null
+++ b/output.json
@@ -0,0 +1,228363 @@
+{
+ "success": true,
+ "error": null,
+ "results": {
+ "detectors": [
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransferFrom(from,feeRecipients[i],feeAmount)",
+ "source_mapping": {
+ "start": 3306,
+ "length": 57,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 79
+ ],
+ "starting_column": 13,
+ "ending_column": 70
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BaseExercise.distributeFeesFrom(uint256,IERC20,address) (src/exercise/BaseExercise.sol#75-84) uses arbitrary from in transferFrom: token.safeTransferFrom(from,feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#79)\n",
+ "markdown": "[BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L75-L84) uses arbitrary from in transferFrom: [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L79)\n",
+ "first_markdown_element": "src/exercise/BaseExercise.sol#L75-L84",
+ "id": "446a1cb33ebfad0d0a709c03c1c0cd849aceed537bd0183c5297524327e3aaf2",
+ "check": "arbitrary-send-erc20",
+ "impact": "High",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)",
+ "source_mapping": {
+ "start": 3419,
+ "length": 80,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 82
+ ],
+ "starting_column": 9,
+ "ending_column": 89
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BaseExercise.distributeFeesFrom(uint256,IERC20,address) (src/exercise/BaseExercise.sol#75-84) uses arbitrary from in transferFrom: token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#82)\n",
+ "markdown": "[BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L75-L84) uses arbitrary from in transferFrom: [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L82)\n",
+ "first_markdown_element": "src/exercise/BaseExercise.sol#L75-L84",
+ "id": "e527a176c279777711a8a43d5feac81d7390657a451efca4aa421633e06d9680",
+ "check": "arbitrary-send-erc20",
+ "impact": "High",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_functionDelegateCall",
+ "source_mapping": {
+ "start": 6780,
+ "length": 455,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC1967UpgradeUpgradeable",
+ "source_mapping": {
+ "start": 661,
+ "length": 6867,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_functionDelegateCall(address,bytes)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.delegatecall(data)",
+ "source_mapping": {
+ "start": 7045,
+ "length": 67,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 188
+ ],
+ "starting_column": 9,
+ "ending_column": 76
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_functionDelegateCall",
+ "source_mapping": {
+ "start": 6780,
+ "length": 455,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC1967UpgradeUpgradeable",
+ "source_mapping": {
+ "start": 661,
+ "length": 6867,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_functionDelegateCall(address,bytes)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#184-190) uses delegatecall to a input-controlled function id\n\t- (success,returndata) = target.delegatecall(data) (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#188)\n",
+ "markdown": "[ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes)](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L184-L190) uses delegatecall to a input-controlled function id\n\t- [(success,returndata) = target.delegatecall(data)](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L188)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L184-L190",
+ "id": "674611239cacd3d3adbcbfab671c0ebaf9c020827cfd91cca0f58d74c0873e7d",
+ "check": "controlled-delegatecall",
+ "impact": "High",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "inv = (3 * denominator) ^ 2",
+ "source_mapping": {
+ "start": 3729,
+ "length": 35,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 88
+ ],
+ "starting_column": 13,
+ "ending_column": 48
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - inv = (3 * denominator) ^ 2 (lib/v3-core/contracts/libraries/FullMath.sol#88)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - [inv = (3 * denominator) ^ 2](lib/v3-core/contracts/libraries/FullMath.sol#L88)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "3ebcee10c38dd4a235616a4d9d6a9aaf00fe1db39529893efe57c283a4b73d3f",
+ "check": "incorrect-exp",
+ "impact": "High",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "inverse = (3 * denominator) ^ 2",
+ "source_mapping": {
+ "start": 4459,
+ "length": 39,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 117
+ ],
+ "starting_column": 13,
+ "ending_column": 52
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - inverse = (3 * denominator) ^ 2 (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#117)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - [inverse = (3 * denominator) ^ 2](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L117)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "d5757e6727c1fd979b03f6138f32befb52a3a53c3f8e23a9970145a5973d779a",
+ "check": "incorrect-exp",
+ "impact": "High",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 3757,
+ "length": 37,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 102
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inverse *= 2 - denominator * inverse",
+ "source_mapping": {
+ "start": 4715,
+ "length": 36,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 121
+ ],
+ "starting_column": 13,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#121)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L121)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "00b65e3a8fb42b635c27a085eb3b8c89d7b14ad83a5429e7ccfde9497a23828c",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128",
+ "source_mapping": {
+ "start": 3617,
+ "length": 50,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 52
+ ],
+ "starting_column": 41,
+ "ending_column": 91
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#52)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L52)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "049b0eee893d521c098e8106c37a596606789cb5437746aaf101d87bfb81347e",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 3757,
+ "length": 37,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 102
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inverse *= 2 - denominator * inverse",
+ "source_mapping": {
+ "start": 4924,
+ "length": 36,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 124
+ ],
+ "starting_column": 13,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#124)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L124)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "063a41726141c0824417315356cff50b71c19049fcd88cdabef685c7b2284446",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "prod0 = prod0 / twos",
+ "source_mapping": {
+ "start": 3023,
+ "length": 25,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 73
+ ],
+ "starting_column": 17,
+ "ending_column": 42
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "result = prod0 * inv",
+ "source_mapping": {
+ "start": 4804,
+ "length": 20,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 105
+ ],
+ "starting_column": 13,
+ "ending_column": 33
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- prod0 = prod0 / twos (lib/v3-core/contracts/libraries/FullMath.sol#73)\n\t- result = prod0 * inv (lib/v3-core/contracts/libraries/FullMath.sol#105)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [prod0 = prod0 / twos](lib/v3-core/contracts/libraries/FullMath.sol#L73)\n\t- [result = prod0 * inv](lib/v3-core/contracts/libraries/FullMath.sol#L105)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "0fc34c55fb2fcbf643d5ba90b5756e4d089643e6ad30eeea71f5c709781c9e32",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128",
+ "source_mapping": {
+ "start": 3020,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 46
+ ],
+ "starting_column": 40,
+ "ending_column": 99
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#46)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L46)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "10d5f7f6961892bd6462b79f7f63ffdeb9ccdad321a21b8302ef6d4d68d57be6",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 2873,
+ "length": 37,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inv *= 2 - denominator * inv",
+ "source_mapping": {
+ "start": 4310,
+ "length": 28,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 97
+ ],
+ "starting_column": 13,
+ "ending_column": 41
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#97)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L97)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "1ef88f8244a181a35e0f07c86dd3dbcd47a08f4e7344a3aa2246ce952b3c4782",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_calculateMinAmountOut",
+ "source_mapping": {
+ "start": 9735,
+ "length": 1525,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR",
+ "source_mapping": {
+ "start": 11000,
+ "length": 130,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 299,
+ 300
+ ],
+ "starting_column": 9,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_calculateMinAmountOut",
+ "source_mapping": {
+ "start": 9735,
+ "length": 1525,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "minAmountOut = (toAmountUsdTargetDigits * 10 ** IERC20MetadataUpgradeable(_to).decimals()) / toPriceTargetDigits",
+ "source_mapping": {
+ "start": 11141,
+ "length": 112,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 302
+ ],
+ "starting_column": 9,
+ "ending_column": 121
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_calculateMinAmountOut",
+ "source_mapping": {
+ "start": 9735,
+ "length": 1525,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper._calculateMinAmountOut(address,address,uint256,MinAmountOutData) (lib/vault-v2/src/ReaperSwapper.sol#275-303) performs a multiplication on the result of a division:\n\t- toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR (lib/vault-v2/src/ReaperSwapper.sol#299-300)\n\t- minAmountOut = (toAmountUsdTargetDigits * 10 ** IERC20MetadataUpgradeable(_to).decimals()) / toPriceTargetDigits (lib/vault-v2/src/ReaperSwapper.sol#302)\n",
+ "markdown": "[ReaperSwapper._calculateMinAmountOut(address,address,uint256,MinAmountOutData)](lib/vault-v2/src/ReaperSwapper.sol#L275-L303) performs a multiplication on the result of a division:\n\t- [toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR](lib/vault-v2/src/ReaperSwapper.sol#L299-L300)\n\t- [minAmountOut = (toAmountUsdTargetDigits * 10 ** IERC20MetadataUpgradeable(_to).decimals()) / toPriceTargetDigits](lib/vault-v2/src/ReaperSwapper.sol#L302)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L275-L303",
+ "id": "242b2c5d9da698fd1345e7823ad59a8dae0b459dab01039556e362d5ac2acd45",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_calculateMinAmountOut",
+ "source_mapping": {
+ "start": 9735,
+ "length": 1525,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "fromAmountUsdTargetDigits = (_amountIn * fromPriceTargetDigits) / 10 ** IERC20MetadataUpgradeable(_from).decimals()",
+ "source_mapping": {
+ "start": 10855,
+ "length": 135,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 297,
+ 298
+ ],
+ "starting_column": 9,
+ "ending_column": 100
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_calculateMinAmountOut",
+ "source_mapping": {
+ "start": 9735,
+ "length": 1525,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR",
+ "source_mapping": {
+ "start": 11000,
+ "length": 130,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 299,
+ 300
+ ],
+ "starting_column": 9,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_calculateMinAmountOut",
+ "source_mapping": {
+ "start": 9735,
+ "length": 1525,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper._calculateMinAmountOut(address,address,uint256,MinAmountOutData) (lib/vault-v2/src/ReaperSwapper.sol#275-303) performs a multiplication on the result of a division:\n\t- fromAmountUsdTargetDigits = (_amountIn * fromPriceTargetDigits) / 10 ** IERC20MetadataUpgradeable(_from).decimals() (lib/vault-v2/src/ReaperSwapper.sol#297-298)\n\t- toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR (lib/vault-v2/src/ReaperSwapper.sol#299-300)\n",
+ "markdown": "[ReaperSwapper._calculateMinAmountOut(address,address,uint256,MinAmountOutData)](lib/vault-v2/src/ReaperSwapper.sol#L275-L303) performs a multiplication on the result of a division:\n\t- [fromAmountUsdTargetDigits = (_amountIn * fromPriceTargetDigits) / 10 ** IERC20MetadataUpgradeable(_from).decimals()](lib/vault-v2/src/ReaperSwapper.sol#L297-L298)\n\t- [toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR](lib/vault-v2/src/ReaperSwapper.sol#L299-L300)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L275-L303",
+ "id": "2a964692a2c1e433645c4386705e83f412d01ced4ff15e6a7ed9f220abf91751",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 3757,
+ "length": 37,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 102
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inverse *= 2 - denominator * inverse",
+ "source_mapping": {
+ "start": 4784,
+ "length": 36,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 122
+ ],
+ "starting_column": 13,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#122)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L122)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "333a89f3a8f64c59b998db6ddea224f5e5b6a3e18adc1cc4fe33353a9161141a",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128",
+ "source_mapping": {
+ "start": 2326,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 39
+ ],
+ "starting_column": 38,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#39)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L39)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "38c735599b34bd5dd6042b2b9001323fbfb2770b8c54e5257f95d17e496b58bc",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128",
+ "source_mapping": {
+ "start": 2622,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 42
+ ],
+ "starting_column": 39,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#42)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L42)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "3b44809d05674d486bb9e43f2b5c6a6f1b3cfbf822a51d78672a6efcaaf27060",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_getSwapAmountUniV2",
+ "source_mapping": {
+ "start": 3579,
+ "length": 603,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getSwapAmountUniV2(uint256,uint256,uint256,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "halfInvestment = _investmentA / 2",
+ "source_mapping": {
+ "start": 3766,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 96
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_getSwapAmountUniV2",
+ "source_mapping": {
+ "start": 3579,
+ "length": 603,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getSwapAmountUniV2(uint256,uint256,uint256,address)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "swapAmount = _investmentA - (Babylonian.sqrt((halfInvestment * halfInvestment * nominator) / denominator))",
+ "source_mapping": {
+ "start": 4069,
+ "length": 106,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 100
+ ],
+ "starting_column": 9,
+ "ending_column": 115
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_getSwapAmountUniV2",
+ "source_mapping": {
+ "start": 3579,
+ "length": 603,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getSwapAmountUniV2(uint256,uint256,uint256,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "UniV2Mixin._getSwapAmountUniV2(uint256,uint256,uint256,address) (lib/vault-v2/src/mixins/UniV2Mixin.sol#91-101) performs a multiplication on the result of a division:\n\t- halfInvestment = _investmentA / 2 (lib/vault-v2/src/mixins/UniV2Mixin.sol#96)\n\t- swapAmount = _investmentA - (Babylonian.sqrt((halfInvestment * halfInvestment * nominator) / denominator)) (lib/vault-v2/src/mixins/UniV2Mixin.sol#100)\n",
+ "markdown": "[UniV2Mixin._getSwapAmountUniV2(uint256,uint256,uint256,address)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L91-L101) performs a multiplication on the result of a division:\n\t- [halfInvestment = _investmentA / 2](lib/vault-v2/src/mixins/UniV2Mixin.sol#L96)\n\t- [swapAmount = _investmentA - (Babylonian.sqrt((halfInvestment * halfInvestment * nominator) / denominator))](lib/vault-v2/src/mixins/UniV2Mixin.sol#L100)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV2Mixin.sol#L91-L101",
+ "id": "3bdf8bff47fabfb38bc200b9841d43ccc92af4d55144953616bc8b804bbb4190",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128",
+ "source_mapping": {
+ "start": 2424,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 40
+ ],
+ "starting_column": 38,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#40)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L40)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "3fe811ee3f7a15306c799d900ce83ea25b94a798fc2fbdbeff7c41a9d44104eb",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 3757,
+ "length": 37,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 102
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inverse *= 2 - denominator * inverse",
+ "source_mapping": {
+ "start": 4854,
+ "length": 36,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 123
+ ],
+ "starting_column": 13,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#123)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L123)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "4bd78131744a4ae01deecf9f70f7caa639f217aabb6958b7502762971ed7992c",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128",
+ "source_mapping": {
+ "start": 1935,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 35
+ ],
+ "starting_column": 37,
+ "ending_column": 96
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#35)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L35)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "4c4b17533f204364045c6f68db370e77b5ad7364eba97f64430b1d06a53fcec5",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128",
+ "source_mapping": {
+ "start": 1838,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 34
+ ],
+ "starting_column": 37,
+ "ending_column": 96
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#34)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L34)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "4fc11cac2f6896d1fd2ae2941701fcab0e310d7f0867ed97cc5b3e8c23efcba4",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_getSwapAmountVelo",
+ "source_mapping": {
+ "start": 2636,
+ "length": 541,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "halfInvestment = investmentA / 2",
+ "source_mapping": {
+ "start": 2834,
+ "length": 40,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 78
+ ],
+ "starting_column": 9,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_getSwapAmountVelo",
+ "source_mapping": {
+ "start": 2636,
+ "length": 541,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "swapAmount = investmentA - Babylonian.sqrt((halfInvestment * halfInvestment * numerator) / denominator)",
+ "source_mapping": {
+ "start": 3067,
+ "length": 103,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 81
+ ],
+ "starting_column": 9,
+ "ending_column": 112
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_getSwapAmountVelo",
+ "source_mapping": {
+ "start": 2636,
+ "length": 541,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "VeloSolidMixin._getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#73-82) performs a multiplication on the result of a division:\n\t- halfInvestment = investmentA / 2 (lib/vault-v2/src/mixins/VeloSolidMixin.sol#78)\n\t- swapAmount = investmentA - Babylonian.sqrt((halfInvestment * halfInvestment * numerator) / denominator) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#81)\n",
+ "markdown": "[VeloSolidMixin._getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L73-L82) performs a multiplication on the result of a division:\n\t- [halfInvestment = investmentA / 2](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L78)\n\t- [swapAmount = investmentA - Babylonian.sqrt((halfInvestment * halfInvestment * numerator) / denominator)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L81)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/VeloSolidMixin.sol#L73-L82",
+ "id": "634d14708bdcf209cb732dd2453064bc4232343cec20e4c4af1d0a5345cc9d11",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128",
+ "source_mapping": {
+ "start": 3220,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 48
+ ],
+ "starting_column": 40,
+ "ending_column": 99
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#48)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L48)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "7236a33a1c38547e2d6016c50a0cff9ccffeabd09475c57376ecb4a0f0d579fa",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 3757,
+ "length": 37,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 102
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inverse *= 2 - denominator * inverse",
+ "source_mapping": {
+ "start": 4994,
+ "length": 36,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 125
+ ],
+ "starting_column": 13,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#125)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L125)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "8e550aa740cfcf771bd2bf114b325d4e59d89cb74eda337db615a02086ec0332",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128",
+ "source_mapping": {
+ "start": 3421,
+ "length": 57,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 50
+ ],
+ "starting_column": 41,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#50)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L50)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "976e6f1a5489c4b684ba80b7f2991c4f073a52e0a02f101aff98abe7c966e58b",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 2873,
+ "length": 37,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inv *= 2 - denominator * inv",
+ "source_mapping": {
+ "start": 4183,
+ "length": 28,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 95
+ ],
+ "starting_column": 13,
+ "ending_column": 41
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#95)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L95)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "9c4b77f30035cd07f16f5da3c7df4ce22186d431383be67fc63102f53f1778be",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128",
+ "source_mapping": {
+ "start": 2032,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 36
+ ],
+ "starting_column": 37,
+ "ending_column": 96
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#36)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L36)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "9d5a00343fb3299a12df278a7fcc4e8bba171415a0cddc32a3c8b1292da5e020",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "rpow",
+ "source_mapping": {
+ "start": 2774,
+ "length": 2778,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "rpow(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "x = xxRound_rpow_asm_0 / scalar",
+ "source_mapping": {
+ "start": 4594,
+ "length": 25,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 129
+ ],
+ "starting_column": 21,
+ "ending_column": 46
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "rpow",
+ "source_mapping": {
+ "start": 2774,
+ "length": 2778,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "rpow(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "zx_rpow_asm_0 = z * x",
+ "source_mapping": {
+ "start": 4759,
+ "length": 19,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 134
+ ],
+ "starting_column": 25,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "rpow",
+ "source_mapping": {
+ "start": 2774,
+ "length": 2778,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "rpow(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#71-158) performs a multiplication on the result of a division:\n\t- x = xxRound_rpow_asm_0 / scalar (lib/solmate/src/utils/FixedPointMathLib.sol#129)\n\t- zx_rpow_asm_0 = z * x (lib/solmate/src/utils/FixedPointMathLib.sol#134)\n",
+ "markdown": "[FixedPointMathLib.rpow(uint256,uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L71-L158) performs a multiplication on the result of a division:\n\t- [x = xxRound_rpow_asm_0 / scalar](lib/solmate/src/utils/FixedPointMathLib.sol#L129)\n\t- [zx_rpow_asm_0 = z * x](lib/solmate/src/utils/FixedPointMathLib.sol#L134)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L71-L158",
+ "id": "a6857f603efc155f5d59590b122e576c03098950016b0ca7391a75409969c72a",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128",
+ "source_mapping": {
+ "start": 2130,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 37
+ ],
+ "starting_column": 38,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#37)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L37)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "a91bd7bdec9d229a2e8b7757852ccf6bfbb0c1b82e2f213c0e87ea7d1501339c",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "prod0 = prod0 / twos",
+ "source_mapping": {
+ "start": 3861,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105
+ ],
+ "starting_column": 17,
+ "ending_column": 42
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "result = prod0 * inverse",
+ "source_mapping": {
+ "start": 5535,
+ "length": 24,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 132
+ ],
+ "starting_column": 13,
+ "ending_column": 37
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- prod0 = prod0 / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#105)\n\t- result = prod0 * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#132)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [prod0 = prod0 / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L105)\n\t- [result = prod0 * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L132)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "b87038aa85530f57d3c926dfb00303da9021db0b4df6e6e2a16775cb835b5245",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 2873,
+ "length": 37,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inv *= 2 - denominator * inv",
+ "source_mapping": {
+ "start": 4120,
+ "length": 28,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 94
+ ],
+ "starting_column": 13,
+ "ending_column": 41
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#94)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L94)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "bab014d5399775b500e5a02bedb24be936428d7c221c43ea46172f1944c25875",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 2873,
+ "length": 37,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inv = (3 * denominator) ^ 2",
+ "source_mapping": {
+ "start": 3729,
+ "length": 35,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 88
+ ],
+ "starting_column": 13,
+ "ending_column": 48
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv = (3 * denominator) ^ 2 (lib/v3-core/contracts/libraries/FullMath.sol#88)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv = (3 * denominator) ^ 2](lib/v3-core/contracts/libraries/FullMath.sol#L88)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "bb1576372add81b6d335a9795a84d6f47581915cf81761e1130215f4fffec15f",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 2873,
+ "length": 37,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inv *= 2 - denominator * inv",
+ "source_mapping": {
+ "start": 3995,
+ "length": 28,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 92
+ ],
+ "starting_column": 13,
+ "ending_column": 41
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#92)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L92)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "c0ce32fa53af66ddd6aa23871a339ee9773df422e6ee599a3a5394cf32887501",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128",
+ "source_mapping": {
+ "start": 2820,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 44
+ ],
+ "starting_column": 39,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#44)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L44)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "c7038675fff7d70121645d78c43c65fcb0265d0211269a5f5d8cae28f85688e8",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128",
+ "source_mapping": {
+ "start": 2721,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 43
+ ],
+ "starting_column": 39,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#43)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L43)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "cb6b982337b1749cacc0e54aa2a12b46da2952e9f90b918464706a96e177d317",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 2873,
+ "length": 37,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inv *= 2 - denominator * inv",
+ "source_mapping": {
+ "start": 4246,
+ "length": 28,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 96
+ ],
+ "starting_column": 13,
+ "ending_column": 41
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#96)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L96)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "d1dea53850dd9403825e78e37c8a0b863bfe4a7587d2b6caa6f92988c30f6d65",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128",
+ "source_mapping": {
+ "start": 3520,
+ "length": 55,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 51
+ ],
+ "starting_column": 41,
+ "ending_column": 96
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#51)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L51)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "d2ed7da21b17178cd05780daf6db15d5eecc0d32e25943b91c66207f259ed6c1",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 3757,
+ "length": 37,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 102
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inverse *= 2 - denominator * inverse",
+ "source_mapping": {
+ "start": 5065,
+ "length": 36,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 126
+ ],
+ "starting_column": 13,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#126)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L126)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "d3e6e10c122886674b1e5fd2ce413eb882f00fdadbc0ea78e283dc622c1e9768",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128",
+ "source_mapping": {
+ "start": 3120,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 47
+ ],
+ "starting_column": 40,
+ "ending_column": 99
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#47)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L47)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "da6dbcc8d396a8ea28bf63c4bac1f6e08ad3a685e6fc8a653d02f87b541253e3",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 3757,
+ "length": 37,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 102
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inverse = (3 * denominator) ^ 2",
+ "source_mapping": {
+ "start": 4459,
+ "length": 39,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 117
+ ],
+ "starting_column": 13,
+ "ending_column": 52
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse = (3 * denominator) ^ 2 (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#117)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse = (3 * denominator) ^ 2](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L117)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "dafd46d4f8c4625c4f3a256e1ea93a0fee8d450f2b6dead5825ba39094f116c8",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128",
+ "source_mapping": {
+ "start": 2920,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 45
+ ],
+ "starting_column": 40,
+ "ending_column": 99
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#45)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L45)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "e426a7f18a2489b8e0f9cfe771bcab135619bec93fef6dd0e19f27e2e7d1464f",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128",
+ "source_mapping": {
+ "start": 2523,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 41
+ ],
+ "starting_column": 39,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#41)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L41)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "e88cd4d371f5afbf49191d8304a8f6d8ad7f24d19ebcdcf46e6f324c2ffb1c7a",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128",
+ "source_mapping": {
+ "start": 3321,
+ "length": 58,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 49
+ ],
+ "starting_column": 41,
+ "ending_column": 99
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#49)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L49)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "f64d093eb85f9a8f731041983d2bb0bf07289d63f153e7b794e434881e924193",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128",
+ "source_mapping": {
+ "start": 2228,
+ "length": 59,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 38
+ ],
+ "starting_column": 38,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = type()(uint256).max / ratio",
+ "source_mapping": {
+ "start": 3696,
+ "length": 33,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 54
+ ],
+ "starting_column": 27,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#38)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L38)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "f69dca7a8c89e196d377b110003ab7978a3e4c70f8beb0f4a5f5ab9b6e6e9253",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "denominator = denominator / twos",
+ "source_mapping": {
+ "start": 2873,
+ "length": 37,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "inv *= 2 - denominator * inv",
+ "source_mapping": {
+ "start": 4057,
+ "length": 28,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 93
+ ],
+ "starting_column": 13,
+ "ending_column": 41
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#93)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L93)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "fc5782d775af920a34f30dc7ed31f6d5a4bbf29cb1109a6103908410aba5b1de",
+ "check": "divide-before-multiply",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0",
+ "source_mapping": {
+ "start": 8678,
+ "length": 94,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 221
+ ],
+ "starting_column": 17,
+ "ending_column": 111
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231) uses a dangerous strict equality:\n\t- paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0 (src/exercise/DiscountExercise.sol#221)\n",
+ "markdown": "[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231) uses a dangerous strict equality:\n\t- [paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0](src/exercise/DiscountExercise.sol#L221)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
+ "id": "5a880060efcc31cb1efa41190002e874acfb1476c6f4163acb1fb73776ec92a2",
+ "check": "incorrect-equality",
+ "impact": "Medium",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_params.from == _params.to || _params.amount == 0",
+ "source_mapping": {
+ "start": 1243,
+ "length": 49,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 39
+ ],
+ "starting_column": 13,
+ "ending_column": 62
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "UniV3Mixin._swapUniV3(UniV3Mixin.Params__swapUniV3) (lib/vault-v2/src/mixins/UniV3Mixin.sol#38-69) uses a dangerous strict equality:\n\t- _params.from == _params.to || _params.amount == 0 (lib/vault-v2/src/mixins/UniV3Mixin.sol#39)\n",
+ "markdown": "[UniV3Mixin._swapUniV3(UniV3Mixin.Params__swapUniV3)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L38-L69) uses a dangerous strict equality:\n\t- [_params.from == _params.to || _params.amount == 0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L39)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L38-L69",
+ "id": "fc396b078296f5d4c0c3927e14de36cf6a3ad91f938e9e10d2e8fa0e437962fc",
+ "check": "incorrect-equality",
+ "impact": "Medium",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.approve(swapProps.swapper,feeAmount)",
+ "source_mapping": {
+ "start": 8058,
+ "length": 53,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 213
+ ],
+ "starting_column": 13,
+ "ending_column": 66
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)",
+ "source_mapping": {
+ "start": 8277,
+ "length": 138,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 216
+ ],
+ "starting_column": 13,
+ "ending_column": 151
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2488,
+ "length": 80,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 75
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2631,
+ "length": 78,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 77
+ ],
+ "starting_column": 13,
+ "ending_column": 91
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2778,
+ "length": 79,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 79
+ ],
+ "starting_column": 13,
+ "ending_column": 92
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2922,
+ "length": 80,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 81
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "feeAmount = 0",
+ "source_mapping": {
+ "start": 8429,
+ "length": 13,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 217
+ ],
+ "starting_column": 13,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "variables_written",
+ "variable_name": "feeAmount"
+ }
+ }
+ ],
+ "description": "Reentrancy in DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231):\n\tExternal calls:\n\t- underlyingToken.approve(swapProps.swapper,feeAmount) (src/exercise/DiscountExercise.sol#213)\n\t- _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress) (src/exercise/DiscountExercise.sol#216)\n\t\t- _swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#75)\n\t\t- _swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#77)\n\t\t- _swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#79)\n\t\t- _swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#81)\n\tState variables written after the call(s):\n\t- feeAmount = 0 (src/exercise/DiscountExercise.sol#217)\n\tDiscountExercise.feeAmount (src/exercise/DiscountExercise.sol#75) can be used in cross function reentrancies:\n\t- DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231)\n",
+ "markdown": "Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231):\n\tExternal calls:\n\t- [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L213)\n\t- [_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L216)\n\t\t- [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L75)\n\t\t- [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L77)\n\t\t- [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L79)\n\t\t- [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L81)\n\tState variables written after the call(s):\n\t- [feeAmount = 0](src/exercise/DiscountExercise.sol#L217)\n\t[DiscountExercise.feeAmount](src/exercise/DiscountExercise.sol#L75) can be used in cross function reentrancies:\n\t- [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
+ "id": "a3da78c5bd6d087b6122e2bce93b85b2799e2ef18234c8a2ad47ba8fa7e94f24",
+ "check": "reentrancy-no-eth",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "price",
+ "source_mapping": {
+ "start": 17664,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 438
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_scaleChainlinkPriceByDigits",
+ "source_mapping": {
+ "start": 17460,
+ "length": 642,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_scaleChainlinkPriceByDigits(uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper._scaleChainlinkPriceByDigits(uint256,uint256).price (lib/vault-v2/src/ReaperSwapper.sol#438) is a local variable never initialized\n",
+ "markdown": "[ReaperSwapper._scaleChainlinkPriceByDigits(uint256,uint256).price](lib/vault-v2/src/ReaperSwapper.sol#L438) is a local variable never initialized\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L438",
+ "id": "27cbde03367f30635d8b77371e7fe0b61d5b5de3c5ad430c3fe3e8002aed8a7d",
+ "check": "uninitialized-local",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "tokenInFound",
+ "source_mapping": {
+ "start": 3290,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 83
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_updateBalSwapPoolID",
+ "source_mapping": {
+ "start": 2960,
+ "length": 817,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_updateBalSwapPoolID(address,address,address,bytes32)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BalMixin._updateBalSwapPoolID(address,address,address,bytes32).tokenInFound (lib/vault-v2/src/mixins/BalMixin.sol#83) is a local variable never initialized\n",
+ "markdown": "[BalMixin._updateBalSwapPoolID(address,address,address,bytes32).tokenInFound](lib/vault-v2/src/mixins/BalMixin.sol#L83) is a local variable never initialized\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L83",
+ "id": "48805492cb64113a3a35ed5ba8c0a2076b664bcd2d067470ba0a3252ebba42b4",
+ "check": "uninitialized-local",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "funds",
+ "source_mapping": {
+ "start": 1661,
+ "length": 38,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 49
+ ],
+ "starting_column": 9,
+ "ending_column": 47
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool).funds (lib/vault-v2/src/mixins/BalMixin.sol#49) is a local variable never initialized\n",
+ "markdown": "[BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool).funds](lib/vault-v2/src/mixins/BalMixin.sol#L49) is a local variable never initialized\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L49",
+ "id": "4c14c7b594bf15697ba30539c9ac4c614c10333e52070092d201336e75377b3e",
+ "check": "uninitialized-local",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "singleSwap",
+ "source_mapping": {
+ "start": 1350,
+ "length": 39,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 41
+ ],
+ "starting_column": 9,
+ "ending_column": 48
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool).singleSwap (lib/vault-v2/src/mixins/BalMixin.sol#41) is a local variable never initialized\n",
+ "markdown": "[BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool).singleSwap](lib/vault-v2/src/mixins/BalMixin.sol#L41) is a local variable never initialized\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L41",
+ "id": "509fe1a6ba376f87af1d863abc8d6ee153c0a98eb4717a73f4e55d593f047ad6",
+ "check": "uninitialized-local",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "predictedOutput",
+ "source_mapping": {
+ "start": 1332,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 39
+ ],
+ "starting_column": 9,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool).predictedOutput (lib/vault-v2/src/mixins/VeloSolidMixin.sol#39) is a local variable never initialized\n",
+ "markdown": "[VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool).predictedOutput](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L39) is a local variable never initialized\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/VeloSolidMixin.sol#L39",
+ "id": "938d047c5ec8d17161f658c71b9aa0d91ba330139bbace224c8a03181655b082",
+ "check": "uninitialized-local",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "tokenOutFound",
+ "source_mapping": {
+ "start": 3317,
+ "length": 18,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 84
+ ],
+ "starting_column": 9,
+ "ending_column": 27
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_updateBalSwapPoolID",
+ "source_mapping": {
+ "start": 2960,
+ "length": 817,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_updateBalSwapPoolID(address,address,address,bytes32)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BalMixin._updateBalSwapPoolID(address,address,address,bytes32).tokenOutFound (lib/vault-v2/src/mixins/BalMixin.sol#84) is a local variable never initialized\n",
+ "markdown": "[BalMixin._updateBalSwapPoolID(address,address,address,bytes32).tokenOutFound](lib/vault-v2/src/mixins/BalMixin.sol#L84) is a local variable never initialized\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L84",
+ "id": "c74cd6285af530132a8fd4c04509ac76724208d2ddf2f11af35efb8fcc996c55",
+ "check": "uninitialized-local",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_revokeRole",
+ "source_mapping": {
+ "start": 2572,
+ "length": 171,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlEnumerableUpgradeable",
+ "source_mapping": {
+ "start": 431,
+ "length": 2605,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_revokeRole(bytes32,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_roleMembers[role].remove(account)",
+ "source_mapping": {
+ "start": 2702,
+ "length": 34,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 68
+ ],
+ "starting_column": 9,
+ "ending_column": 43
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_revokeRole",
+ "source_mapping": {
+ "start": 2572,
+ "length": 171,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlEnumerableUpgradeable",
+ "source_mapping": {
+ "start": 431,
+ "length": 2605,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_revokeRole(bytes32,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "AccessControlEnumerableUpgradeable._revokeRole(bytes32,address) (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#66-69) ignores return value by _roleMembers[role].remove(account) (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#68)\n",
+ "markdown": "[AccessControlEnumerableUpgradeable._revokeRole(bytes32,address)](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L66-L69) ignores return value by [_roleMembers[role].remove(account)](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L68)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L66-L69",
+ "id": "076f76790b4c8e077be1617bcc82f2d4381a7a10e8cf41bc646d5208e1b6869d",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getPrice",
+ "source_mapping": {
+ "start": 3653,
+ "length": 2015,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniswapV3Oracle",
+ "source_mapping": {
+ "start": 729,
+ "length": 6210,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getPrice()"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(tickCumulatives,None) = uniswapPool.observe(secondsAgo)",
+ "source_mapping": {
+ "start": 4489,
+ "length": 67,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 107
+ ],
+ "starting_column": 13,
+ "ending_column": 80
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getPrice",
+ "source_mapping": {
+ "start": 3653,
+ "length": 2015,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniswapV3Oracle",
+ "source_mapping": {
+ "start": 729,
+ "length": 6210,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getPrice()"
+ }
+ }
+ }
+ }
+ ],
+ "description": "UniswapV3Oracle.getPrice() (src/oracles/UniswapV3Oracle.sol#88-127) ignores return value by (tickCumulatives,None) = uniswapPool.observe(secondsAgo) (src/oracles/UniswapV3Oracle.sol#107)\n",
+ "markdown": "[UniswapV3Oracle.getPrice()](src/oracles/UniswapV3Oracle.sol#L88-L127) ignores return value by [(tickCumulatives,None) = uniswapPool.observe(secondsAgo)](src/oracles/UniswapV3Oracle.sol#L107)\n",
+ "first_markdown_element": "src/oracles/UniswapV3Oracle.sol#L88-L127",
+ "id": "15eb9ed8c87b71a5d2ecedd3aa7b4a47cffcd9c5e79ee7bd0e04e3b4eaa86f54",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_updateBalSwapPoolID",
+ "source_mapping": {
+ "start": 2960,
+ "length": 817,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_updateBalSwapPoolID(address,address,address,bytes32)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(poolTokens,None,None) = IBeetVault(_vault).getPoolTokens(_poolID)",
+ "source_mapping": {
+ "start": 3222,
+ "length": 58,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 82
+ ],
+ "starting_column": 9,
+ "ending_column": 67
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_updateBalSwapPoolID",
+ "source_mapping": {
+ "start": 2960,
+ "length": 817,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_updateBalSwapPoolID(address,address,address,bytes32)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BalMixin._updateBalSwapPoolID(address,address,address,bytes32) (lib/vault-v2/src/mixins/BalMixin.sol#79-94) ignores return value by (poolTokens,None,None) = IBeetVault(_vault).getPoolTokens(_poolID) (lib/vault-v2/src/mixins/BalMixin.sol#82)\n",
+ "markdown": "[BalMixin._updateBalSwapPoolID(address,address,address,bytes32)](lib/vault-v2/src/mixins/BalMixin.sol#L79-L94) ignores return value by [(poolTokens,None,None) = IBeetVault(_vault).getPoolTokens(_poolID)](lib/vault-v2/src/mixins/BalMixin.sol#L82)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L79-L94",
+ "id": "22489e462e2576b06930c1d8cbfbae2e2b553f01d03f9ecb4dda6fe8f67db3c9",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_getCurrentChainlinkResponse",
+ "source_mapping": {
+ "start": 13273,
+ "length": 1334,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getCurrentChainlinkResponse(address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(roundId,answer,timestamp) = aggregatorData[_token].aggregator.latestRoundData()",
+ "source_mapping": {
+ "start": 13924,
+ "length": 677,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_getCurrentChainlinkResponse",
+ "source_mapping": {
+ "start": 13273,
+ "length": 1334,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getCurrentChainlinkResponse(address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper._getCurrentChainlinkResponse(address) (lib/vault-v2/src/ReaperSwapper.sol#345-373) ignores return value by (roundId,answer,timestamp) = aggregatorData[_token].aggregator.latestRoundData() (lib/vault-v2/src/ReaperSwapper.sol#360-372)\n",
+ "markdown": "[ReaperSwapper._getCurrentChainlinkResponse(address)](lib/vault-v2/src/ReaperSwapper.sol#L345-L373) ignores return value by [(roundId,answer,timestamp) = aggregatorData[_token].aggregator.latestRoundData()](lib/vault-v2/src/ReaperSwapper.sol#L360-L372)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L345-L373",
+ "id": "30b0452c36c12660b86348533df68749bf1fea5021fb22dbd899a99575905585",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_getPrevChainlinkResponse",
+ "source_mapping": {
+ "start": 14613,
+ "length": 1317,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getPrevChainlinkResponse(address,uint80,uint8)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(roundId,answer,timestamp) = aggregatorData[_token].aggregator.getRoundData(_currentRoundId - 1)",
+ "source_mapping": {
+ "start": 15144,
+ "length": 780,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_getPrevChainlinkResponse",
+ "source_mapping": {
+ "start": 14613,
+ "length": 1317,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_getPrevChainlinkResponse(address,uint80,uint8)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper._getPrevChainlinkResponse(address,uint80,uint8) (lib/vault-v2/src/ReaperSwapper.sol#375-400) ignores return value by (roundId,answer,timestamp) = aggregatorData[_token].aggregator.getRoundData(_currentRoundId - 1) (lib/vault-v2/src/ReaperSwapper.sol#386-399)\n",
+ "markdown": "[ReaperSwapper._getPrevChainlinkResponse(address,uint80,uint8)](lib/vault-v2/src/ReaperSwapper.sol#L375-L400) ignores return value by [(roundId,answer,timestamp) = aggregatorData[_token].aggregator.getRoundData(_currentRoundId - 1)](lib/vault-v2/src/ReaperSwapper.sol#L386-L399)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L375-L400",
+ "id": "3fb1d4622d7ea931b3c26311ca8702c2ec8cb0af6eb5ecafd74d274ba139f513",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_grantRole",
+ "source_mapping": {
+ "start": 2317,
+ "length": 166,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlEnumerableUpgradeable",
+ "source_mapping": {
+ "start": 431,
+ "length": 2605,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_grantRole(bytes32,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_roleMembers[role].add(account)",
+ "source_mapping": {
+ "start": 2445,
+ "length": 31,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 60
+ ],
+ "starting_column": 9,
+ "ending_column": 40
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_grantRole",
+ "source_mapping": {
+ "start": 2317,
+ "length": 166,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlEnumerableUpgradeable",
+ "source_mapping": {
+ "start": 431,
+ "length": 2605,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_grantRole(bytes32,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "AccessControlEnumerableUpgradeable._grantRole(bytes32,address) (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#58-61) ignores return value by _roleMembers[role].add(account) (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#60)\n",
+ "markdown": "[AccessControlEnumerableUpgradeable._grantRole(bytes32,address)](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L58-L61) ignores return value by [_roleMembers[role].add(account)](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L60)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L58-L61",
+ "id": "620dfa605cb7ea36269a8d3b9fa9056080aa44ef8b103b528893398de697d7d3",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.approve(swapProps.swapper,feeAmount)",
+ "source_mapping": {
+ "start": 8058,
+ "length": 53,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 213
+ ],
+ "starting_column": 13,
+ "ending_column": 66
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231) ignores return value by underlyingToken.approve(swapProps.swapper,feeAmount) (src/exercise/DiscountExercise.sol#213)\n",
+ "markdown": "[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231) ignores return value by [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L213)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
+ "id": "684b7ed11ac84490d20969fb21d74aa2d08d45cf6922ba41e4132debc88f1a3e",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "constructor",
+ "source_mapping": {
+ "start": 3156,
+ "length": 831,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalancerOracle",
+ "source_mapping": {
+ "start": 892,
+ "length": 6454,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "constructor(IBalancerTwapOracle,address,address,uint56,uint56,uint128)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle_.getPoolId())",
+ "source_mapping": {
+ "start": 3415,
+ "length": 86,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 78
+ ],
+ "starting_column": 9,
+ "ending_column": 95
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "constructor",
+ "source_mapping": {
+ "start": 3156,
+ "length": 831,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalancerOracle",
+ "source_mapping": {
+ "start": 892,
+ "length": 6454,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "constructor(IBalancerTwapOracle,address,address,uint56,uint56,uint128)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BalancerOracle.constructor(IBalancerTwapOracle,address,address,uint56,uint56,uint128) (src/oracles/BalancerOracle.sol#74-91) ignores return value by (poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle_.getPoolId()) (src/oracles/BalancerOracle.sol#78)\n",
+ "markdown": "[BalancerOracle.constructor(IBalancerTwapOracle,address,address,uint56,uint56,uint128)](src/oracles/BalancerOracle.sol#L74-L91) ignores return value by [(poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle_.getPoolId())](src/oracles/BalancerOracle.sol#L78)\n",
+ "first_markdown_element": "src/oracles/BalancerOracle.sol#L74-L91",
+ "id": "7fd9ee00c28427211778cf2546b458bdf9a14aa5bafb1c4e696c75da94161789",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2778,
+ "length": 79,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 79
+ ],
+ "starting_column": 13,
+ "ending_column": 92
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address) (src/helpers/SwapHelper.sol#69-85) ignores return value by _swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#79)\n",
+ "markdown": "[SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address)](src/helpers/SwapHelper.sol#L69-L85) ignores return value by [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L79)\n",
+ "first_markdown_element": "src/helpers/SwapHelper.sol#L69-L85",
+ "id": "905ebf5e0a77bb5ce6a9956a5a938b3fb57ccd447db79e52f28c190ad2b098fc",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2488,
+ "length": 80,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 75
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address) (src/helpers/SwapHelper.sol#69-85) ignores return value by _swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#75)\n",
+ "markdown": "[SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address)](src/helpers/SwapHelper.sol#L69-L85) ignores return value by [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L75)\n",
+ "first_markdown_element": "src/helpers/SwapHelper.sol#L69-L85",
+ "id": "94dc018090e15555f5a24f270bc2a4e251aa4fd683d1ad6da53e29b9ce36dfc0",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2631,
+ "length": 78,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 77
+ ],
+ "starting_column": 13,
+ "ending_column": 91
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address) (src/helpers/SwapHelper.sol#69-85) ignores return value by _swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#77)\n",
+ "markdown": "[SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address)](src/helpers/SwapHelper.sol#L69-L85) ignores return value by [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L77)\n",
+ "first_markdown_element": "src/helpers/SwapHelper.sol#L69-L85",
+ "id": "a1f5da77f45788e0404eeff5cf6f3e525a4c1f9dfd972ea1146ab141aae64f48",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_addLiquidityUniV2",
+ "source_mapping": {
+ "start": 2970,
+ "length": 603,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_addLiquidityUniV2(address,address,address,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IUniswapV2Router02(_router).addLiquidity(_lpToken0,_lpToken1,lp0Bal,lp1Bal,0,0,address(this),_deadline)",
+ "source_mapping": {
+ "start": 3416,
+ "length": 140,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 85,
+ 86,
+ 87
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_addLiquidityUniV2",
+ "source_mapping": {
+ "start": 2970,
+ "length": 603,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_addLiquidityUniV2(address,address,address,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "UniV2Mixin._addLiquidityUniV2(address,address,address,uint256) (lib/vault-v2/src/mixins/UniV2Mixin.sol#78-89) ignores return value by IUniswapV2Router02(_router).addLiquidity(_lpToken0,_lpToken1,lp0Bal,lp1Bal,0,0,address(this),_deadline) (lib/vault-v2/src/mixins/UniV2Mixin.sol#85-87)\n",
+ "markdown": "[UniV2Mixin._addLiquidityUniV2(address,address,address,uint256)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L78-L89) ignores return value by [IUniswapV2Router02(_router).addLiquidity(_lpToken0,_lpToken1,lp0Bal,lp1Bal,0,0,address(this),_deadline)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L85-L87)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV2Mixin.sol#L78-L89",
+ "id": "b6d4c23ffa7d93ea78b806ecab3d05e76b1b931c562033f0be3f688a2bf5138c",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2922,
+ "length": 80,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 81
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address) (src/helpers/SwapHelper.sol#69-85) ignores return value by _swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#81)\n",
+ "markdown": "[SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address)](src/helpers/SwapHelper.sol#L69-L85) ignores return value by [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L81)\n",
+ "first_markdown_element": "src/helpers/SwapHelper.sol#L69-L85",
+ "id": "ba75e8f4ffb4c65ddb6f1b12480fd59208ad29a142771fab28ee7f7006c98513",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getTokens",
+ "source_mapping": {
+ "start": 5915,
+ "length": 481,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalancerOracle",
+ "source_mapping": {
+ "start": 892,
+ "length": 6454,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTokens()"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle.getPoolId())",
+ "source_mapping": {
+ "start": 6079,
+ "length": 85,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 140
+ ],
+ "starting_column": 9,
+ "ending_column": 94
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTokens",
+ "source_mapping": {
+ "start": 5915,
+ "length": 481,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalancerOracle",
+ "source_mapping": {
+ "start": 892,
+ "length": 6454,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTokens()"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BalancerOracle.getTokens() (src/oracles/BalancerOracle.sol#138-148) ignores return value by (poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle.getPoolId()) (src/oracles/BalancerOracle.sol#140)\n",
+ "markdown": "[BalancerOracle.getTokens()](src/oracles/BalancerOracle.sol#L138-L148) ignores return value by [(poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle.getPoolId())](src/oracles/BalancerOracle.sol#L140)\n",
+ "first_markdown_element": "src/oracles/BalancerOracle.sol#L138-L148",
+ "id": "d1f99ec9ea9af88978409bc1c5b1676b709fd00041f617d279f7f6efb7773e9a",
+ "check": "unused-return",
+ "impact": "Medium",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "liquidity",
+ "source_mapping": {
+ "start": 5469,
+ "length": 17,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "is_dependency": true,
+ "lines": [
+ 93
+ ],
+ "starting_column": 13,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "positions",
+ "source_mapping": {
+ "start": 5377,
+ "length": 278,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "is_dependency": true,
+ "lines": [
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98
+ ],
+ "starting_column": 5,
+ "ending_column": 11
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "IUniswapV3PoolState",
+ "source_mapping": {
+ "start": 240,
+ "length": 6425,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "positions(bytes32)"
+ }
+ }
+ }
+ },
+ {
+ "type": "function",
+ "name": "liquidity",
+ "source_mapping": {
+ "start": 2725,
+ "length": 53,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "is_dependency": true,
+ "lines": [
+ 49
+ ],
+ "starting_column": 5,
+ "ending_column": 58
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "IUniswapV3PoolState",
+ "source_mapping": {
+ "start": 240,
+ "length": 6425,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "liquidity()"
+ }
+ }
+ ],
+ "description": "IUniswapV3PoolState.positions(bytes32).liquidity (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#93) shadows:\n\t- IUniswapV3PoolState.liquidity() (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#49) (function)\n",
+ "markdown": "[IUniswapV3PoolState.positions(bytes32).liquidity](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L93) shadows:\n\t- [IUniswapV3PoolState.liquidity()](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L49) (function)\n",
+ "first_markdown_element": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L93",
+ "id": "5e13c1a5ae4fc039231766295753ab663fafa45e8223c9c0d6c847752e70753f",
+ "check": "shadowing-local",
+ "impact": "Low",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "setMinAmountToTriggerSwap",
+ "source_mapping": {
+ "start": 6507,
+ "length": 152,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 179,
+ 180,
+ 181
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "setMinAmountToTriggerSwap(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "minAmountToTriggerSwap = _minAmountToTriggerSwap",
+ "source_mapping": {
+ "start": 6604,
+ "length": 48,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 180
+ ],
+ "starting_column": 9,
+ "ending_column": 57
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "setMinAmountToTriggerSwap",
+ "source_mapping": {
+ "start": 6507,
+ "length": 152,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 179,
+ 180,
+ 181
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "setMinAmountToTriggerSwap(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "DiscountExercise.setMinAmountToTriggerSwap(uint256) (src/exercise/DiscountExercise.sol#179-181) should emit an event for: \n\t- minAmountToTriggerSwap = _minAmountToTriggerSwap (src/exercise/DiscountExercise.sol#180) \n",
+ "markdown": "[DiscountExercise.setMinAmountToTriggerSwap(uint256)](src/exercise/DiscountExercise.sol#L179-L181) should emit an event for: \n\t- [minAmountToTriggerSwap = _minAmountToTriggerSwap](src/exercise/DiscountExercise.sol#L180) \n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L179-L181",
+ "id": "99c71da5f770edb1feb1845717d2ccb74eb2dfef272d225e93ebde0b29ec024c",
+ "check": "events-maths",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "newOwner",
+ "source_mapping": {
+ "start": 1339,
+ "length": 16,
+ "filename_relative": "lib/solmate/src/auth/Owned.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
+ "filename_short": "lib/solmate/src/auth/Owned.sol",
+ "is_dependency": true,
+ "lines": [
+ 39
+ ],
+ "starting_column": 32,
+ "ending_column": 48
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "transferOwnership",
+ "source_mapping": {
+ "start": 1312,
+ "length": 161,
+ "filename_relative": "lib/solmate/src/auth/Owned.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
+ "filename_short": "lib/solmate/src/auth/Owned.sol",
+ "is_dependency": true,
+ "lines": [
+ 39,
+ 40,
+ 41,
+ 42,
+ 43
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Owned",
+ "source_mapping": {
+ "start": 215,
+ "length": 1260,
+ "filename_relative": "lib/solmate/src/auth/Owned.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
+ "filename_short": "lib/solmate/src/auth/Owned.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "transferOwnership(address)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "owner = newOwner",
+ "source_mapping": {
+ "start": 1392,
+ "length": 16,
+ "filename_relative": "lib/solmate/src/auth/Owned.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
+ "filename_short": "lib/solmate/src/auth/Owned.sol",
+ "is_dependency": true,
+ "lines": [
+ 40
+ ],
+ "starting_column": 9,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "transferOwnership",
+ "source_mapping": {
+ "start": 1312,
+ "length": 161,
+ "filename_relative": "lib/solmate/src/auth/Owned.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
+ "filename_short": "lib/solmate/src/auth/Owned.sol",
+ "is_dependency": true,
+ "lines": [
+ 39,
+ 40,
+ 41,
+ 42,
+ 43
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Owned",
+ "source_mapping": {
+ "start": 215,
+ "length": 1260,
+ "filename_relative": "lib/solmate/src/auth/Owned.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
+ "filename_short": "lib/solmate/src/auth/Owned.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "transferOwnership(address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Owned.transferOwnership(address).newOwner (lib/solmate/src/auth/Owned.sol#39) lacks a zero-check on :\n\t\t- owner = newOwner (lib/solmate/src/auth/Owned.sol#40)\n",
+ "markdown": "[Owned.transferOwnership(address).newOwner](lib/solmate/src/auth/Owned.sol#L39) lacks a zero-check on :\n\t\t- [owner = newOwner](lib/solmate/src/auth/Owned.sol#L40)\n",
+ "first_markdown_element": "lib/solmate/src/auth/Owned.sol#L39",
+ "id": "42c5c3a31d57316a6a42a25af3d5437866fe31ad7d20faa9c9e90a828458a168",
+ "check": "missing-zero-check",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "tokenAdmin_",
+ "source_mapping": {
+ "start": 2629,
+ "length": 19,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 60
+ ],
+ "starting_column": 69,
+ "ending_column": 88
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "initialize",
+ "source_mapping": {
+ "start": 2565,
+ "length": 279,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "initialize(string,string,address)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "tokenAdmin = tokenAdmin_",
+ "source_mapping": {
+ "start": 2779,
+ "length": 24,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 64
+ ],
+ "starting_column": 9,
+ "ending_column": 33
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "initialize",
+ "source_mapping": {
+ "start": 2565,
+ "length": 279,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "initialize(string,string,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "OptionsToken.initialize(string,string,address).tokenAdmin_ (src/OptionsToken.sol#60) lacks a zero-check on :\n\t\t- tokenAdmin = tokenAdmin_ (src/OptionsToken.sol#64)\n",
+ "markdown": "[OptionsToken.initialize(string,string,address).tokenAdmin_](src/OptionsToken.sol#L60) lacks a zero-check on :\n\t\t- [tokenAdmin = tokenAdmin_](src/OptionsToken.sol#L64)\n",
+ "first_markdown_element": "src/OptionsToken.sol#L60",
+ "id": "4786a41866df4f4d6e9a53f76306dff86aa5c64f249a5507c66f1281e3a75404",
+ "check": "missing-zero-check",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_nextImplementation",
+ "source_mapping": {
+ "start": 6725,
+ "length": 27,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 162
+ ],
+ "starting_column": 38,
+ "ending_column": 65
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "initiateUpgradeCooldown",
+ "source_mapping": {
+ "start": 6692,
+ "length": 185,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 162,
+ 163,
+ 164,
+ 165
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "initiateUpgradeCooldown(address)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "nextImplementation = _nextImplementation",
+ "source_mapping": {
+ "start": 6830,
+ "length": 40,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 164
+ ],
+ "starting_column": 9,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "initiateUpgradeCooldown",
+ "source_mapping": {
+ "start": 6692,
+ "length": 185,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 162,
+ 163,
+ 164,
+ 165
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "initiateUpgradeCooldown(address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "OptionsToken.initiateUpgradeCooldown(address)._nextImplementation (src/OptionsToken.sol#162) lacks a zero-check on :\n\t\t- nextImplementation = _nextImplementation (src/OptionsToken.sol#164)\n",
+ "markdown": "[OptionsToken.initiateUpgradeCooldown(address)._nextImplementation](src/OptionsToken.sol#L162) lacks a zero-check on :\n\t\t- [nextImplementation = _nextImplementation](src/OptionsToken.sol#L164)\n",
+ "first_markdown_element": "src/OptionsToken.sol#L162",
+ "id": "752bb74930b6ee11a2722c36161d6ff0d00b9bc921cae3c938a9df7a3d0a692e",
+ "check": "missing-zero-check",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.safeTransfer(to,balance)",
+ "source_mapping": {
+ "start": 10112,
+ "length": 41,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 256
+ ],
+ "starting_column": 13,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.safeTransfer(to,amount)",
+ "source_mapping": {
+ "start": 10232,
+ "length": 40,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 259
+ ],
+ "starting_column": 13,
+ "ending_column": 53
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.safeTransfer(to,balance)",
+ "source_mapping": {
+ "start": 10112,
+ "length": 41,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 256
+ ],
+ "starting_column": 13,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.safeTransfer(to,amount)",
+ "source_mapping": {
+ "start": 10232,
+ "length": 40,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 259
+ ],
+ "starting_column": 13,
+ "ending_column": 53
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "credit[to] += remainingAmount",
+ "source_mapping": {
+ "start": 10292,
+ "length": 29,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 261
+ ],
+ "starting_column": 9,
+ "ending_column": 38
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "variables_written",
+ "variable_name": "credit"
+ }
+ }
+ ],
+ "description": "Reentrancy in DiscountExercise._pay(address,uint256) (src/exercise/DiscountExercise.sol#253-262):\n\tExternal calls:\n\t- underlyingToken.safeTransfer(to,balance) (src/exercise/DiscountExercise.sol#256)\n\t- underlyingToken.safeTransfer(to,amount) (src/exercise/DiscountExercise.sol#259)\n\tState variables written after the call(s):\n\t- credit[to] += remainingAmount (src/exercise/DiscountExercise.sol#261)\n",
+ "markdown": "Reentrancy in [DiscountExercise._pay(address,uint256)](src/exercise/DiscountExercise.sol#L253-L262):\n\tExternal calls:\n\t- [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L256)\n\t- [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L259)\n\tState variables written after the call(s):\n\t- [credit[to] += remainingAmount](src/exercise/DiscountExercise.sol#L261)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L253-L262",
+ "id": "90b417a7fb4fc819e0ffafdfc6e3850abd2a28d5ee88b307754c749fcc5ac59a",
+ "check": "reentrancy-benign",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 5527,
+ "length": 89,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 149
+ ],
+ "starting_column": 9,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4166,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3747,
+ "length": 706,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20",
+ "source_mapping": {
+ "start": 707,
+ "length": 3748,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeIncreaseAllowance(_router,_amount)",
+ "source_mapping": {
+ "start": 1488,
+ "length": 53,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 42
+ ],
+ "starting_column": 9,
+ "ending_column": 62
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
+ "source_mapping": {
+ "start": 1662,
+ "length": 422,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeApprove(_router,0)",
+ "source_mapping": {
+ "start": 1954,
+ "length": 37,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 51
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
+ "source_mapping": {
+ "start": 2114,
+ "length": 167,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pullFromBefore(_from,_amount)",
+ "source_mapping": {
+ "start": 5342,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 147
+ ],
+ "starting_column": 14,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4298,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3868,
+ "length": 717,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20Upgradeable",
+ "source_mapping": {
+ "start": 740,
+ "length": 3847,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)",
+ "source_mapping": {
+ "start": 19490,
+ "length": 85,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 485
+ ],
+ "starting_column": 9,
+ "ending_column": 94
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pullFromBefore",
+ "source_mapping": {
+ "start": 19424,
+ "length": 169,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 484,
+ 485,
+ 486,
+ 487
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pullFromBefore(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pushFromAndToAfter(_from,_to)",
+ "source_mapping": {
+ "start": 5373,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 147
+ ],
+ "starting_column": 45,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4298,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3868,
+ "length": 717,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20Upgradeable",
+ "source_mapping": {
+ "start": 740,
+ "length": 3847,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)",
+ "source_mapping": {
+ "start": 19793,
+ "length": 66,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 493
+ ],
+ "starting_column": 13,
+ "ending_column": 79
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pushFromAndToAfter",
+ "source_mapping": {
+ "start": 19599,
+ "length": 470,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pushFromAndToAfter(address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)",
+ "source_mapping": {
+ "start": 19990,
+ "length": 62,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 497
+ ],
+ "starting_column": 13,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pushFromAndToAfter",
+ "source_mapping": {
+ "start": 19599,
+ "length": 470,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pushFromAndToAfter(address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 5527,
+ "length": 89,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 149
+ ],
+ "starting_column": 9,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pullFromBefore(_from,_amount)",
+ "source_mapping": {
+ "start": 5342,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 147
+ ],
+ "starting_column": 14,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pushFromAndToAfter(_from,_to)",
+ "source_mapping": {
+ "start": 5373,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 147
+ ],
+ "starting_column": 45,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "GetAmountsOutFailed(_router,_amount,_from,_to)",
+ "source_mapping": {
+ "start": 1323,
+ "length": 54,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 37
+ ],
+ "starting_column": 13,
+ "ending_column": 67
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 5527,
+ "length": 89,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 149
+ ],
+ "starting_column": 9,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "SwapFailed(_router,_amount,_minAmountOut,_from,_to)",
+ "source_mapping": {
+ "start": 2009,
+ "length": 60,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 52
+ ],
+ "starting_column": 17,
+ "ending_column": 77
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 5527,
+ "length": 89,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 149
+ ],
+ "starting_column": 9,
+ "ending_column": 98
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool) (lib/vault-v2/src/ReaperSwapper.sol#139-150):\n\tExternal calls:\n\t- _swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#149)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- IERC20(_from).safeIncreaseAllowance(_router,_amount) (lib/vault-v2/src/mixins/UniV2Mixin.sol#42)\n\t\t- IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/UniV2Mixin.sol#46-53)\n\t\t- IERC20(_from).safeApprove(_router,0) (lib/vault-v2/src/mixins/UniV2Mixin.sol#51)\n\t\t- IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/UniV2Mixin.sol#55-57)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#147)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount) (lib/vault-v2/src/ReaperSwapper.sol#485)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#147)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal) (lib/vault-v2/src/ReaperSwapper.sol#493)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t\t- IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal) (lib/vault-v2/src/ReaperSwapper.sol#497)\n\tExternal calls sending eth:\n\t- _swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#149)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#147)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#147)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\tEvent emitted after the call(s):\n\t- GetAmountsOutFailed(_router,_amount,_from,_to) (lib/vault-v2/src/mixins/UniV2Mixin.sol#37)\n\t\t- _swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#149)\n\t- SwapFailed(_router,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/UniV2Mixin.sol#52)\n\t\t- _swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#149)\n",
+ "markdown": "Reentrancy in [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)](lib/vault-v2/src/ReaperSwapper.sol#L139-L150):\n\tExternal calls:\n\t- [_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L149)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [IERC20(_from).safeIncreaseAllowance(_router,_amount)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L42)\n\t\t- [IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L46-L53)\n\t\t- [IERC20(_from).safeApprove(_router,0)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L51)\n\t\t- [IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L55-L57)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L147)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)](lib/vault-v2/src/ReaperSwapper.sol#L485)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L147)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)](lib/vault-v2/src/ReaperSwapper.sol#L493)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t\t- [IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)](lib/vault-v2/src/ReaperSwapper.sol#L497)\n\tExternal calls sending eth:\n\t- [_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L149)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L147)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L147)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\tEvent emitted after the call(s):\n\t- [GetAmountsOutFailed(_router,_amount,_from,_to)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L37)\n\t\t- [_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L149)\n\t- [SwapFailed(_router,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L52)\n\t\t- [_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L149)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L139-L150",
+ "id": "10ddb26acba74e372c85b3164933929baee8d00e79dab8d38b7fdeed4f18d3a0",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 7824,
+ "length": 88,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 217
+ ],
+ "starting_column": 9,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4166,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3747,
+ "length": 706,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20",
+ "source_mapping": {
+ "start": 707,
+ "length": 3748,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeIncreaseAllowance(_router,_amount)",
+ "source_mapping": {
+ "start": 1784,
+ "length": 53,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 50
+ ],
+ "starting_column": 9,
+ "ending_column": 62
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
+ "source_mapping": {
+ "start": 1889,
+ "length": 401,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeApprove(_router,0)",
+ "source_mapping": {
+ "start": 2160,
+ "length": 37,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 57
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
+ "source_mapping": {
+ "start": 2327,
+ "length": 210,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pullFromBefore(_from,_amount)",
+ "source_mapping": {
+ "start": 7639,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 215
+ ],
+ "starting_column": 14,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4298,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3868,
+ "length": 717,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20Upgradeable",
+ "source_mapping": {
+ "start": 740,
+ "length": 3847,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)",
+ "source_mapping": {
+ "start": 19490,
+ "length": 85,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 485
+ ],
+ "starting_column": 9,
+ "ending_column": 94
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pullFromBefore",
+ "source_mapping": {
+ "start": 19424,
+ "length": 169,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 484,
+ 485,
+ 486,
+ 487
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pullFromBefore(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pushFromAndToAfter(_from,_to)",
+ "source_mapping": {
+ "start": 7670,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 215
+ ],
+ "starting_column": 45,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4298,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3868,
+ "length": 717,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20Upgradeable",
+ "source_mapping": {
+ "start": 740,
+ "length": 3847,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)",
+ "source_mapping": {
+ "start": 19793,
+ "length": 66,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 493
+ ],
+ "starting_column": 13,
+ "ending_column": 79
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pushFromAndToAfter",
+ "source_mapping": {
+ "start": 19599,
+ "length": 470,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pushFromAndToAfter(address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)",
+ "source_mapping": {
+ "start": 19990,
+ "length": 62,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 497
+ ],
+ "starting_column": 13,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pushFromAndToAfter",
+ "source_mapping": {
+ "start": 19599,
+ "length": 470,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pushFromAndToAfter(address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 7824,
+ "length": 88,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 217
+ ],
+ "starting_column": 9,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pullFromBefore(_from,_amount)",
+ "source_mapping": {
+ "start": 7639,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 215
+ ],
+ "starting_column": 14,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pushFromAndToAfter(_from,_to)",
+ "source_mapping": {
+ "start": 7670,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 215
+ ],
+ "starting_column": 45,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "GetAmountsOutFailed(_router,_amount,_from,_to)",
+ "source_mapping": {
+ "start": 1619,
+ "length": 54,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 45
+ ],
+ "starting_column": 13,
+ "ending_column": 67
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 7824,
+ "length": 88,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 217
+ ],
+ "starting_column": 9,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "SwapFailed(_router,_amount,_minAmountOut,_from,_to)",
+ "source_mapping": {
+ "start": 2215,
+ "length": 60,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 58
+ ],
+ "starting_column": 17,
+ "ending_column": 77
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 7824,
+ "length": 88,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 217
+ ],
+ "starting_column": 9,
+ "ending_column": 97
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool) (lib/vault-v2/src/ReaperSwapper.sol#207-218):\n\tExternal calls:\n\t- _swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#217)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- IERC20(_from).safeIncreaseAllowance(_router,_amount) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#50)\n\t\t- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#52-59)\n\t\t- IERC20(_from).safeApprove(_router,0) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#57)\n\t\t- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#62-68)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#215)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount) (lib/vault-v2/src/ReaperSwapper.sol#485)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#215)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal) (lib/vault-v2/src/ReaperSwapper.sol#493)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t\t- IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal) (lib/vault-v2/src/ReaperSwapper.sol#497)\n\tExternal calls sending eth:\n\t- _swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#217)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#215)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#215)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\tEvent emitted after the call(s):\n\t- GetAmountsOutFailed(_router,_amount,_from,_to) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#45)\n\t\t- _swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#217)\n\t- SwapFailed(_router,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#58)\n\t\t- _swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#217)\n",
+ "markdown": "Reentrancy in [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)](lib/vault-v2/src/ReaperSwapper.sol#L207-L218):\n\tExternal calls:\n\t- [_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L217)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [IERC20(_from).safeIncreaseAllowance(_router,_amount)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L50)\n\t\t- [router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L52-L59)\n\t\t- [IERC20(_from).safeApprove(_router,0)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L57)\n\t\t- [router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L62-L68)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L215)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)](lib/vault-v2/src/ReaperSwapper.sol#L485)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L215)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)](lib/vault-v2/src/ReaperSwapper.sol#L493)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t\t- [IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)](lib/vault-v2/src/ReaperSwapper.sol#L497)\n\tExternal calls sending eth:\n\t- [_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L217)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L215)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L215)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\tEvent emitted after the call(s):\n\t- [GetAmountsOutFailed(_router,_amount,_from,_to)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L45)\n\t\t- [_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L217)\n\t- [SwapFailed(_router,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L58)\n\t\t- [_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L217)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L207-L218",
+ "id": "19acbcb4d6835840db936ed70e0dddd5b1f9569d32cc2f3bbd64ec8e55f0a367",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_redeem",
+ "source_mapping": {
+ "start": 9155,
+ "length": 752,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "distributeFeesFrom(paymentAmount,paymentToken,from)",
+ "source_mapping": {
+ "start": 9698,
+ "length": 53,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 246
+ ],
+ "starting_column": 9,
+ "ending_column": 62
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_redeem",
+ "source_mapping": {
+ "start": 9155,
+ "length": 752,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4166,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3747,
+ "length": 706,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20",
+ "source_mapping": {
+ "start": 707,
+ "length": 3748,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransferFrom(from,feeRecipients[i],feeAmount)",
+ "source_mapping": {
+ "start": 3306,
+ "length": 57,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 79
+ ],
+ "starting_column": 13,
+ "ending_column": 70
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)",
+ "source_mapping": {
+ "start": 3419,
+ "length": 80,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 82
+ ],
+ "starting_column": 9,
+ "ending_column": 89
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_pay(recipient,amount)",
+ "source_mapping": {
+ "start": 9812,
+ "length": 23,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 248
+ ],
+ "starting_column": 9,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_redeem",
+ "source_mapping": {
+ "start": 9155,
+ "length": 752,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4166,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3747,
+ "length": 706,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20",
+ "source_mapping": {
+ "start": 707,
+ "length": 3748,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.safeTransfer(to,balance)",
+ "source_mapping": {
+ "start": 10112,
+ "length": 41,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 256
+ ],
+ "starting_column": 13,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.safeTransfer(to,amount)",
+ "source_mapping": {
+ "start": 10232,
+ "length": 40,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 259
+ ],
+ "starting_column": 13,
+ "ending_column": 53
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "distributeFeesFrom(paymentAmount,paymentToken,from)",
+ "source_mapping": {
+ "start": 9698,
+ "length": 53,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 246
+ ],
+ "starting_column": 9,
+ "ending_column": 62
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_redeem",
+ "source_mapping": {
+ "start": 9155,
+ "length": 752,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_pay(recipient,amount)",
+ "source_mapping": {
+ "start": 9812,
+ "length": 23,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 248
+ ],
+ "starting_column": 9,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_redeem",
+ "source_mapping": {
+ "start": 9155,
+ "length": 752,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "Exercised(from,recipient,amount,paymentAmount)",
+ "source_mapping": {
+ "start": 9846,
+ "length": 54,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 250
+ ],
+ "starting_column": 9,
+ "ending_column": 63
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_redeem",
+ "source_mapping": {
+ "start": 9155,
+ "length": 752,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#234-251):\n\tExternal calls:\n\t- distributeFeesFrom(paymentAmount,paymentToken,from) (src/exercise/DiscountExercise.sol#246)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- token.safeTransferFrom(from,feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#79)\n\t\t- token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#82)\n\t- _pay(recipient,amount) (src/exercise/DiscountExercise.sol#248)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- underlyingToken.safeTransfer(to,balance) (src/exercise/DiscountExercise.sol#256)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- underlyingToken.safeTransfer(to,amount) (src/exercise/DiscountExercise.sol#259)\n\tExternal calls sending eth:\n\t- distributeFeesFrom(paymentAmount,paymentToken,from) (src/exercise/DiscountExercise.sol#246)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- _pay(recipient,amount) (src/exercise/DiscountExercise.sol#248)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\tEvent emitted after the call(s):\n\t- Exercised(from,recipient,amount,paymentAmount) (src/exercise/DiscountExercise.sol#250)\n",
+ "markdown": "Reentrancy in [DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L234-L251):\n\tExternal calls:\n\t- [distributeFeesFrom(paymentAmount,paymentToken,from)](src/exercise/DiscountExercise.sol#L246)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L79)\n\t\t- [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L82)\n\t- [_pay(recipient,amount)](src/exercise/DiscountExercise.sol#L248)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L256)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L259)\n\tExternal calls sending eth:\n\t- [distributeFeesFrom(paymentAmount,paymentToken,from)](src/exercise/DiscountExercise.sol#L246)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [_pay(recipient,amount)](src/exercise/DiscountExercise.sol#L248)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\tEvent emitted after the call(s):\n\t- [Exercised(from,recipient,amount,paymentAmount)](src/exercise/DiscountExercise.sol#L250)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L234-L251",
+ "id": "26caaa03d129daf1e06f63fba1f271327eb635ddffdba1b035775a48b226290d",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeIncreaseAllowance(_router,_amount)",
+ "source_mapping": {
+ "start": 1784,
+ "length": 53,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 50
+ ],
+ "starting_column": 9,
+ "ending_column": 62
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
+ "source_mapping": {
+ "start": 1889,
+ "length": 401,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeApprove(_router,0)",
+ "source_mapping": {
+ "start": 2160,
+ "length": 37,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 57
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "SwapFailed(_router,_amount,_minAmountOut,_from,_to)",
+ "source_mapping": {
+ "start": 2215,
+ "length": 60,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 58
+ ],
+ "starting_column": 17,
+ "ending_column": 77
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#24-71):\n\tExternal calls:\n\t- IERC20(_from).safeIncreaseAllowance(_router,_amount) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#50)\n\t- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#52-59)\n\t- IERC20(_from).safeApprove(_router,0) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#57)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_router,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#58)\n",
+ "markdown": "Reentrancy in [VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L24-L71):\n\tExternal calls:\n\t- [IERC20(_from).safeIncreaseAllowance(_router,_amount)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L50)\n\t- [router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L52-L59)\n\t- [IERC20(_from).safeApprove(_router,0)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L57)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_router,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L58)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/VeloSolidMixin.sol#L24-L71",
+ "id": "64eb188174f60b500640995e6c3c45d0308f915abcaa5e5dfe2a2d61bb334e63",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 6682,
+ "length": 86,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 183
+ ],
+ "starting_column": 9,
+ "ending_column": 95
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4166,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3747,
+ "length": 706,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20",
+ "source_mapping": {
+ "start": 707,
+ "length": 3748,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance)",
+ "source_mapping": {
+ "start": 2092,
+ "length": 71,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 59
+ ],
+ "starting_column": 13,
+ "ending_column": 84
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)",
+ "source_mapping": {
+ "start": 2294,
+ "length": 448,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeApprove(_vault,0)",
+ "source_mapping": {
+ "start": 2596,
+ "length": 36,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 69
+ ],
+ "starting_column": 21,
+ "ending_column": 57
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "amountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)",
+ "source_mapping": {
+ "start": 2772,
+ "length": 80,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 74
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pullFromBefore(_from,_amount)",
+ "source_mapping": {
+ "start": 6497,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 181
+ ],
+ "starting_column": 14,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4298,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3868,
+ "length": 717,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20Upgradeable",
+ "source_mapping": {
+ "start": 740,
+ "length": 3847,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)",
+ "source_mapping": {
+ "start": 19490,
+ "length": 85,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 485
+ ],
+ "starting_column": 9,
+ "ending_column": 94
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pullFromBefore",
+ "source_mapping": {
+ "start": 19424,
+ "length": 169,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 484,
+ 485,
+ 486,
+ 487
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pullFromBefore(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pushFromAndToAfter(_from,_to)",
+ "source_mapping": {
+ "start": 6528,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 181
+ ],
+ "starting_column": 45,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4298,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3868,
+ "length": 717,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20Upgradeable",
+ "source_mapping": {
+ "start": 740,
+ "length": 3847,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)",
+ "source_mapping": {
+ "start": 19793,
+ "length": 66,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 493
+ ],
+ "starting_column": 13,
+ "ending_column": 79
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pushFromAndToAfter",
+ "source_mapping": {
+ "start": 19599,
+ "length": 470,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pushFromAndToAfter(address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)",
+ "source_mapping": {
+ "start": 19990,
+ "length": 62,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 497
+ ],
+ "starting_column": 13,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pushFromAndToAfter",
+ "source_mapping": {
+ "start": 19599,
+ "length": 470,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pushFromAndToAfter(address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 6682,
+ "length": 86,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 183
+ ],
+ "starting_column": 9,
+ "ending_column": 95
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pullFromBefore(_from,_amount)",
+ "source_mapping": {
+ "start": 6497,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 181
+ ],
+ "starting_column": 14,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pushFromAndToAfter(_from,_to)",
+ "source_mapping": {
+ "start": 6528,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 181
+ ],
+ "starting_column": 45,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "SwapFailed(_vault,_amount,_minAmountOut,_from,_to)",
+ "source_mapping": {
+ "start": 2668,
+ "length": 59,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 71
+ ],
+ "starting_column": 17,
+ "ending_column": 76
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)",
+ "source_mapping": {
+ "start": 6682,
+ "length": 86,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 183
+ ],
+ "starting_column": 9,
+ "ending_column": 95
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool) (lib/vault-v2/src/ReaperSwapper.sol#173-184):\n\tExternal calls:\n\t- _swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#183)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance) (lib/vault-v2/src/mixins/BalMixin.sol#59)\n\t\t- tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline) (lib/vault-v2/src/mixins/BalMixin.sol#64-72)\n\t\t- IERC20(_from).safeApprove(_vault,0) (lib/vault-v2/src/mixins/BalMixin.sol#69)\n\t\t- amountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline) (lib/vault-v2/src/mixins/BalMixin.sol#74)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#181)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount) (lib/vault-v2/src/ReaperSwapper.sol#485)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#181)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal) (lib/vault-v2/src/ReaperSwapper.sol#493)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t\t- IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal) (lib/vault-v2/src/ReaperSwapper.sol#497)\n\tExternal calls sending eth:\n\t- _swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#183)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#181)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#181)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_vault,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/BalMixin.sol#71)\n\t\t- _swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#183)\n",
+ "markdown": "Reentrancy in [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)](lib/vault-v2/src/ReaperSwapper.sol#L173-L184):\n\tExternal calls:\n\t- [_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L183)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance)](lib/vault-v2/src/mixins/BalMixin.sol#L59)\n\t\t- [tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)](lib/vault-v2/src/mixins/BalMixin.sol#L64-L72)\n\t\t- [IERC20(_from).safeApprove(_vault,0)](lib/vault-v2/src/mixins/BalMixin.sol#L69)\n\t\t- [amountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)](lib/vault-v2/src/mixins/BalMixin.sol#L74)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L181)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)](lib/vault-v2/src/ReaperSwapper.sol#L485)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L181)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)](lib/vault-v2/src/ReaperSwapper.sol#L493)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t\t- [IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)](lib/vault-v2/src/ReaperSwapper.sol#L497)\n\tExternal calls sending eth:\n\t- [_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L183)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L181)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L181)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_vault,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/BalMixin.sol#L71)\n\t\t- [_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L183)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L173-L184",
+ "id": "6afd47a6cc546c6f39cd92034e38da33b560d04fbd75a1655a8c2dfb29e08cdd",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "TransferHelper.safeApprove(path[0],_params.router,_params.amount)",
+ "source_mapping": {
+ "start": 1708,
+ "length": 67,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 49
+ ],
+ "starting_column": 9,
+ "ending_column": 76
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "tmpAmountOut = ISwapRouter(_params.router).exactInput(params)",
+ "source_mapping": {
+ "start": 2186,
+ "length": 346,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "TransferHelper.safeApprove(path[0],_params.router,0)",
+ "source_mapping": {
+ "start": 2350,
+ "length": 54,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 63
+ ],
+ "starting_column": 17,
+ "ending_column": 71
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to)",
+ "source_mapping": {
+ "start": 2422,
+ "length": 95,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 64
+ ],
+ "starting_column": 17,
+ "ending_column": 112
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in UniV3Mixin._swapUniV3(UniV3Mixin.Params__swapUniV3) (lib/vault-v2/src/mixins/UniV3Mixin.sol#38-69):\n\tExternal calls:\n\t- TransferHelper.safeApprove(path[0],_params.router,_params.amount) (lib/vault-v2/src/mixins/UniV3Mixin.sol#49)\n\t- tmpAmountOut = ISwapRouter(_params.router).exactInput(params) (lib/vault-v2/src/mixins/UniV3Mixin.sol#60-65)\n\t- TransferHelper.safeApprove(path[0],_params.router,0) (lib/vault-v2/src/mixins/UniV3Mixin.sol#63)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to) (lib/vault-v2/src/mixins/UniV3Mixin.sol#64)\n",
+ "markdown": "Reentrancy in [UniV3Mixin._swapUniV3(UniV3Mixin.Params__swapUniV3)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L38-L69):\n\tExternal calls:\n\t- [TransferHelper.safeApprove(path[0],_params.router,_params.amount)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L49)\n\t- [tmpAmountOut = ISwapRouter(_params.router).exactInput(params)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L60-L65)\n\t- [TransferHelper.safeApprove(path[0],_params.router,0)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L63)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L64)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L38-L69",
+ "id": "7476c00ea23c811b6774a0358c1ce4170dea75590e0878323a36cacc5adb0379",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance)",
+ "source_mapping": {
+ "start": 2092,
+ "length": 71,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 59
+ ],
+ "starting_column": 13,
+ "ending_column": 84
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)",
+ "source_mapping": {
+ "start": 2294,
+ "length": 448,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeApprove(_vault,0)",
+ "source_mapping": {
+ "start": 2596,
+ "length": 36,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 69
+ ],
+ "starting_column": 21,
+ "ending_column": 57
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "SwapFailed(_vault,_amount,_minAmountOut,_from,_to)",
+ "source_mapping": {
+ "start": 2668,
+ "length": 59,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 71
+ ],
+ "starting_column": 17,
+ "ending_column": 76
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/BalMixin.sol#25-76):\n\tExternal calls:\n\t- IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance) (lib/vault-v2/src/mixins/BalMixin.sol#59)\n\t- tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline) (lib/vault-v2/src/mixins/BalMixin.sol#64-72)\n\t- IERC20(_from).safeApprove(_vault,0) (lib/vault-v2/src/mixins/BalMixin.sol#69)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_vault,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/BalMixin.sol#71)\n",
+ "markdown": "Reentrancy in [BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/BalMixin.sol#L25-L76):\n\tExternal calls:\n\t- [IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance)](lib/vault-v2/src/mixins/BalMixin.sol#L59)\n\t- [tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)](lib/vault-v2/src/mixins/BalMixin.sol#L64-L72)\n\t- [IERC20(_from).safeApprove(_vault,0)](lib/vault-v2/src/mixins/BalMixin.sol#L69)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_vault,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/BalMixin.sol#L71)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L25-L76",
+ "id": "77714ef1ffc67e587fe7e535481ee61f37a6029f67e7f2a1b6502b530a92b385",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_exercise",
+ "source_mapping": {
+ "start": 5470,
+ "length": 847,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_exercise(uint256,address,address,bytes)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(paymentAmount,data0,data1,data2) = IExercise(option).exercise(msg.sender,amount,recipient,params)",
+ "source_mapping": {
+ "start": 6108,
+ "length": 104,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 148
+ ],
+ "starting_column": 9,
+ "ending_column": 113
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_exercise",
+ "source_mapping": {
+ "start": 5470,
+ "length": 847,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_exercise(uint256,address,address,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "Exercise(msg.sender,recipient,amount,data0,data1,data2)",
+ "source_mapping": {
+ "start": 6245,
+ "length": 65,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 151
+ ],
+ "starting_column": 9,
+ "ending_column": 74
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_exercise",
+ "source_mapping": {
+ "start": 5470,
+ "length": 847,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_exercise(uint256,address,address,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in OptionsToken._exercise(uint256,address,address,bytes) (src/OptionsToken.sol#128-152):\n\tExternal calls:\n\t- (paymentAmount,data0,data1,data2) = IExercise(option).exercise(msg.sender,amount,recipient,params) (src/OptionsToken.sol#148)\n\tEvent emitted after the call(s):\n\t- Exercise(msg.sender,recipient,amount,data0,data1,data2) (src/OptionsToken.sol#151)\n",
+ "markdown": "Reentrancy in [OptionsToken._exercise(uint256,address,address,bytes)](src/OptionsToken.sol#L128-L152):\n\tExternal calls:\n\t- [(paymentAmount,data0,data1,data2) = IExercise(option).exercise(msg.sender,amount,recipient,params)](src/OptionsToken.sol#L148)\n\tEvent emitted after the call(s):\n\t- [Exercise(msg.sender,recipient,amount,data0,data1,data2)](src/OptionsToken.sol#L151)\n",
+ "first_markdown_element": "src/OptionsToken.sol#L128-L152",
+ "id": "9647d6058a2a1f10ef7714d6f960ae5b85d86b4e1fcd2ffd512fd2031b5d6fe7",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeIncreaseAllowance(_router,_amount)",
+ "source_mapping": {
+ "start": 1488,
+ "length": 53,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 42
+ ],
+ "starting_column": 9,
+ "ending_column": 62
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
+ "source_mapping": {
+ "start": 1662,
+ "length": 422,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20(_from).safeApprove(_router,0)",
+ "source_mapping": {
+ "start": 1954,
+ "length": 37,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 51
+ ],
+ "starting_column": 17,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "SwapFailed(_router,_amount,_minAmountOut,_from,_to)",
+ "source_mapping": {
+ "start": 2009,
+ "length": 60,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 52
+ ],
+ "starting_column": 17,
+ "ending_column": 77
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in UniV2Mixin._swapUniV2(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/UniV2Mixin.sol#20-60):\n\tExternal calls:\n\t- IERC20(_from).safeIncreaseAllowance(_router,_amount) (lib/vault-v2/src/mixins/UniV2Mixin.sol#42)\n\t- IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/UniV2Mixin.sol#46-53)\n\t- IERC20(_from).safeApprove(_router,0) (lib/vault-v2/src/mixins/UniV2Mixin.sol#51)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_router,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/UniV2Mixin.sol#52)\n",
+ "markdown": "Reentrancy in [UniV2Mixin._swapUniV2(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L20-L60):\n\tExternal calls:\n\t- [IERC20(_from).safeIncreaseAllowance(_router,_amount)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L42)\n\t- [IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L46-L53)\n\t- [IERC20(_from).safeApprove(_router,0)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L51)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_router,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L52)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV2Mixin.sol#L20-L60",
+ "id": "b59ab902647dd201a6cd9aca4552dafa018066963efcc3219bd8955570f9b1e5",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransferFrom(from,feeRecipients[i],feeAmount)",
+ "source_mapping": {
+ "start": 3306,
+ "length": 57,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 79
+ ],
+ "starting_column": 13,
+ "ending_column": 70
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)",
+ "source_mapping": {
+ "start": 3419,
+ "length": 80,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 82
+ ],
+ "starting_column": 9,
+ "ending_column": 89
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "DistributeFees(feeRecipients,feeBPS,totalAmount)",
+ "source_mapping": {
+ "start": 3509,
+ "length": 55,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 83
+ ],
+ "starting_column": 9,
+ "ending_column": 64
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFeesFrom",
+ "source_mapping": {
+ "start": 3017,
+ "length": 554,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFeesFrom(uint256,IERC20,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in BaseExercise.distributeFeesFrom(uint256,IERC20,address) (src/exercise/BaseExercise.sol#75-84):\n\tExternal calls:\n\t- token.safeTransferFrom(from,feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#79)\n\t- token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#82)\n\tEvent emitted after the call(s):\n\t- DistributeFees(feeRecipients,feeBPS,totalAmount) (src/exercise/BaseExercise.sol#83)\n",
+ "markdown": "Reentrancy in [BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L75-L84):\n\tExternal calls:\n\t- [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L79)\n\t- [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L82)\n\tEvent emitted after the call(s):\n\t- [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L83)\n",
+ "first_markdown_element": "src/exercise/BaseExercise.sol#L75-L84",
+ "id": "bf1b099632b824aafcfad9a23ac98bf3dcb6b4fb4b4b5ae04e209e3b61acc42f",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransfer(feeRecipients[i],feeAmount)",
+ "source_mapping": {
+ "start": 4121,
+ "length": 47,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 94
+ ],
+ "starting_column": 13,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)",
+ "source_mapping": {
+ "start": 4224,
+ "length": 70,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 97
+ ],
+ "starting_column": 9,
+ "ending_column": 79
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "DistributeFees(feeRecipients,feeBPS,totalAmount)",
+ "source_mapping": {
+ "start": 4304,
+ "length": 55,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 98
+ ],
+ "starting_column": 9,
+ "ending_column": 64
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in BaseExercise.distributeFees(uint256,IERC20) (src/exercise/BaseExercise.sol#88-99):\n\tExternal calls:\n\t- token.safeTransfer(feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#94)\n\t- token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#97)\n\tEvent emitted after the call(s):\n\t- DistributeFees(feeRecipients,feeBPS,totalAmount) (src/exercise/BaseExercise.sol#98)\n",
+ "markdown": "Reentrancy in [BaseExercise.distributeFees(uint256,IERC20)](src/exercise/BaseExercise.sol#L88-L99):\n\tExternal calls:\n\t- [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L94)\n\t- [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L97)\n\tEvent emitted after the call(s):\n\t- [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L98)\n",
+ "first_markdown_element": "src/exercise/BaseExercise.sol#L88-L99",
+ "id": "cc6f76bc69057bc8d1566793027f78e4e33511dc9a9f9b389b45a7c32f934e73",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.approve(swapProps.swapper,feeAmount)",
+ "source_mapping": {
+ "start": 8058,
+ "length": 53,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 213
+ ],
+ "starting_column": 13,
+ "ending_column": 66
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)",
+ "source_mapping": {
+ "start": 8277,
+ "length": 138,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 216
+ ],
+ "starting_column": 13,
+ "ending_column": 151
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2488,
+ "length": 80,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 75
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2631,
+ "length": 78,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 77
+ ],
+ "starting_column": 13,
+ "ending_column": 91
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2778,
+ "length": 79,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 79
+ ],
+ "starting_column": 13,
+ "ending_column": 92
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2922,
+ "length": 80,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 81
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
+ "source_mapping": {
+ "start": 8593,
+ "length": 67,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 220
+ ],
+ "starting_column": 13,
+ "ending_column": 80
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4166,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3747,
+ "length": 706,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20",
+ "source_mapping": {
+ "start": 707,
+ "length": 3748,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransfer(feeRecipients[i],feeAmount)",
+ "source_mapping": {
+ "start": 4121,
+ "length": 47,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 94
+ ],
+ "starting_column": 13,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)",
+ "source_mapping": {
+ "start": 4224,
+ "length": 70,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 97
+ ],
+ "starting_column": 9,
+ "ending_column": 79
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_pay(recipient,underlyingAmount)",
+ "source_mapping": {
+ "start": 9007,
+ "length": 33,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 228
+ ],
+ "starting_column": 9,
+ "ending_column": 42
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4166,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3747,
+ "length": 706,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20",
+ "source_mapping": {
+ "start": 707,
+ "length": 3748,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.safeTransfer(to,balance)",
+ "source_mapping": {
+ "start": 10112,
+ "length": 41,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 256
+ ],
+ "starting_column": 13,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.safeTransfer(to,amount)",
+ "source_mapping": {
+ "start": 10232,
+ "length": 40,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 259
+ ],
+ "starting_column": 13,
+ "ending_column": 53
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_pay",
+ "source_mapping": {
+ "start": 9913,
+ "length": 415,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_pay(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
+ "source_mapping": {
+ "start": 8593,
+ "length": 67,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 220
+ ],
+ "starting_column": 13,
+ "ending_column": 80
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_pay(recipient,underlyingAmount)",
+ "source_mapping": {
+ "start": 9007,
+ "length": 33,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 228
+ ],
+ "starting_column": 9,
+ "ending_column": 42
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "Exercised(from,recipient,underlyingAmount,paymentAmount)",
+ "source_mapping": {
+ "start": 9051,
+ "length": 64,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 230
+ ],
+ "starting_column": 9,
+ "ending_column": 73
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231):\n\tExternal calls:\n\t- underlyingToken.approve(swapProps.swapper,feeAmount) (src/exercise/DiscountExercise.sol#213)\n\t- _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress) (src/exercise/DiscountExercise.sol#216)\n\t\t- _swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#75)\n\t\t- _swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#77)\n\t\t- _swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#79)\n\t\t- _swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#81)\n\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- token.safeTransfer(feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#94)\n\t\t- token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#97)\n\t- _pay(recipient,underlyingAmount) (src/exercise/DiscountExercise.sol#228)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- underlyingToken.safeTransfer(to,balance) (src/exercise/DiscountExercise.sol#256)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- underlyingToken.safeTransfer(to,amount) (src/exercise/DiscountExercise.sol#259)\n\tExternal calls sending eth:\n\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- _pay(recipient,underlyingAmount) (src/exercise/DiscountExercise.sol#228)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\tEvent emitted after the call(s):\n\t- Exercised(from,recipient,underlyingAmount,paymentAmount) (src/exercise/DiscountExercise.sol#230)\n",
+ "markdown": "Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231):\n\tExternal calls:\n\t- [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L213)\n\t- [_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L216)\n\t\t- [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L75)\n\t\t- [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L77)\n\t\t- [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L79)\n\t\t- [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L81)\n\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L94)\n\t\t- [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L97)\n\t- [_pay(recipient,underlyingAmount)](src/exercise/DiscountExercise.sol#L228)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L256)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L259)\n\tExternal calls sending eth:\n\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [_pay(recipient,underlyingAmount)](src/exercise/DiscountExercise.sol#L228)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\tEvent emitted after the call(s):\n\t- [Exercised(from,recipient,underlyingAmount,paymentAmount)](src/exercise/DiscountExercise.sol#L230)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
+ "id": "e13cadbb7879bfd546c8fbbad0a7fe265276aed28f548d1bc238ae613cc8ff47",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive))",
+ "source_mapping": {
+ "start": 8977,
+ "length": 108,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 251
+ ],
+ "starting_column": 9,
+ "ending_column": 117
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value))",
+ "source_mapping": {
+ "start": 1866,
+ "length": 106,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 35
+ ],
+ "starting_column": 9,
+ "ending_column": 115
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "safeApprove",
+ "source_mapping": {
+ "start": 1784,
+ "length": 277,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 34,
+ 35,
+ 36,
+ 37
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeApprove(address,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "TransferHelper.safeApprove(path[0],_params.router,_params.amount)",
+ "source_mapping": {
+ "start": 1708,
+ "length": 67,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 49
+ ],
+ "starting_column": 9,
+ "ending_column": 76
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "tmpAmountOut = ISwapRouter(_params.router).exactInput(params)",
+ "source_mapping": {
+ "start": 2186,
+ "length": 346,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "TransferHelper.safeApprove(path[0],_params.router,0)",
+ "source_mapping": {
+ "start": 2350,
+ "length": 54,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 63
+ ],
+ "starting_column": 17,
+ "ending_column": 71
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "amountOut = ISwapRouter(_params.router).exactInput(params)",
+ "source_mapping": {
+ "start": 2562,
+ "length": 58,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 67
+ ],
+ "starting_column": 13,
+ "ending_column": 71
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pullFromBefore(_from,_amount)",
+ "source_mapping": {
+ "start": 8792,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 249
+ ],
+ "starting_column": 14,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4298,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3868,
+ "length": 717,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20Upgradeable",
+ "source_mapping": {
+ "start": 740,
+ "length": 3847,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)",
+ "source_mapping": {
+ "start": 19490,
+ "length": 85,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 485
+ ],
+ "starting_column": 9,
+ "ending_column": 94
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pullFromBefore",
+ "source_mapping": {
+ "start": 19424,
+ "length": 169,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 484,
+ 485,
+ 486,
+ 487
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pullFromBefore(address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pushFromAndToAfter(_from,_to)",
+ "source_mapping": {
+ "start": 8823,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 249
+ ],
+ "starting_column": 45,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4298,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3868,
+ "length": 717,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20Upgradeable",
+ "source_mapping": {
+ "start": 740,
+ "length": 3847,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)",
+ "source_mapping": {
+ "start": 19793,
+ "length": 66,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 493
+ ],
+ "starting_column": 13,
+ "ending_column": 79
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pushFromAndToAfter",
+ "source_mapping": {
+ "start": 19599,
+ "length": 470,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pushFromAndToAfter(address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)",
+ "source_mapping": {
+ "start": 19990,
+ "length": 62,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 497
+ ],
+ "starting_column": 13,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "pushFromAndToAfter",
+ "source_mapping": {
+ "start": 19599,
+ "length": 470,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "pushFromAndToAfter(address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pullFromBefore(_from,_amount)",
+ "source_mapping": {
+ "start": 8792,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 249
+ ],
+ "starting_column": 14,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "pushFromAndToAfter(_from,_to)",
+ "source_mapping": {
+ "start": 8823,
+ "length": 30,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 249
+ ],
+ "starting_column": 45,
+ "ending_column": 75
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to)",
+ "source_mapping": {
+ "start": 2422,
+ "length": 95,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 64
+ ],
+ "starting_column": 17,
+ "ending_column": 112
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV3",
+ "source_mapping": {
+ "start": 1138,
+ "length": 1499,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive))",
+ "source_mapping": {
+ "start": 8977,
+ "length": 108,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 251
+ ],
+ "starting_column": 9,
+ "ending_column": 117
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool) (lib/vault-v2/src/ReaperSwapper.sol#241-252):\n\tExternal calls:\n\t- _swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)) (lib/vault-v2/src/ReaperSwapper.sol#251)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value)) (lib/vault-v2/src/libraries/TransferHelper.sol#35)\n\t\t- TransferHelper.safeApprove(path[0],_params.router,_params.amount) (lib/vault-v2/src/mixins/UniV3Mixin.sol#49)\n\t\t- tmpAmountOut = ISwapRouter(_params.router).exactInput(params) (lib/vault-v2/src/mixins/UniV3Mixin.sol#60-65)\n\t\t- TransferHelper.safeApprove(path[0],_params.router,0) (lib/vault-v2/src/mixins/UniV3Mixin.sol#63)\n\t\t- amountOut = ISwapRouter(_params.router).exactInput(params) (lib/vault-v2/src/mixins/UniV3Mixin.sol#67)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#249)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount) (lib/vault-v2/src/ReaperSwapper.sol#485)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#249)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal) (lib/vault-v2/src/ReaperSwapper.sol#493)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t\t- IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal) (lib/vault-v2/src/ReaperSwapper.sol#497)\n\tExternal calls sending eth:\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#249)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#249)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to) (lib/vault-v2/src/mixins/UniV3Mixin.sol#64)\n\t\t- _swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)) (lib/vault-v2/src/ReaperSwapper.sol#251)\n",
+ "markdown": "Reentrancy in [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)](lib/vault-v2/src/ReaperSwapper.sol#L241-L252):\n\tExternal calls:\n\t- [_swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive))](lib/vault-v2/src/ReaperSwapper.sol#L251)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value))](lib/vault-v2/src/libraries/TransferHelper.sol#L35)\n\t\t- [TransferHelper.safeApprove(path[0],_params.router,_params.amount)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L49)\n\t\t- [tmpAmountOut = ISwapRouter(_params.router).exactInput(params)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L60-L65)\n\t\t- [TransferHelper.safeApprove(path[0],_params.router,0)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L63)\n\t\t- [amountOut = ISwapRouter(_params.router).exactInput(params)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L67)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L249)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)](lib/vault-v2/src/ReaperSwapper.sol#L485)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L249)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)](lib/vault-v2/src/ReaperSwapper.sol#L493)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t\t- [IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)](lib/vault-v2/src/ReaperSwapper.sol#L497)\n\tExternal calls sending eth:\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L249)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L249)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L64)\n\t\t- [_swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive))](lib/vault-v2/src/ReaperSwapper.sol#L251)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L241-L252",
+ "id": "e7ec4df5ce298c28fd7e1b953f526ffa840951ed878c7159f2eb300e06952fab",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "underlyingToken.approve(swapProps.swapper,feeAmount)",
+ "source_mapping": {
+ "start": 8058,
+ "length": 53,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 213
+ ],
+ "starting_column": 13,
+ "ending_column": 66
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)",
+ "source_mapping": {
+ "start": 8277,
+ "length": 138,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 216
+ ],
+ "starting_column": 13,
+ "ending_column": 151
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2488,
+ "length": 80,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 75
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2631,
+ "length": 78,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 77
+ ],
+ "starting_column": 13,
+ "ending_column": 91
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2778,
+ "length": 79,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 79
+ ],
+ "starting_column": 13,
+ "ending_column": 92
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
+ "source_mapping": {
+ "start": 2922,
+ "length": 80,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 81
+ ],
+ "starting_column": 13,
+ "ending_column": 93
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_generalSwap",
+ "source_mapping": {
+ "start": 2091,
+ "length": 1014,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
+ "source_mapping": {
+ "start": 8593,
+ "length": 67,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 220
+ ],
+ "starting_column": 13,
+ "ending_column": 80
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls"
+ }
+ },
+ {
+ "type": "node",
+ "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
+ "source_mapping": {
+ "start": 4166,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 110
+ ],
+ "starting_column": 9,
+ "ending_column": 104
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_callOptionalReturn",
+ "source_mapping": {
+ "start": 3747,
+ "length": 706,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SafeERC20",
+ "source_mapping": {
+ "start": 707,
+ "length": 3748,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_callOptionalReturn(IERC20,bytes)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransfer(feeRecipients[i],feeAmount)",
+ "source_mapping": {
+ "start": 4121,
+ "length": 47,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 94
+ ],
+ "starting_column": 13,
+ "ending_column": 60
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)",
+ "source_mapping": {
+ "start": 4224,
+ "length": 70,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 97
+ ],
+ "starting_column": 9,
+ "ending_column": 79
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
+ "source_mapping": {
+ "start": 8593,
+ "length": 67,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 220
+ ],
+ "starting_column": 13,
+ "ending_column": 80
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "external_calls_sending_eth"
+ }
+ },
+ {
+ "type": "node",
+ "name": "DistributeFees(feeRecipients,feeBPS,totalAmount)",
+ "source_mapping": {
+ "start": 4304,
+ "length": 55,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 98
+ ],
+ "starting_column": 9,
+ "ending_column": 64
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "distributeFees",
+ "source_mapping": {
+ "start": 3762,
+ "length": 604,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "distributeFees(uint256,IERC20)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ },
+ {
+ "type": "node",
+ "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
+ "source_mapping": {
+ "start": 8593,
+ "length": 67,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 220
+ ],
+ "starting_column": 13,
+ "ending_column": 80
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ },
+ "additional_fields": {
+ "underlying_type": "event"
+ }
+ }
+ ],
+ "description": "Reentrancy in DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231):\n\tExternal calls:\n\t- underlyingToken.approve(swapProps.swapper,feeAmount) (src/exercise/DiscountExercise.sol#213)\n\t- _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress) (src/exercise/DiscountExercise.sol#216)\n\t\t- _swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#75)\n\t\t- _swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#77)\n\t\t- _swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#79)\n\t\t- _swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#81)\n\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- token.safeTransfer(feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#94)\n\t\t- token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#97)\n\tExternal calls sending eth:\n\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\tEvent emitted after the call(s):\n\t- DistributeFees(feeRecipients,feeBPS,totalAmount) (src/exercise/BaseExercise.sol#98)\n\t\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n",
+ "markdown": "Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231):\n\tExternal calls:\n\t- [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L213)\n\t- [_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L216)\n\t\t- [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L75)\n\t\t- [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L77)\n\t\t- [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L79)\n\t\t- [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L81)\n\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L94)\n\t\t- [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L97)\n\tExternal calls sending eth:\n\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\tEvent emitted after the call(s):\n\t- [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L98)\n\t\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
+ "id": "fac3c8628962c8c145b9cc713e68a80a082c54c497a1d117e7426d73343a5856",
+ "check": "reentrancy-events",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "permit",
+ "source_mapping": {
+ "start": 3838,
+ "length": 1483,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC20",
+ "source_mapping": {
+ "start": 474,
+ "length": 6337,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "require(bool,string)(deadline >= block.timestamp,PERMIT_DEADLINE_EXPIRED)",
+ "source_mapping": {
+ "start": 4037,
+ "length": 63,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 125
+ ],
+ "starting_column": 9,
+ "ending_column": 72
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "permit",
+ "source_mapping": {
+ "start": 3838,
+ "length": 1483,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC20",
+ "source_mapping": {
+ "start": 474,
+ "length": 6337,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ERC20.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (lib/solmate/src/tokens/ERC20.sol#116-160) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(deadline >= block.timestamp,PERMIT_DEADLINE_EXPIRED) (lib/solmate/src/tokens/ERC20.sol#125)\n",
+ "markdown": "[ERC20.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)](lib/solmate/src/tokens/ERC20.sol#L116-L160) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(deadline >= block.timestamp,PERMIT_DEADLINE_EXPIRED)](lib/solmate/src/tokens/ERC20.sol#L125)\n",
+ "first_markdown_element": "lib/solmate/src/tokens/ERC20.sol#L116-L160",
+ "id": "0fb9231dc121cc76860bb0687bd6cde7aeea76e6335fdfad5753810640c24c9b",
+ "check": "timestamp",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_authorizeUpgrade",
+ "source_mapping": {
+ "start": 7489,
+ "length": 338,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 186,
+ 187,
+ 188,
+ 189,
+ 190
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_authorizeUpgrade(address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)",
+ "source_mapping": {
+ "start": 7583,
+ "length": 116,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 187
+ ],
+ "starting_column": 9,
+ "ending_column": 125
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_authorizeUpgrade",
+ "source_mapping": {
+ "start": 7489,
+ "length": 338,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 186,
+ 187,
+ 188,
+ 189,
+ 190
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_authorizeUpgrade(address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "OptionsToken._authorizeUpgrade(address) (src/OptionsToken.sol#186-190) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing) (src/OptionsToken.sol#187)\n",
+ "markdown": "[OptionsToken._authorizeUpgrade(address)](src/OptionsToken.sol#L186-L190) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)](src/OptionsToken.sol#L187)\n",
+ "first_markdown_element": "src/OptionsToken.sol#L186-L190",
+ "id": "47d6ef328e4bec93ff731c772653d7d7d1461f9a46b96c65802f9b0b2081a72b",
+ "check": "timestamp",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_chainlinkIsFrozen",
+ "source_mapping": {
+ "start": 17196,
+ "length": 258,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 431,
+ 432,
+ 433,
+ 434
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_chainlinkIsFrozen(ReaperSwapper.ChainlinkResponse,address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "block.timestamp - _response.timestamp > aggregatorTimeout",
+ "source_mapping": {
+ "start": 17383,
+ "length": 64,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 433
+ ],
+ "starting_column": 9,
+ "ending_column": 73
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_chainlinkIsFrozen",
+ "source_mapping": {
+ "start": 17196,
+ "length": 258,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 431,
+ 432,
+ 433,
+ 434
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_chainlinkIsFrozen(ReaperSwapper.ChainlinkResponse,address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper._chainlinkIsFrozen(ReaperSwapper.ChainlinkResponse,address) (lib/vault-v2/src/ReaperSwapper.sol#431-434) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp - _response.timestamp > aggregatorTimeout (lib/vault-v2/src/ReaperSwapper.sol#433)\n",
+ "markdown": "[ReaperSwapper._chainlinkIsFrozen(ReaperSwapper.ChainlinkResponse,address)](lib/vault-v2/src/ReaperSwapper.sol#L431-L434) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp - _response.timestamp > aggregatorTimeout](lib/vault-v2/src/ReaperSwapper.sol#L433)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L431-L434",
+ "id": "5b1d0ab9c3a7bcae71f7bd3a11a0caa71fd77c85af715f593d1fc00cf04614d3",
+ "check": "timestamp",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_redeem",
+ "source_mapping": {
+ "start": 9155,
+ "length": 752,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "block.timestamp > params.deadline",
+ "source_mapping": {
+ "start": 9377,
+ "length": 33,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 239
+ ],
+ "starting_column": 13,
+ "ending_column": 46
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_redeem",
+ "source_mapping": {
+ "start": 9155,
+ "length": 752,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#234-251) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > params.deadline (src/exercise/DiscountExercise.sol#239)\n",
+ "markdown": "[DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L234-L251) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > params.deadline](src/exercise/DiscountExercise.sol#L239)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L234-L251",
+ "id": "61a1c13c0eec30cef4d45e71eb68b2242a5ed6a3ec92629dbb2b00a5c05b5305",
+ "check": "timestamp",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "block.timestamp > params.deadline",
+ "source_mapping": {
+ "start": 7049,
+ "length": 33,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 197
+ ],
+ "starting_column": 13,
+ "ending_column": 46
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_zap",
+ "source_mapping": {
+ "start": 6830,
+ "length": 2292,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > params.deadline (src/exercise/DiscountExercise.sol#197)\n",
+ "markdown": "[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > params.deadline](src/exercise/DiscountExercise.sol#L197)\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
+ "id": "668585016ac0bae752c2577765c1c163cfc3144c0656d1fb189859db4c2d78b8",
+ "check": "timestamp",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getChainlinkPriceTargetDigits",
+ "source_mapping": {
+ "start": 12574,
+ "length": 693,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getChainlinkPriceTargetDigits(address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "require(bool,string)(! _chainlinkIsBroken(chainlinkResponse,prevChainlinkResponse) && ! _chainlinkIsFrozen(chainlinkResponse,_token),ReaperSwapper: Chainlink must be working and current)",
+ "source_mapping": {
+ "start": 12925,
+ "length": 226,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 337,
+ 338,
+ 339,
+ 340,
+ 341
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getChainlinkPriceTargetDigits",
+ "source_mapping": {
+ "start": 12574,
+ "length": 693,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getChainlinkPriceTargetDigits(address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper.getChainlinkPriceTargetDigits(address) (lib/vault-v2/src/ReaperSwapper.sol#333-343) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(! _chainlinkIsBroken(chainlinkResponse,prevChainlinkResponse) && ! _chainlinkIsFrozen(chainlinkResponse,_token),ReaperSwapper: Chainlink must be working and current) (lib/vault-v2/src/ReaperSwapper.sol#337-341)\n",
+ "markdown": "[ReaperSwapper.getChainlinkPriceTargetDigits(address)](lib/vault-v2/src/ReaperSwapper.sol#L333-L343) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(! _chainlinkIsBroken(chainlinkResponse,prevChainlinkResponse) && ! _chainlinkIsFrozen(chainlinkResponse,_token),ReaperSwapper: Chainlink must be working and current)](lib/vault-v2/src/ReaperSwapper.sol#L337-L341)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L333-L343",
+ "id": "8876dcb1ce9974595b01d633cfe62552129b63ca689be1b0815a3c19c88b3095",
+ "check": "timestamp",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_badChainlinkResponse",
+ "source_mapping": {
+ "start": 16626,
+ "length": 564,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_badChainlinkResponse(ReaperSwapper.ChainlinkResponse)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_response.timestamp == 0 || _response.timestamp > block.timestamp",
+ "source_mapping": {
+ "start": 16994,
+ "length": 65,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 424
+ ],
+ "starting_column": 13,
+ "ending_column": 78
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_badChainlinkResponse",
+ "source_mapping": {
+ "start": 16626,
+ "length": 564,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_badChainlinkResponse(ReaperSwapper.ChainlinkResponse)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper._badChainlinkResponse(ReaperSwapper.ChainlinkResponse) (lib/vault-v2/src/ReaperSwapper.sol#418-429) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _response.timestamp == 0 || _response.timestamp > block.timestamp (lib/vault-v2/src/ReaperSwapper.sol#424)\n",
+ "markdown": "[ReaperSwapper._badChainlinkResponse(ReaperSwapper.ChainlinkResponse)](lib/vault-v2/src/ReaperSwapper.sol#L418-L429) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_response.timestamp == 0 || _response.timestamp > block.timestamp](lib/vault-v2/src/ReaperSwapper.sol#L424)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L418-L429",
+ "id": "c9769fb3b49a0cb62289925e91879f5e539b1d1b11aa4df992552532f0fc1edb",
+ "check": "timestamp",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_authorizeUpgrade",
+ "source_mapping": {
+ "start": 19135,
+ "length": 283,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_authorizeUpgrade(address)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)",
+ "source_mapping": {
+ "start": 19241,
+ "length": 138,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 478,
+ 479,
+ 480
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_authorizeUpgrade",
+ "source_mapping": {
+ "start": 19135,
+ "length": 283,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_authorizeUpgrade(address)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "ReaperSwapper._authorizeUpgrade(address) (lib/vault-v2/src/ReaperSwapper.sol#476-482) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing) (lib/vault-v2/src/ReaperSwapper.sol#478-480)\n",
+ "markdown": "[ReaperSwapper._authorizeUpgrade(address)](lib/vault-v2/src/ReaperSwapper.sol#L476-L482) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)](lib/vault-v2/src/ReaperSwapper.sol#L478-L480)\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L476-L482",
+ "id": "f0962c61819abf294fef0372224298be1e0fde776b4031d7996ce34948836d89",
+ "check": "timestamp",
+ "impact": "Low",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "unsafeDiv",
+ "source_mapping": {
+ "start": 9436,
+ "length": 285,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "unsafeDiv(uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 9564,
+ "length": 151,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "unsafeDiv",
+ "source_mapping": {
+ "start": 9436,
+ "length": 285,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "unsafeDiv(uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.unsafeDiv(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#238-245) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#240-244)\n",
+ "markdown": "[FixedPointMathLib.unsafeDiv(uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L238-L245) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L240-L244)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L238-L245",
+ "id": "0beed87682b0d9d1b5d62d5e0b9a3ea42569e26d73cc841baa517c84883f1df4",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 5000,
+ "length": 164,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 77,
+ 78,
+ 79,
+ 80,
+ 81
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 5177,
+ "length": 148,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 82,
+ 83,
+ 84,
+ 85,
+ 86
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 5338,
+ "length": 140,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 87,
+ 88,
+ 89,
+ 90,
+ 91
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 5491,
+ "length": 136,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 92,
+ 93,
+ 94,
+ 95,
+ 96
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 5640,
+ "length": 134,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 5787,
+ "length": 133,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 102,
+ 103,
+ 104,
+ 105,
+ 106
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 5933,
+ "length": 133,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 107,
+ 108,
+ 109,
+ 110,
+ 111
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 6079,
+ "length": 94,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 112,
+ 113,
+ 114,
+ 115
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 6340,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 6533,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 6726,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 6919,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 7112,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 7305,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 7498,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 7691,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 7884,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 8077,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 8270,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 8463,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 8656,
+ "length": 180,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 8849,
+ "length": 149,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 200,
+ 201,
+ 202,
+ 203,
+ 204
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getTickAtSqrtRatio",
+ "source_mapping": {
+ "start": 4563,
+ "length": 4852,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getTickAtSqrtRatio(uint160)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getTickAtSqrtRatio(uint160) (lib/v3-core/contracts/libraries/TickMath.sol#68-213) uses assembly\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#77-81)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#82-86)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#87-91)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#92-96)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#97-101)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#102-106)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#107-111)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#112-115)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#122-127)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#128-133)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#134-139)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#140-145)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#146-151)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#152-157)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#158-163)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#164-169)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#170-175)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#176-181)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#182-187)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#188-193)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#194-199)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#200-204)\n",
+ "markdown": "[TickMath.getTickAtSqrtRatio(uint160)](lib/v3-core/contracts/libraries/TickMath.sol#L68-L213) uses assembly\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L77-L81)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L82-L86)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L87-L91)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L92-L96)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L97-L101)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L102-L106)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L107-L111)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L112-L115)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L122-L127)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L128-L133)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L134-L139)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L140-L145)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L146-L151)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L152-L157)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L158-L163)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L164-L169)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L170-L175)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L176-L181)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L182-L187)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L188-L193)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L194-L199)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L200-L204)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L68-L213",
+ "id": "0def4f45d43eaf0b329bef30ef6af6d4f46fe19e1463c7b9ac4d362934eafeb6",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "unsafeMod",
+ "source_mapping": {
+ "start": 9148,
+ "length": 282,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "unsafeMod(uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 9276,
+ "length": 148,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 231,
+ 232,
+ 233,
+ 234,
+ 235
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "unsafeMod",
+ "source_mapping": {
+ "start": 9148,
+ "length": 282,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "unsafeMod(uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.unsafeMod(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#229-236) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#231-235)\n",
+ "markdown": "[FixedPointMathLib.unsafeMod(uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L229-L236) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L231-L235)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L229-L236",
+ "id": "145fa339a2d24346a0d2f9a987ba904fefdb44045676d336d8c1454492437dd3",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_revert",
+ "source_mapping": {
+ "start": 8616,
+ "length": 540,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_revert(bytes,string)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 8947,
+ "length": 142,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 236,
+ 237,
+ 238,
+ 239
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_revert",
+ "source_mapping": {
+ "start": 8616,
+ "length": 540,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_revert(bytes,string)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Address._revert(bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#231-243) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Address.sol#236-239)\n",
+ "markdown": "[Address._revert(bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L231-L243) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/Address.sol#L236-L239)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L231-L243",
+ "id": "202587d026bc154cc0001a634101f20caa34ef114975710d739f5c8c36d92e7c",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "unsafeDivUp",
+ "source_mapping": {
+ "start": 9727,
+ "length": 324,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "unsafeDivUp(uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 9857,
+ "length": 188,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 249,
+ 250,
+ 251,
+ 252,
+ 253
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "unsafeDivUp",
+ "source_mapping": {
+ "start": 9727,
+ "length": 324,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "unsafeDivUp(uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.unsafeDivUp(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#247-254) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#249-253)\n",
+ "markdown": "[FixedPointMathLib.unsafeDivUp(uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L247-L254) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L249-L253)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L247-L254",
+ "id": "293ee1efbea006e81513a50b1f3897ca47465d642f7873e0618752a9e931afdc",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 5858,
+ "length": 3278,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#166-226)\n",
+ "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L166-L226)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
+ "id": "37818b71310ead61c2763f3a5f49d95d276ee9cb81a18a9e165d14c424a65602",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDivUp",
+ "source_mapping": {
+ "start": 2096,
+ "length": 672,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDivUp(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2274,
+ "length": 488,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDivUp",
+ "source_mapping": {
+ "start": 2096,
+ "length": 672,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDivUp(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.mulDivUp(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#53-69) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#59-68)\n",
+ "markdown": "[FixedPointMathLib.mulDivUp(uint256,uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L53-L69) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L59-L68)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L53-L69",
+ "id": "39a7fec07e0fbe8e5782dbb16c4b965b00f8fb1054cd2855b1fe4b9234ea9403",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "values",
+ "source_mapping": {
+ "start": 10262,
+ "length": 300,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "EnumerableSetUpgradeable",
+ "source_mapping": {
+ "start": 1321,
+ "length": 11641,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "values(EnumerableSetUpgradeable.AddressSet)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 10484,
+ "length": 48,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 298,
+ 299,
+ 300
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "values",
+ "source_mapping": {
+ "start": 10262,
+ "length": 300,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "EnumerableSetUpgradeable",
+ "source_mapping": {
+ "start": 1321,
+ "length": 11641,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "values(EnumerableSetUpgradeable.AddressSet)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.AddressSet) (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#293-303) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#298-300)\n",
+ "markdown": "[EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.AddressSet)](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L293-L303) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L298-L300)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L293-L303",
+ "id": "3b8aa13e9f50c73367d43257168b9f1a7a14154c5ff8bd884390007f08e0ae86",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "values",
+ "source_mapping": {
+ "start": 7768,
+ "length": 300,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "EnumerableSetUpgradeable",
+ "source_mapping": {
+ "start": 1321,
+ "length": 11641,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "values(EnumerableSetUpgradeable.Bytes32Set)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 7990,
+ "length": 48,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 224,
+ 225,
+ 226
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "values",
+ "source_mapping": {
+ "start": 7768,
+ "length": 300,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "EnumerableSetUpgradeable",
+ "source_mapping": {
+ "start": 1321,
+ "length": 11641,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "values(EnumerableSetUpgradeable.Bytes32Set)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.Bytes32Set) (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#219-229) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#224-226)\n",
+ "markdown": "[EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.Bytes32Set)](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L219-L229) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L224-L226)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L219-L229",
+ "id": "56194aad9e39935cc05324a8414a026d136558b2fa7f7ab0735fd12cc739a479",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_sendLogPayload",
+ "source_mapping": {
+ "start": 181,
+ "length": 376,
+ "filename_relative": "lib/forge-std/src/console.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
+ "filename_short": "lib/forge-std/src/console.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "console",
+ "source_mapping": {
+ "start": 66,
+ "length": 66622,
+ "filename_relative": "lib/forge-std/src/console.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
+ "filename_short": "lib/forge-std/src/console.sol",
+ "is_dependency": true,
+ "lines": [
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500,
+ 501,
+ 502,
+ 503,
+ 504,
+ 505,
+ 506,
+ 507,
+ 508,
+ 509,
+ 510,
+ 511,
+ 512,
+ 513,
+ 514,
+ 515,
+ 516,
+ 517,
+ 518,
+ 519,
+ 520,
+ 521,
+ 522,
+ 523,
+ 524,
+ 525,
+ 526,
+ 527,
+ 528,
+ 529,
+ 530,
+ 531,
+ 532,
+ 533,
+ 534,
+ 535,
+ 536,
+ 537,
+ 538,
+ 539,
+ 540,
+ 541,
+ 542,
+ 543,
+ 544,
+ 545,
+ 546,
+ 547,
+ 548,
+ 549,
+ 550,
+ 551,
+ 552,
+ 553,
+ 554,
+ 555,
+ 556,
+ 557,
+ 558,
+ 559,
+ 560,
+ 561,
+ 562,
+ 563,
+ 564,
+ 565,
+ 566,
+ 567,
+ 568,
+ 569,
+ 570,
+ 571,
+ 572,
+ 573,
+ 574,
+ 575,
+ 576,
+ 577,
+ 578,
+ 579,
+ 580,
+ 581,
+ 582,
+ 583,
+ 584,
+ 585,
+ 586,
+ 587,
+ 588,
+ 589,
+ 590,
+ 591,
+ 592,
+ 593,
+ 594,
+ 595,
+ 596,
+ 597,
+ 598,
+ 599,
+ 600,
+ 601,
+ 602,
+ 603,
+ 604,
+ 605,
+ 606,
+ 607,
+ 608,
+ 609,
+ 610,
+ 611,
+ 612,
+ 613,
+ 614,
+ 615,
+ 616,
+ 617,
+ 618,
+ 619,
+ 620,
+ 621,
+ 622,
+ 623,
+ 624,
+ 625,
+ 626,
+ 627,
+ 628,
+ 629,
+ 630,
+ 631,
+ 632,
+ 633,
+ 634,
+ 635,
+ 636,
+ 637,
+ 638,
+ 639,
+ 640,
+ 641,
+ 642,
+ 643,
+ 644,
+ 645,
+ 646,
+ 647,
+ 648,
+ 649,
+ 650,
+ 651,
+ 652,
+ 653,
+ 654,
+ 655,
+ 656,
+ 657,
+ 658,
+ 659,
+ 660,
+ 661,
+ 662,
+ 663,
+ 664,
+ 665,
+ 666,
+ 667,
+ 668,
+ 669,
+ 670,
+ 671,
+ 672,
+ 673,
+ 674,
+ 675,
+ 676,
+ 677,
+ 678,
+ 679,
+ 680,
+ 681,
+ 682,
+ 683,
+ 684,
+ 685,
+ 686,
+ 687,
+ 688,
+ 689,
+ 690,
+ 691,
+ 692,
+ 693,
+ 694,
+ 695,
+ 696,
+ 697,
+ 698,
+ 699,
+ 700,
+ 701,
+ 702,
+ 703,
+ 704,
+ 705,
+ 706,
+ 707,
+ 708,
+ 709,
+ 710,
+ 711,
+ 712,
+ 713,
+ 714,
+ 715,
+ 716,
+ 717,
+ 718,
+ 719,
+ 720,
+ 721,
+ 722,
+ 723,
+ 724,
+ 725,
+ 726,
+ 727,
+ 728,
+ 729,
+ 730,
+ 731,
+ 732,
+ 733,
+ 734,
+ 735,
+ 736,
+ 737,
+ 738,
+ 739,
+ 740,
+ 741,
+ 742,
+ 743,
+ 744,
+ 745,
+ 746,
+ 747,
+ 748,
+ 749,
+ 750,
+ 751,
+ 752,
+ 753,
+ 754,
+ 755,
+ 756,
+ 757,
+ 758,
+ 759,
+ 760,
+ 761,
+ 762,
+ 763,
+ 764,
+ 765,
+ 766,
+ 767,
+ 768,
+ 769,
+ 770,
+ 771,
+ 772,
+ 773,
+ 774,
+ 775,
+ 776,
+ 777,
+ 778,
+ 779,
+ 780,
+ 781,
+ 782,
+ 783,
+ 784,
+ 785,
+ 786,
+ 787,
+ 788,
+ 789,
+ 790,
+ 791,
+ 792,
+ 793,
+ 794,
+ 795,
+ 796,
+ 797,
+ 798,
+ 799,
+ 800,
+ 801,
+ 802,
+ 803,
+ 804,
+ 805,
+ 806,
+ 807,
+ 808,
+ 809,
+ 810,
+ 811,
+ 812,
+ 813,
+ 814,
+ 815,
+ 816,
+ 817,
+ 818,
+ 819,
+ 820,
+ 821,
+ 822,
+ 823,
+ 824,
+ 825,
+ 826,
+ 827,
+ 828,
+ 829,
+ 830,
+ 831,
+ 832,
+ 833,
+ 834,
+ 835,
+ 836,
+ 837,
+ 838,
+ 839,
+ 840,
+ 841,
+ 842,
+ 843,
+ 844,
+ 845,
+ 846,
+ 847,
+ 848,
+ 849,
+ 850,
+ 851,
+ 852,
+ 853,
+ 854,
+ 855,
+ 856,
+ 857,
+ 858,
+ 859,
+ 860,
+ 861,
+ 862,
+ 863,
+ 864,
+ 865,
+ 866,
+ 867,
+ 868,
+ 869,
+ 870,
+ 871,
+ 872,
+ 873,
+ 874,
+ 875,
+ 876,
+ 877,
+ 878,
+ 879,
+ 880,
+ 881,
+ 882,
+ 883,
+ 884,
+ 885,
+ 886,
+ 887,
+ 888,
+ 889,
+ 890,
+ 891,
+ 892,
+ 893,
+ 894,
+ 895,
+ 896,
+ 897,
+ 898,
+ 899,
+ 900,
+ 901,
+ 902,
+ 903,
+ 904,
+ 905,
+ 906,
+ 907,
+ 908,
+ 909,
+ 910,
+ 911,
+ 912,
+ 913,
+ 914,
+ 915,
+ 916,
+ 917,
+ 918,
+ 919,
+ 920,
+ 921,
+ 922,
+ 923,
+ 924,
+ 925,
+ 926,
+ 927,
+ 928,
+ 929,
+ 930,
+ 931,
+ 932,
+ 933,
+ 934,
+ 935,
+ 936,
+ 937,
+ 938,
+ 939,
+ 940,
+ 941,
+ 942,
+ 943,
+ 944,
+ 945,
+ 946,
+ 947,
+ 948,
+ 949,
+ 950,
+ 951,
+ 952,
+ 953,
+ 954,
+ 955,
+ 956,
+ 957,
+ 958,
+ 959,
+ 960,
+ 961,
+ 962,
+ 963,
+ 964,
+ 965,
+ 966,
+ 967,
+ 968,
+ 969,
+ 970,
+ 971,
+ 972,
+ 973,
+ 974,
+ 975,
+ 976,
+ 977,
+ 978,
+ 979,
+ 980,
+ 981,
+ 982,
+ 983,
+ 984,
+ 985,
+ 986,
+ 987,
+ 988,
+ 989,
+ 990,
+ 991,
+ 992,
+ 993,
+ 994,
+ 995,
+ 996,
+ 997,
+ 998,
+ 999,
+ 1000,
+ 1001,
+ 1002,
+ 1003,
+ 1004,
+ 1005,
+ 1006,
+ 1007,
+ 1008,
+ 1009,
+ 1010,
+ 1011,
+ 1012,
+ 1013,
+ 1014,
+ 1015,
+ 1016,
+ 1017,
+ 1018,
+ 1019,
+ 1020,
+ 1021,
+ 1022,
+ 1023,
+ 1024,
+ 1025,
+ 1026,
+ 1027,
+ 1028,
+ 1029,
+ 1030,
+ 1031,
+ 1032,
+ 1033,
+ 1034,
+ 1035,
+ 1036,
+ 1037,
+ 1038,
+ 1039,
+ 1040,
+ 1041,
+ 1042,
+ 1043,
+ 1044,
+ 1045,
+ 1046,
+ 1047,
+ 1048,
+ 1049,
+ 1050,
+ 1051,
+ 1052,
+ 1053,
+ 1054,
+ 1055,
+ 1056,
+ 1057,
+ 1058,
+ 1059,
+ 1060,
+ 1061,
+ 1062,
+ 1063,
+ 1064,
+ 1065,
+ 1066,
+ 1067,
+ 1068,
+ 1069,
+ 1070,
+ 1071,
+ 1072,
+ 1073,
+ 1074,
+ 1075,
+ 1076,
+ 1077,
+ 1078,
+ 1079,
+ 1080,
+ 1081,
+ 1082,
+ 1083,
+ 1084,
+ 1085,
+ 1086,
+ 1087,
+ 1088,
+ 1089,
+ 1090,
+ 1091,
+ 1092,
+ 1093,
+ 1094,
+ 1095,
+ 1096,
+ 1097,
+ 1098,
+ 1099,
+ 1100,
+ 1101,
+ 1102,
+ 1103,
+ 1104,
+ 1105,
+ 1106,
+ 1107,
+ 1108,
+ 1109,
+ 1110,
+ 1111,
+ 1112,
+ 1113,
+ 1114,
+ 1115,
+ 1116,
+ 1117,
+ 1118,
+ 1119,
+ 1120,
+ 1121,
+ 1122,
+ 1123,
+ 1124,
+ 1125,
+ 1126,
+ 1127,
+ 1128,
+ 1129,
+ 1130,
+ 1131,
+ 1132,
+ 1133,
+ 1134,
+ 1135,
+ 1136,
+ 1137,
+ 1138,
+ 1139,
+ 1140,
+ 1141,
+ 1142,
+ 1143,
+ 1144,
+ 1145,
+ 1146,
+ 1147,
+ 1148,
+ 1149,
+ 1150,
+ 1151,
+ 1152,
+ 1153,
+ 1154,
+ 1155,
+ 1156,
+ 1157,
+ 1158,
+ 1159,
+ 1160,
+ 1161,
+ 1162,
+ 1163,
+ 1164,
+ 1165,
+ 1166,
+ 1167,
+ 1168,
+ 1169,
+ 1170,
+ 1171,
+ 1172,
+ 1173,
+ 1174,
+ 1175,
+ 1176,
+ 1177,
+ 1178,
+ 1179,
+ 1180,
+ 1181,
+ 1182,
+ 1183,
+ 1184,
+ 1185,
+ 1186,
+ 1187,
+ 1188,
+ 1189,
+ 1190,
+ 1191,
+ 1192,
+ 1193,
+ 1194,
+ 1195,
+ 1196,
+ 1197,
+ 1198,
+ 1199,
+ 1200,
+ 1201,
+ 1202,
+ 1203,
+ 1204,
+ 1205,
+ 1206,
+ 1207,
+ 1208,
+ 1209,
+ 1210,
+ 1211,
+ 1212,
+ 1213,
+ 1214,
+ 1215,
+ 1216,
+ 1217,
+ 1218,
+ 1219,
+ 1220,
+ 1221,
+ 1222,
+ 1223,
+ 1224,
+ 1225,
+ 1226,
+ 1227,
+ 1228,
+ 1229,
+ 1230,
+ 1231,
+ 1232,
+ 1233,
+ 1234,
+ 1235,
+ 1236,
+ 1237,
+ 1238,
+ 1239,
+ 1240,
+ 1241,
+ 1242,
+ 1243,
+ 1244,
+ 1245,
+ 1246,
+ 1247,
+ 1248,
+ 1249,
+ 1250,
+ 1251,
+ 1252,
+ 1253,
+ 1254,
+ 1255,
+ 1256,
+ 1257,
+ 1258,
+ 1259,
+ 1260,
+ 1261,
+ 1262,
+ 1263,
+ 1264,
+ 1265,
+ 1266,
+ 1267,
+ 1268,
+ 1269,
+ 1270,
+ 1271,
+ 1272,
+ 1273,
+ 1274,
+ 1275,
+ 1276,
+ 1277,
+ 1278,
+ 1279,
+ 1280,
+ 1281,
+ 1282,
+ 1283,
+ 1284,
+ 1285,
+ 1286,
+ 1287,
+ 1288,
+ 1289,
+ 1290,
+ 1291,
+ 1292,
+ 1293,
+ 1294,
+ 1295,
+ 1296,
+ 1297,
+ 1298,
+ 1299,
+ 1300,
+ 1301,
+ 1302,
+ 1303,
+ 1304,
+ 1305,
+ 1306,
+ 1307,
+ 1308,
+ 1309,
+ 1310,
+ 1311,
+ 1312,
+ 1313,
+ 1314,
+ 1315,
+ 1316,
+ 1317,
+ 1318,
+ 1319,
+ 1320,
+ 1321,
+ 1322,
+ 1323,
+ 1324,
+ 1325,
+ 1326,
+ 1327,
+ 1328,
+ 1329,
+ 1330,
+ 1331,
+ 1332,
+ 1333,
+ 1334,
+ 1335,
+ 1336,
+ 1337,
+ 1338,
+ 1339,
+ 1340,
+ 1341,
+ 1342,
+ 1343,
+ 1344,
+ 1345,
+ 1346,
+ 1347,
+ 1348,
+ 1349,
+ 1350,
+ 1351,
+ 1352,
+ 1353,
+ 1354,
+ 1355,
+ 1356,
+ 1357,
+ 1358,
+ 1359,
+ 1360,
+ 1361,
+ 1362,
+ 1363,
+ 1364,
+ 1365,
+ 1366,
+ 1367,
+ 1368,
+ 1369,
+ 1370,
+ 1371,
+ 1372,
+ 1373,
+ 1374,
+ 1375,
+ 1376,
+ 1377,
+ 1378,
+ 1379,
+ 1380,
+ 1381,
+ 1382,
+ 1383,
+ 1384,
+ 1385,
+ 1386,
+ 1387,
+ 1388,
+ 1389,
+ 1390,
+ 1391,
+ 1392,
+ 1393,
+ 1394,
+ 1395,
+ 1396,
+ 1397,
+ 1398,
+ 1399,
+ 1400,
+ 1401,
+ 1402,
+ 1403,
+ 1404,
+ 1405,
+ 1406,
+ 1407,
+ 1408,
+ 1409,
+ 1410,
+ 1411,
+ 1412,
+ 1413,
+ 1414,
+ 1415,
+ 1416,
+ 1417,
+ 1418,
+ 1419,
+ 1420,
+ 1421,
+ 1422,
+ 1423,
+ 1424,
+ 1425,
+ 1426,
+ 1427,
+ 1428,
+ 1429,
+ 1430,
+ 1431,
+ 1432,
+ 1433,
+ 1434,
+ 1435,
+ 1436,
+ 1437,
+ 1438,
+ 1439,
+ 1440,
+ 1441,
+ 1442,
+ 1443,
+ 1444,
+ 1445,
+ 1446,
+ 1447,
+ 1448,
+ 1449,
+ 1450,
+ 1451,
+ 1452,
+ 1453,
+ 1454,
+ 1455,
+ 1456,
+ 1457,
+ 1458,
+ 1459,
+ 1460,
+ 1461,
+ 1462,
+ 1463,
+ 1464,
+ 1465,
+ 1466,
+ 1467,
+ 1468,
+ 1469,
+ 1470,
+ 1471,
+ 1472,
+ 1473,
+ 1474,
+ 1475,
+ 1476,
+ 1477,
+ 1478,
+ 1479,
+ 1480,
+ 1481,
+ 1482,
+ 1483,
+ 1484,
+ 1485,
+ 1486,
+ 1487,
+ 1488,
+ 1489,
+ 1490,
+ 1491,
+ 1492,
+ 1493,
+ 1494,
+ 1495,
+ 1496,
+ 1497,
+ 1498,
+ 1499,
+ 1500,
+ 1501,
+ 1502,
+ 1503,
+ 1504,
+ 1505,
+ 1506,
+ 1507,
+ 1508,
+ 1509,
+ 1510,
+ 1511,
+ 1512,
+ 1513,
+ 1514,
+ 1515,
+ 1516,
+ 1517,
+ 1518,
+ 1519,
+ 1520,
+ 1521,
+ 1522,
+ 1523,
+ 1524,
+ 1525,
+ 1526,
+ 1527,
+ 1528,
+ 1529,
+ 1530,
+ 1531,
+ 1532,
+ 1533,
+ 1534
+ ],
+ "starting_column": 1,
+ "ending_column": 0
+ }
+ },
+ "signature": "_sendLogPayload(bytes)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 392,
+ "length": 159,
+ "filename_relative": "lib/forge-std/src/console.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
+ "filename_short": "lib/forge-std/src/console.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_sendLogPayload",
+ "source_mapping": {
+ "start": 181,
+ "length": 376,
+ "filename_relative": "lib/forge-std/src/console.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
+ "filename_short": "lib/forge-std/src/console.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "console",
+ "source_mapping": {
+ "start": 66,
+ "length": 66622,
+ "filename_relative": "lib/forge-std/src/console.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
+ "filename_short": "lib/forge-std/src/console.sol",
+ "is_dependency": true,
+ "lines": [
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500,
+ 501,
+ 502,
+ 503,
+ 504,
+ 505,
+ 506,
+ 507,
+ 508,
+ 509,
+ 510,
+ 511,
+ 512,
+ 513,
+ 514,
+ 515,
+ 516,
+ 517,
+ 518,
+ 519,
+ 520,
+ 521,
+ 522,
+ 523,
+ 524,
+ 525,
+ 526,
+ 527,
+ 528,
+ 529,
+ 530,
+ 531,
+ 532,
+ 533,
+ 534,
+ 535,
+ 536,
+ 537,
+ 538,
+ 539,
+ 540,
+ 541,
+ 542,
+ 543,
+ 544,
+ 545,
+ 546,
+ 547,
+ 548,
+ 549,
+ 550,
+ 551,
+ 552,
+ 553,
+ 554,
+ 555,
+ 556,
+ 557,
+ 558,
+ 559,
+ 560,
+ 561,
+ 562,
+ 563,
+ 564,
+ 565,
+ 566,
+ 567,
+ 568,
+ 569,
+ 570,
+ 571,
+ 572,
+ 573,
+ 574,
+ 575,
+ 576,
+ 577,
+ 578,
+ 579,
+ 580,
+ 581,
+ 582,
+ 583,
+ 584,
+ 585,
+ 586,
+ 587,
+ 588,
+ 589,
+ 590,
+ 591,
+ 592,
+ 593,
+ 594,
+ 595,
+ 596,
+ 597,
+ 598,
+ 599,
+ 600,
+ 601,
+ 602,
+ 603,
+ 604,
+ 605,
+ 606,
+ 607,
+ 608,
+ 609,
+ 610,
+ 611,
+ 612,
+ 613,
+ 614,
+ 615,
+ 616,
+ 617,
+ 618,
+ 619,
+ 620,
+ 621,
+ 622,
+ 623,
+ 624,
+ 625,
+ 626,
+ 627,
+ 628,
+ 629,
+ 630,
+ 631,
+ 632,
+ 633,
+ 634,
+ 635,
+ 636,
+ 637,
+ 638,
+ 639,
+ 640,
+ 641,
+ 642,
+ 643,
+ 644,
+ 645,
+ 646,
+ 647,
+ 648,
+ 649,
+ 650,
+ 651,
+ 652,
+ 653,
+ 654,
+ 655,
+ 656,
+ 657,
+ 658,
+ 659,
+ 660,
+ 661,
+ 662,
+ 663,
+ 664,
+ 665,
+ 666,
+ 667,
+ 668,
+ 669,
+ 670,
+ 671,
+ 672,
+ 673,
+ 674,
+ 675,
+ 676,
+ 677,
+ 678,
+ 679,
+ 680,
+ 681,
+ 682,
+ 683,
+ 684,
+ 685,
+ 686,
+ 687,
+ 688,
+ 689,
+ 690,
+ 691,
+ 692,
+ 693,
+ 694,
+ 695,
+ 696,
+ 697,
+ 698,
+ 699,
+ 700,
+ 701,
+ 702,
+ 703,
+ 704,
+ 705,
+ 706,
+ 707,
+ 708,
+ 709,
+ 710,
+ 711,
+ 712,
+ 713,
+ 714,
+ 715,
+ 716,
+ 717,
+ 718,
+ 719,
+ 720,
+ 721,
+ 722,
+ 723,
+ 724,
+ 725,
+ 726,
+ 727,
+ 728,
+ 729,
+ 730,
+ 731,
+ 732,
+ 733,
+ 734,
+ 735,
+ 736,
+ 737,
+ 738,
+ 739,
+ 740,
+ 741,
+ 742,
+ 743,
+ 744,
+ 745,
+ 746,
+ 747,
+ 748,
+ 749,
+ 750,
+ 751,
+ 752,
+ 753,
+ 754,
+ 755,
+ 756,
+ 757,
+ 758,
+ 759,
+ 760,
+ 761,
+ 762,
+ 763,
+ 764,
+ 765,
+ 766,
+ 767,
+ 768,
+ 769,
+ 770,
+ 771,
+ 772,
+ 773,
+ 774,
+ 775,
+ 776,
+ 777,
+ 778,
+ 779,
+ 780,
+ 781,
+ 782,
+ 783,
+ 784,
+ 785,
+ 786,
+ 787,
+ 788,
+ 789,
+ 790,
+ 791,
+ 792,
+ 793,
+ 794,
+ 795,
+ 796,
+ 797,
+ 798,
+ 799,
+ 800,
+ 801,
+ 802,
+ 803,
+ 804,
+ 805,
+ 806,
+ 807,
+ 808,
+ 809,
+ 810,
+ 811,
+ 812,
+ 813,
+ 814,
+ 815,
+ 816,
+ 817,
+ 818,
+ 819,
+ 820,
+ 821,
+ 822,
+ 823,
+ 824,
+ 825,
+ 826,
+ 827,
+ 828,
+ 829,
+ 830,
+ 831,
+ 832,
+ 833,
+ 834,
+ 835,
+ 836,
+ 837,
+ 838,
+ 839,
+ 840,
+ 841,
+ 842,
+ 843,
+ 844,
+ 845,
+ 846,
+ 847,
+ 848,
+ 849,
+ 850,
+ 851,
+ 852,
+ 853,
+ 854,
+ 855,
+ 856,
+ 857,
+ 858,
+ 859,
+ 860,
+ 861,
+ 862,
+ 863,
+ 864,
+ 865,
+ 866,
+ 867,
+ 868,
+ 869,
+ 870,
+ 871,
+ 872,
+ 873,
+ 874,
+ 875,
+ 876,
+ 877,
+ 878,
+ 879,
+ 880,
+ 881,
+ 882,
+ 883,
+ 884,
+ 885,
+ 886,
+ 887,
+ 888,
+ 889,
+ 890,
+ 891,
+ 892,
+ 893,
+ 894,
+ 895,
+ 896,
+ 897,
+ 898,
+ 899,
+ 900,
+ 901,
+ 902,
+ 903,
+ 904,
+ 905,
+ 906,
+ 907,
+ 908,
+ 909,
+ 910,
+ 911,
+ 912,
+ 913,
+ 914,
+ 915,
+ 916,
+ 917,
+ 918,
+ 919,
+ 920,
+ 921,
+ 922,
+ 923,
+ 924,
+ 925,
+ 926,
+ 927,
+ 928,
+ 929,
+ 930,
+ 931,
+ 932,
+ 933,
+ 934,
+ 935,
+ 936,
+ 937,
+ 938,
+ 939,
+ 940,
+ 941,
+ 942,
+ 943,
+ 944,
+ 945,
+ 946,
+ 947,
+ 948,
+ 949,
+ 950,
+ 951,
+ 952,
+ 953,
+ 954,
+ 955,
+ 956,
+ 957,
+ 958,
+ 959,
+ 960,
+ 961,
+ 962,
+ 963,
+ 964,
+ 965,
+ 966,
+ 967,
+ 968,
+ 969,
+ 970,
+ 971,
+ 972,
+ 973,
+ 974,
+ 975,
+ 976,
+ 977,
+ 978,
+ 979,
+ 980,
+ 981,
+ 982,
+ 983,
+ 984,
+ 985,
+ 986,
+ 987,
+ 988,
+ 989,
+ 990,
+ 991,
+ 992,
+ 993,
+ 994,
+ 995,
+ 996,
+ 997,
+ 998,
+ 999,
+ 1000,
+ 1001,
+ 1002,
+ 1003,
+ 1004,
+ 1005,
+ 1006,
+ 1007,
+ 1008,
+ 1009,
+ 1010,
+ 1011,
+ 1012,
+ 1013,
+ 1014,
+ 1015,
+ 1016,
+ 1017,
+ 1018,
+ 1019,
+ 1020,
+ 1021,
+ 1022,
+ 1023,
+ 1024,
+ 1025,
+ 1026,
+ 1027,
+ 1028,
+ 1029,
+ 1030,
+ 1031,
+ 1032,
+ 1033,
+ 1034,
+ 1035,
+ 1036,
+ 1037,
+ 1038,
+ 1039,
+ 1040,
+ 1041,
+ 1042,
+ 1043,
+ 1044,
+ 1045,
+ 1046,
+ 1047,
+ 1048,
+ 1049,
+ 1050,
+ 1051,
+ 1052,
+ 1053,
+ 1054,
+ 1055,
+ 1056,
+ 1057,
+ 1058,
+ 1059,
+ 1060,
+ 1061,
+ 1062,
+ 1063,
+ 1064,
+ 1065,
+ 1066,
+ 1067,
+ 1068,
+ 1069,
+ 1070,
+ 1071,
+ 1072,
+ 1073,
+ 1074,
+ 1075,
+ 1076,
+ 1077,
+ 1078,
+ 1079,
+ 1080,
+ 1081,
+ 1082,
+ 1083,
+ 1084,
+ 1085,
+ 1086,
+ 1087,
+ 1088,
+ 1089,
+ 1090,
+ 1091,
+ 1092,
+ 1093,
+ 1094,
+ 1095,
+ 1096,
+ 1097,
+ 1098,
+ 1099,
+ 1100,
+ 1101,
+ 1102,
+ 1103,
+ 1104,
+ 1105,
+ 1106,
+ 1107,
+ 1108,
+ 1109,
+ 1110,
+ 1111,
+ 1112,
+ 1113,
+ 1114,
+ 1115,
+ 1116,
+ 1117,
+ 1118,
+ 1119,
+ 1120,
+ 1121,
+ 1122,
+ 1123,
+ 1124,
+ 1125,
+ 1126,
+ 1127,
+ 1128,
+ 1129,
+ 1130,
+ 1131,
+ 1132,
+ 1133,
+ 1134,
+ 1135,
+ 1136,
+ 1137,
+ 1138,
+ 1139,
+ 1140,
+ 1141,
+ 1142,
+ 1143,
+ 1144,
+ 1145,
+ 1146,
+ 1147,
+ 1148,
+ 1149,
+ 1150,
+ 1151,
+ 1152,
+ 1153,
+ 1154,
+ 1155,
+ 1156,
+ 1157,
+ 1158,
+ 1159,
+ 1160,
+ 1161,
+ 1162,
+ 1163,
+ 1164,
+ 1165,
+ 1166,
+ 1167,
+ 1168,
+ 1169,
+ 1170,
+ 1171,
+ 1172,
+ 1173,
+ 1174,
+ 1175,
+ 1176,
+ 1177,
+ 1178,
+ 1179,
+ 1180,
+ 1181,
+ 1182,
+ 1183,
+ 1184,
+ 1185,
+ 1186,
+ 1187,
+ 1188,
+ 1189,
+ 1190,
+ 1191,
+ 1192,
+ 1193,
+ 1194,
+ 1195,
+ 1196,
+ 1197,
+ 1198,
+ 1199,
+ 1200,
+ 1201,
+ 1202,
+ 1203,
+ 1204,
+ 1205,
+ 1206,
+ 1207,
+ 1208,
+ 1209,
+ 1210,
+ 1211,
+ 1212,
+ 1213,
+ 1214,
+ 1215,
+ 1216,
+ 1217,
+ 1218,
+ 1219,
+ 1220,
+ 1221,
+ 1222,
+ 1223,
+ 1224,
+ 1225,
+ 1226,
+ 1227,
+ 1228,
+ 1229,
+ 1230,
+ 1231,
+ 1232,
+ 1233,
+ 1234,
+ 1235,
+ 1236,
+ 1237,
+ 1238,
+ 1239,
+ 1240,
+ 1241,
+ 1242,
+ 1243,
+ 1244,
+ 1245,
+ 1246,
+ 1247,
+ 1248,
+ 1249,
+ 1250,
+ 1251,
+ 1252,
+ 1253,
+ 1254,
+ 1255,
+ 1256,
+ 1257,
+ 1258,
+ 1259,
+ 1260,
+ 1261,
+ 1262,
+ 1263,
+ 1264,
+ 1265,
+ 1266,
+ 1267,
+ 1268,
+ 1269,
+ 1270,
+ 1271,
+ 1272,
+ 1273,
+ 1274,
+ 1275,
+ 1276,
+ 1277,
+ 1278,
+ 1279,
+ 1280,
+ 1281,
+ 1282,
+ 1283,
+ 1284,
+ 1285,
+ 1286,
+ 1287,
+ 1288,
+ 1289,
+ 1290,
+ 1291,
+ 1292,
+ 1293,
+ 1294,
+ 1295,
+ 1296,
+ 1297,
+ 1298,
+ 1299,
+ 1300,
+ 1301,
+ 1302,
+ 1303,
+ 1304,
+ 1305,
+ 1306,
+ 1307,
+ 1308,
+ 1309,
+ 1310,
+ 1311,
+ 1312,
+ 1313,
+ 1314,
+ 1315,
+ 1316,
+ 1317,
+ 1318,
+ 1319,
+ 1320,
+ 1321,
+ 1322,
+ 1323,
+ 1324,
+ 1325,
+ 1326,
+ 1327,
+ 1328,
+ 1329,
+ 1330,
+ 1331,
+ 1332,
+ 1333,
+ 1334,
+ 1335,
+ 1336,
+ 1337,
+ 1338,
+ 1339,
+ 1340,
+ 1341,
+ 1342,
+ 1343,
+ 1344,
+ 1345,
+ 1346,
+ 1347,
+ 1348,
+ 1349,
+ 1350,
+ 1351,
+ 1352,
+ 1353,
+ 1354,
+ 1355,
+ 1356,
+ 1357,
+ 1358,
+ 1359,
+ 1360,
+ 1361,
+ 1362,
+ 1363,
+ 1364,
+ 1365,
+ 1366,
+ 1367,
+ 1368,
+ 1369,
+ 1370,
+ 1371,
+ 1372,
+ 1373,
+ 1374,
+ 1375,
+ 1376,
+ 1377,
+ 1378,
+ 1379,
+ 1380,
+ 1381,
+ 1382,
+ 1383,
+ 1384,
+ 1385,
+ 1386,
+ 1387,
+ 1388,
+ 1389,
+ 1390,
+ 1391,
+ 1392,
+ 1393,
+ 1394,
+ 1395,
+ 1396,
+ 1397,
+ 1398,
+ 1399,
+ 1400,
+ 1401,
+ 1402,
+ 1403,
+ 1404,
+ 1405,
+ 1406,
+ 1407,
+ 1408,
+ 1409,
+ 1410,
+ 1411,
+ 1412,
+ 1413,
+ 1414,
+ 1415,
+ 1416,
+ 1417,
+ 1418,
+ 1419,
+ 1420,
+ 1421,
+ 1422,
+ 1423,
+ 1424,
+ 1425,
+ 1426,
+ 1427,
+ 1428,
+ 1429,
+ 1430,
+ 1431,
+ 1432,
+ 1433,
+ 1434,
+ 1435,
+ 1436,
+ 1437,
+ 1438,
+ 1439,
+ 1440,
+ 1441,
+ 1442,
+ 1443,
+ 1444,
+ 1445,
+ 1446,
+ 1447,
+ 1448,
+ 1449,
+ 1450,
+ 1451,
+ 1452,
+ 1453,
+ 1454,
+ 1455,
+ 1456,
+ 1457,
+ 1458,
+ 1459,
+ 1460,
+ 1461,
+ 1462,
+ 1463,
+ 1464,
+ 1465,
+ 1466,
+ 1467,
+ 1468,
+ 1469,
+ 1470,
+ 1471,
+ 1472,
+ 1473,
+ 1474,
+ 1475,
+ 1476,
+ 1477,
+ 1478,
+ 1479,
+ 1480,
+ 1481,
+ 1482,
+ 1483,
+ 1484,
+ 1485,
+ 1486,
+ 1487,
+ 1488,
+ 1489,
+ 1490,
+ 1491,
+ 1492,
+ 1493,
+ 1494,
+ 1495,
+ 1496,
+ 1497,
+ 1498,
+ 1499,
+ 1500,
+ 1501,
+ 1502,
+ 1503,
+ 1504,
+ 1505,
+ 1506,
+ 1507,
+ 1508,
+ 1509,
+ 1510,
+ 1511,
+ 1512,
+ 1513,
+ 1514,
+ 1515,
+ 1516,
+ 1517,
+ 1518,
+ 1519,
+ 1520,
+ 1521,
+ 1522,
+ 1523,
+ 1524,
+ 1525,
+ 1526,
+ 1527,
+ 1528,
+ 1529,
+ 1530,
+ 1531,
+ 1532,
+ 1533,
+ 1534
+ ],
+ "starting_column": 1,
+ "ending_column": 0
+ }
+ },
+ "signature": "_sendLogPayload(bytes)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "console._sendLogPayload(bytes) (lib/forge-std/src/console.sol#7-15) uses assembly\n\t- INLINE ASM (lib/forge-std/src/console.sol#11-14)\n",
+ "markdown": "[console._sendLogPayload(bytes)](lib/forge-std/src/console.sol#L7-L15) uses assembly\n\t- [INLINE ASM](lib/forge-std/src/console.sol#L11-L14)\n",
+ "first_markdown_element": "lib/forge-std/src/console.sol#L7-L15",
+ "id": "5758c17df66f8816f5064e14ea7f15d5ee32aa62981846c608f5a746b6c72583",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getUint256Slot",
+ "source_mapping": {
+ "start": 2489,
+ "length": 190,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StorageSlotUpgradeable",
+ "source_mapping": {
+ "start": 1279,
+ "length": 1402,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getUint256Slot(bytes32)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2626,
+ "length": 47,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 84,
+ 85,
+ 86
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getUint256Slot",
+ "source_mapping": {
+ "start": 2489,
+ "length": 190,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StorageSlotUpgradeable",
+ "source_mapping": {
+ "start": 1279,
+ "length": 1402,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getUint256Slot(bytes32)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "StorageSlotUpgradeable.getUint256Slot(bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#82-87) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#84-86)\n",
+ "markdown": "[StorageSlotUpgradeable.getUint256Slot(bytes32)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L82-L87) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L84-L86)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L82-L87",
+ "id": "5da981982addb53aa1a484aa5b90b5edf14fff276b7d6100c546d2ff73004118",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "rpow",
+ "source_mapping": {
+ "start": 2774,
+ "length": 2778,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "rpow(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2943,
+ "length": 2603,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "rpow",
+ "source_mapping": {
+ "start": 2774,
+ "length": 2778,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "rpow(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#71-158) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#77-157)\n",
+ "markdown": "[FixedPointMathLib.rpow(uint256,uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L71-L158) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L77-L157)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L71-L158",
+ "id": "689002e3bc5887c37efbbca861ab9ec47f766293178f650ae3d6f514b002c94c",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_revert",
+ "source_mapping": {
+ "start": 7739,
+ "length": 540,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_revert(bytes,string)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 8070,
+ "length": 142,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_revert",
+ "source_mapping": {
+ "start": 7739,
+ "length": 540,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_revert(bytes,string)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "AddressUpgradeable._revert(bytes,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#206-218) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#211-214)\n",
+ "markdown": "[AddressUpgradeable._revert(bytes,string)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L206-L218) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L211-L214)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L206-L218",
+ "id": "739c2c53d803e97b4475b0c59002e269bf280c020785e91d89e6f198833bfda0",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "values",
+ "source_mapping": {
+ "start": 12663,
+ "length": 297,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "EnumerableSetUpgradeable",
+ "source_mapping": {
+ "start": 1321,
+ "length": 11641,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "values(EnumerableSetUpgradeable.UintSet)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 12882,
+ "length": 48,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 372,
+ 373,
+ 374
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "values",
+ "source_mapping": {
+ "start": 12663,
+ "length": 297,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "EnumerableSetUpgradeable",
+ "source_mapping": {
+ "start": 1321,
+ "length": 11641,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "values(EnumerableSetUpgradeable.UintSet)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.UintSet) (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#367-377) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#372-374)\n",
+ "markdown": "[EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.UintSet)](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L367-L377) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L372-L374)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L367-L377",
+ "id": "7d56bbef68d3d28816c6f1db6f457a021f9e797b84e7c3d7dbcc61c9462f0d2f",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDivDown",
+ "source_mapping": {
+ "start": 1564,
+ "length": 526,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDivDown(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 1744,
+ "length": 340,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDivDown",
+ "source_mapping": {
+ "start": 1564,
+ "length": 526,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDivDown(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.mulDivDown(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#36-51) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#42-50)\n",
+ "markdown": "[FixedPointMathLib.mulDivDown(uint256,uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L36-L51) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L42-L50)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L36-L51",
+ "id": "9e144d907a30f66c9e2920440884a22c1725fb31d5d562c7fb53efa1509ea1b0",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "toString",
+ "source_mapping": {
+ "start": 437,
+ "length": 707,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StringsUpgradeable",
+ "source_mapping": {
+ "start": 199,
+ "length": 2098,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "toString(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 732,
+ "length": 76,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "toString",
+ "source_mapping": {
+ "start": 437,
+ "length": 707,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StringsUpgradeable",
+ "source_mapping": {
+ "start": 199,
+ "length": 2098,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "toString(uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 926,
+ "length": 93,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 30,
+ 31,
+ 32
+ ],
+ "starting_column": 17,
+ "ending_column": 18
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "toString",
+ "source_mapping": {
+ "start": 437,
+ "length": 707,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StringsUpgradeable",
+ "source_mapping": {
+ "start": 199,
+ "length": 2098,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "toString(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "StringsUpgradeable.toString(uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#18-38) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#24-26)\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#30-32)\n",
+ "markdown": "[StringsUpgradeable.toString(uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L18-L38) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L24-L26)\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L30-L32)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L18-L38",
+ "id": "a992fcb04beb4b522d466219687aab5caf1862079a86d0a72ff29083031b1b83",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getBooleanSlot",
+ "source_mapping": {
+ "start": 1913,
+ "length": 190,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StorageSlotUpgradeable",
+ "source_mapping": {
+ "start": 1279,
+ "length": 1402,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getBooleanSlot(bytes32)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2050,
+ "length": 47,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 64,
+ 65,
+ 66
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getBooleanSlot",
+ "source_mapping": {
+ "start": 1913,
+ "length": 190,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StorageSlotUpgradeable",
+ "source_mapping": {
+ "start": 1279,
+ "length": 1402,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getBooleanSlot(bytes32)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "StorageSlotUpgradeable.getBooleanSlot(bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#62-67) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#64-66)\n",
+ "markdown": "[StorageSlotUpgradeable.getBooleanSlot(bytes32)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L62-L67) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L64-L66)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L62-L67",
+ "id": "abed8f4ef4fa2e3da0dfadfbc2db35dab5f0cddac1132ccf3de6ff9dfd330e08",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 1369,
+ "length": 166,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 27,
+ 28,
+ 29,
+ 30,
+ 31
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 1687,
+ "length": 82,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 36,
+ 37,
+ 38
+ ],
+ "starting_column": 17,
+ "ending_column": 18
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2291,
+ "length": 79,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 53,
+ 54,
+ 55
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2442,
+ "length": 129,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2846,
+ "length": 78,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 67,
+ 68,
+ 69
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2996,
+ "length": 66,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 72,
+ 73,
+ 74
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 3257,
+ "length": 80,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 78,
+ 79,
+ 80
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 741,
+ "length": 4127,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FullMath",
+ "source_mapping": {
+ "start": 354,
+ "length": 5163,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) uses assembly\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#27-31)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#36-38)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#53-55)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#57-60)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#67-69)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#72-74)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#78-80)\n",
+ "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) uses assembly\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L27-L31)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L36-L38)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L53-L55)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L57-L60)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L67-L69)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L72-L74)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L78-L80)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
+ "id": "cd4781abcd1d41fa749dcf4cc7a4749057c50a313df29ef331b4bb2d83971a0c",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2280,
+ "length": 166,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 66,
+ 67,
+ 68,
+ 69,
+ 70
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 3015,
+ "length": 300,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 3683,
+ "length": 371,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "mulDiv",
+ "source_mapping": {
+ "start": 1678,
+ "length": 3925,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "MathUpgradeable",
+ "source_mapping": {
+ "start": 202,
+ "length": 12313,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "mulDiv(uint256,uint256,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#66-70)\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#86-93)\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#100-109)\n",
+ "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L66-L70)\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L86-L93)\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L100-L109)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
+ "id": "eb7fc1d015df84fd39e386d4f4360b409e4375b3501e52d9825a5f98ce00bbbe",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getBytes32Slot",
+ "source_mapping": {
+ "start": 2201,
+ "length": 190,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StorageSlotUpgradeable",
+ "source_mapping": {
+ "start": 1279,
+ "length": 1402,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getBytes32Slot(bytes32)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 2338,
+ "length": 47,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getBytes32Slot",
+ "source_mapping": {
+ "start": 2201,
+ "length": 190,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StorageSlotUpgradeable",
+ "source_mapping": {
+ "start": 1279,
+ "length": 1402,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getBytes32Slot(bytes32)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "StorageSlotUpgradeable.getBytes32Slot(bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#72-77) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#74-76)\n",
+ "markdown": "[StorageSlotUpgradeable.getBytes32Slot(bytes32)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L72-L77) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L74-L76)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L72-L77",
+ "id": "f1477136301f065a939603e66af2ce9966e69e30be386b8261bade5d7a7d25f1",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getAddressSlot",
+ "source_mapping": {
+ "start": 1625,
+ "length": 190,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StorageSlotUpgradeable",
+ "source_mapping": {
+ "start": 1279,
+ "length": 1402,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getAddressSlot(bytes32)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "",
+ "source_mapping": {
+ "start": 1762,
+ "length": 47,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 54,
+ 55,
+ 56
+ ],
+ "starting_column": 9,
+ "ending_column": 10
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getAddressSlot",
+ "source_mapping": {
+ "start": 1625,
+ "length": 190,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "StorageSlotUpgradeable",
+ "source_mapping": {
+ "start": 1279,
+ "length": 1402,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getAddressSlot(bytes32)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "StorageSlotUpgradeable.getAddressSlot(bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#52-57) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#54-56)\n",
+ "markdown": "[StorageSlotUpgradeable.getAddressSlot(bytes32)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L52-L57) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L54-L56)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L52-L57",
+ "id": "fcaccdf637e880c618f6f15622fb469dee912b1a036bb71ad6b383881b62ae17",
+ "check": "assembly",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_tryCatchActive != false",
+ "source_mapping": {
+ "start": 1850,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 51
+ ],
+ "starting_column": 12,
+ "ending_column": 36
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapVelo",
+ "source_mapping": {
+ "start": 862,
+ "length": 1768,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "VeloSolidMixin",
+ "source_mapping": {
+ "start": 313,
+ "length": 4635,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#24-71) compares to a boolean constant:\n\t-_tryCatchActive != false (lib/vault-v2/src/mixins/VeloSolidMixin.sol#51)\n",
+ "markdown": "[VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L24-L71) compares to a boolean constant:\n\t-[_tryCatchActive != false](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L51)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/VeloSolidMixin.sol#L24-L71",
+ "id": "3468c3b56c70dc328b6ce16a2e884a49779787f33d95ed13986ee13303b673fb",
+ "check": "boolean-equal",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_tryCatchActive != false",
+ "source_mapping": {
+ "start": 1622,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 45
+ ],
+ "starting_column": 13,
+ "ending_column": 37
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapUniV2",
+ "source_mapping": {
+ "start": 748,
+ "length": 1626,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV2Mixin",
+ "source_mapping": {
+ "start": 234,
+ "length": 4634,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "UniV2Mixin._swapUniV2(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/UniV2Mixin.sol#20-60) compares to a boolean constant:\n\t-_tryCatchActive != false (lib/vault-v2/src/mixins/UniV2Mixin.sol#45)\n",
+ "markdown": "[UniV2Mixin._swapUniV2(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L20-L60) compares to a boolean constant:\n\t-[_tryCatchActive != false](lib/vault-v2/src/mixins/UniV2Mixin.sol#L45)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV2Mixin.sol#L20-L60",
+ "id": "4d722cef03d795c4c7527723911fc2803c15560ae0f19f483e776f19951c36e6",
+ "check": "boolean-equal",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "_tryCatchActive != false",
+ "source_mapping": {
+ "start": 2254,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 63
+ ],
+ "starting_column": 13,
+ "ending_column": 37
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_swapBal",
+ "source_mapping": {
+ "start": 895,
+ "length": 1974,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BalMixin",
+ "source_mapping": {
+ "start": 307,
+ "length": 3662,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/BalMixin.sol#25-76) compares to a boolean constant:\n\t-_tryCatchActive != false (lib/vault-v2/src/mixins/BalMixin.sol#63)\n",
+ "markdown": "[BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/BalMixin.sol#L25-L76) compares to a boolean constant:\n\t-[_tryCatchActive != false](lib/vault-v2/src/mixins/BalMixin.sol#L63)\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L25-L76",
+ "id": "7bfc25a8f3bd571f220c04ccf03c188600dbeeb995e1e600bb2cb95af4059ff2",
+ "check": "boolean-equal",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.4.22<0.9.0",
+ "source_mapping": {
+ "start": 32,
+ "length": 32,
+ "filename_relative": "lib/forge-std/src/console.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
+ "filename_short": "lib/forge-std/src/console.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 33
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.4",
+ ".22",
+ "<",
+ "0.9",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 118,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 108,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 104,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 94,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 102,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 107,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 113,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 93,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 115,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 105,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 106,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 110,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 114,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 115,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 86,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 105,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 101,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 99,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 100,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 103,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 205,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 5
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 105,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/security/Pausable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/security/Pausable.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/security/Pausable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 106,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 114,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 115,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 86,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Context.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 32,
+ "length": 23,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 23,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 169,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IAsset.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IAsset.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IAsset.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IAuthorizer.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IAuthorizer.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IAuthorizer.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IBasePool.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBasePool.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IBasePool.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IBeetVault.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBeetVault.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IBeetVault.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISwapErrors.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapErrors.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISwapErrors.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapper.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 36,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IVeloPair.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloPair.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IVeloPair.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 32,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 82,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/ReaperAccessControl.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/ReaperAccessControl.sol",
+ "filename_short": "lib/vault-v2/src/mixins/ReaperAccessControl.sol",
+ "is_dependency": true,
+ "lines": [
+ 5
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 679,
+ "length": 23,
+ "filename_relative": "src/interfaces/IBalancerTwapOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancerTwapOracle.sol",
+ "filename_short": "src/interfaces/IBalancerTwapOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 15
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "src/interfaces/ISwapperSwaps.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/ISwapperSwaps.sol",
+ "filename_short": "src/interfaces/ISwapperSwaps.sol",
+ "is_dependency": false,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.2",
+ "source_mapping": {
+ "start": 116,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".2"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.2",
+ "source_mapping": {
+ "start": 113,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".2"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.1",
+ "source_mapping": {
+ "start": 101,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".1"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.1",
+ "source_mapping": {
+ "start": 101,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".1"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.8.0",
+ "source_mapping": {
+ "start": 42,
+ "length": 24,
+ "filename_relative": "lib/solmate/src/auth/Owned.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
+ "filename_short": "lib/solmate/src/auth/Owned.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.8.0",
+ "source_mapping": {
+ "start": 42,
+ "length": 24,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.8.0",
+ "source_mapping": {
+ "start": 42,
+ "length": 24,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.7.5",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISwapRouter.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapRouter.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISwapRouter.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".5"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.6.2",
+ "source_mapping": {
+ "start": 36,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.6",
+ ".2"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.6.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.6",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/interfaces/IBalancer2TokensPool.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancer2TokensPool.sol",
+ "filename_short": "src/interfaces/IBalancer2TokensPool.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/interfaces/IExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IExercise.sol",
+ "filename_short": "src/interfaces/IExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/interfaces/IOptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IOptionsToken.sol",
+ "filename_short": "src/interfaces/IOptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/oracles/ThenaOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/ThenaOracle.sol",
+ "filename_short": "src/oracles/ThenaOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.7.0<0.9.0",
+ "source_mapping": {
+ "start": 723,
+ "length": 31,
+ "filename_relative": "src/interfaces/IBalancerVault.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancerVault.sol",
+ "filename_short": "src/interfaces/IBalancerVault.sol",
+ "is_dependency": false,
+ "lines": [
+ 17
+ ],
+ "starting_column": 1,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.7.0<0.9.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 31,
+ "filename_relative": "src/interfaces/IERC20Mintable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IERC20Mintable.sol",
+ "filename_short": "src/interfaces/IERC20Mintable.sol",
+ "is_dependency": false,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.7.0<0.9.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 31,
+ "filename_relative": "src/interfaces/IOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IOracle.sol",
+ "filename_short": "src/interfaces/IOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5",
+ "source_mapping": {
+ "start": 0,
+ "length": 22,
+ "filename_relative": "src/interfaces/IThenaPair.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IThenaPair.sol",
+ "filename_short": "src/interfaces/IThenaPair.sol",
+ "is_dependency": false,
+ "lines": [
+ 1
+ ],
+ "starting_column": 1,
+ "ending_column": 23
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5"
+ ]
+ }
+ }
+ ],
+ "description": "12 different versions of Solidity are used:\n\t- Version constraint >=0.4.22<0.9.0 is used by:\n\t\t->=0.4.22<0.9.0 (lib/forge-std/src/console.sol#2)\n\t- Version constraint ^0.8.0 is used by:\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#5)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/security/Pausable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)\n\t\t-^0.8.0 (lib/v3-core/contracts/libraries/FullMath.sol#2)\n\t\t-^0.8.0 (lib/v3-core/contracts/libraries/TickMath.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/ReaperSwapper.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#4)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IAsset.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IAuthorizer.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IBasePool.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IBeetVault.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ISignaturesValidator.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ISwapErrors.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ISwapper.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ISwapperSwaps.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IVeloPair.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IVeloRouter.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/libraries/Babylonian.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/libraries/ReaperMathUtils.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/BalMixin.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/ReaperAccessControl.sol#5)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/UniV2Mixin.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/UniV3Mixin.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/VeloSolidMixin.sol#3)\n\t\t-^0.8.0 (src/helpers/SwapHelper.sol#3)\n\t\t-^0.8.0 (src/interfaces/IBalancerTwapOracle.sol#15)\n\t\t-^0.8.0 (src/interfaces/ISwapperSwaps.sol#3)\n\t- Version constraint ^0.8.2 is used by:\n\t\t-^0.8.2 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#4)\n\t\t-^0.8.2 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n\t- Version constraint ^0.8.1 is used by:\n\t\t-^0.8.1 (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#4)\n\t\t-^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n\t- Version constraint >=0.8.0 is used by:\n\t\t->=0.8.0 (lib/solmate/src/auth/Owned.sol#2)\n\t\t->=0.8.0 (lib/solmate/src/tokens/ERC20.sol#2)\n\t\t->=0.8.0 (lib/solmate/src/utils/FixedPointMathLib.sol#2)\n\t- Version constraint >=0.5.0 is used by:\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#2)\n\t\t->=0.5.0 (lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#2)\n\t\t->=0.5.0 (lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#2)\n\t\t->=0.5.0 (lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#2)\n\t- Version constraint >=0.7.5 is used by:\n\t\t->=0.7.5 (lib/vault-v2/src/interfaces/ISwapRouter.sol#2)\n\t- Version constraint >=0.6.2 is used by:\n\t\t->=0.6.2 (lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#2)\n\t- Version constraint >=0.6.0 is used by:\n\t\t->=0.6.0 (lib/vault-v2/src/libraries/TransferHelper.sol#2)\n\t- Version constraint ^0.8.13 is used by:\n\t\t-^0.8.13 (src/OptionsToken.sol#2)\n\t\t-^0.8.13 (src/exercise/BaseExercise.sol#2)\n\t\t-^0.8.13 (src/exercise/DiscountExercise.sol#2)\n\t\t-^0.8.13 (src/interfaces/IBalancer2TokensPool.sol#2)\n\t\t-^0.8.13 (src/interfaces/IExercise.sol#2)\n\t\t-^0.8.13 (src/interfaces/IOptionsToken.sol#2)\n\t\t-^0.8.13 (src/oracles/BalancerOracle.sol#2)\n\t\t-^0.8.13 (src/oracles/ThenaOracle.sol#2)\n\t\t-^0.8.13 (src/oracles/UniswapV3Oracle.sol#2)\n\t- Version constraint >=0.7.0<0.9.0 is used by:\n\t\t->=0.7.0<0.9.0 (src/interfaces/IBalancerVault.sol#17)\n\t\t->=0.7.0<0.9.0 (src/interfaces/IERC20Mintable.sol#3)\n\t\t->=0.7.0<0.9.0 (src/interfaces/IOracle.sol#3)\n\t- Version constraint >=0.5 is used by:\n\t\t->=0.5 (src/interfaces/IThenaPair.sol#1)\n",
+ "markdown": "12 different versions of Solidity are used:\n\t- Version constraint >=0.4.22<0.9.0 is used by:\n\t\t-[>=0.4.22<0.9.0](lib/forge-std/src/console.sol#L2)\n\t- Version constraint ^0.8.0 is used by:\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)\n\t\t-[^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)\n\t\t-[^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)\n\t\t-[^0.8.0](src/helpers/SwapHelper.sol#L3)\n\t\t-[^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)\n\t\t-[^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)\n\t- Version constraint ^0.8.2 is used by:\n\t\t-[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)\n\t\t-[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n\t- Version constraint ^0.8.1 is used by:\n\t\t-[^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)\n\t\t-[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n\t- Version constraint >=0.8.0 is used by:\n\t\t-[>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)\n\t\t-[>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)\n\t\t-[>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)\n\t- Version constraint >=0.5.0 is used by:\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)\n\t\t-[>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)\n\t\t-[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)\n\t\t-[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)\n\t- Version constraint >=0.7.5 is used by:\n\t\t-[>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)\n\t- Version constraint >=0.6.2 is used by:\n\t\t-[>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)\n\t- Version constraint >=0.6.0 is used by:\n\t\t-[>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)\n\t- Version constraint ^0.8.13 is used by:\n\t\t-[^0.8.13](src/OptionsToken.sol#L2)\n\t\t-[^0.8.13](src/exercise/BaseExercise.sol#L2)\n\t\t-[^0.8.13](src/exercise/DiscountExercise.sol#L2)\n\t\t-[^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)\n\t\t-[^0.8.13](src/interfaces/IExercise.sol#L2)\n\t\t-[^0.8.13](src/interfaces/IOptionsToken.sol#L2)\n\t\t-[^0.8.13](src/oracles/BalancerOracle.sol#L2)\n\t\t-[^0.8.13](src/oracles/ThenaOracle.sol#L2)\n\t\t-[^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)\n\t- Version constraint >=0.7.0<0.9.0 is used by:\n\t\t-[>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)\n\t\t-[>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)\n\t\t-[>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)\n\t- Version constraint >=0.5 is used by:\n\t\t-[>=0.5](src/interfaces/IThenaPair.sol#L1)\n",
+ "first_markdown_element": "lib/forge-std/src/console.sol#L2",
+ "id": "85edfa625830fd6d39749390d8a28c826b7e0471c23044a55a1d99f92b7f5482",
+ "check": "pragma",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) has a high cyclomatic complexity (25).\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) has a high cyclomatic complexity (25).\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "7dc850151568c0ccbadfaf18e5baa7aba58df9a7be7ede854c7801abedfda59a",
+ "check": "cyclomatic-complexity",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": "^0.8.2",
+ "source_mapping": {
+ "start": 116,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".2"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.2",
+ "source_mapping": {
+ "start": 113,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".2"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint ^0.8.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.2 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#4)\n\t- ^0.8.2 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n",
+ "markdown": "Version constraint ^0.8.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)\n\t- [^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4",
+ "id": "23c567b20d0424f0b9fdc3bc9515dded7c47d0f2c92a6223ce773baf018abb20",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.6.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.6",
+ ".0"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint >=0.6.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- MissingEscapingInFormatting\n\t- ArraySliceDynamicallyEncodedBaseType\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow\n\t- YulOptimizerRedundantAssignmentBreakContinue.\nIt is used by:\n\t- >=0.6.0 (lib/vault-v2/src/libraries/TransferHelper.sol#2)\n",
+ "markdown": "Version constraint >=0.6.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- MissingEscapingInFormatting\n\t- ArraySliceDynamicallyEncodedBaseType\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow\n\t- YulOptimizerRedundantAssignmentBreakContinue.\nIt is used by:\n\t- [>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L2",
+ "id": "2ad22408bbd50c54342714ef4d73fdcb7de70fc26f2f719e2d94e74975873eb7",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.5",
+ "source_mapping": {
+ "start": 0,
+ "length": 22,
+ "filename_relative": "src/interfaces/IThenaPair.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IThenaPair.sol",
+ "filename_short": "src/interfaces/IThenaPair.sol",
+ "is_dependency": false,
+ "lines": [
+ 1
+ ],
+ "starting_column": 1,
+ "ending_column": 23
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint >=0.5 is too complex.\nIt is used by:\n\t- >=0.5 (src/interfaces/IThenaPair.sol#1)\n",
+ "markdown": "Version constraint >=0.5 is too complex.\nIt is used by:\n\t- [>=0.5](src/interfaces/IThenaPair.sol#L1)\n",
+ "first_markdown_element": "src/interfaces/IThenaPair.sol#L1",
+ "id": "2ad70665f7cd347f547e5a92ff885c19999dbf2fae965bf1a9e88ae34d4842da",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": "^0.8.1",
+ "source_mapping": {
+ "start": 101,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".1"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.1",
+ "source_mapping": {
+ "start": 101,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".1"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint ^0.8.1 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.1 (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#4)\n\t- ^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n",
+ "markdown": "Version constraint ^0.8.1 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)\n\t- [^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4",
+ "id": "5b4c66a1bb40ec6a66dbf52a4cf24f6a91614ede5bb20cae9a049c071c3b9be2",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.8.0",
+ "source_mapping": {
+ "start": 42,
+ "length": 24,
+ "filename_relative": "lib/solmate/src/auth/Owned.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
+ "filename_short": "lib/solmate/src/auth/Owned.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.8.0",
+ "source_mapping": {
+ "start": 42,
+ "length": 24,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.8.0",
+ "source_mapping": {
+ "start": 42,
+ "length": 24,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint >=0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- >=0.8.0 (lib/solmate/src/auth/Owned.sol#2)\n\t- >=0.8.0 (lib/solmate/src/tokens/ERC20.sol#2)\n\t- >=0.8.0 (lib/solmate/src/utils/FixedPointMathLib.sol#2)\n",
+ "markdown": "Version constraint >=0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)\n\t- [>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)\n\t- [>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)\n",
+ "first_markdown_element": "lib/solmate/src/auth/Owned.sol#L2",
+ "id": "608762324767ce76c3af44990a7836a9dfdba566defdc7b70d6131bf689edff6",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.4.22<0.9.0",
+ "source_mapping": {
+ "start": 32,
+ "length": 32,
+ "filename_relative": "lib/forge-std/src/console.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
+ "filename_short": "lib/forge-std/src/console.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 33
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.4",
+ ".22",
+ "<",
+ "0.9",
+ ".0"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint >=0.4.22<0.9.0 is too complex.\nIt is used by:\n\t- >=0.4.22<0.9.0 (lib/forge-std/src/console.sol#2)\n",
+ "markdown": "Version constraint >=0.4.22<0.9.0 is too complex.\nIt is used by:\n\t- [>=0.4.22<0.9.0](lib/forge-std/src/console.sol#L2)\n",
+ "first_markdown_element": "lib/forge-std/src/console.sol#L2",
+ "id": "6c8ea62efd4799f5b24c03f450a6e012ab55c2446251d81bfa3eca7df3593083",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.7.0<0.9.0",
+ "source_mapping": {
+ "start": 723,
+ "length": 31,
+ "filename_relative": "src/interfaces/IBalancerVault.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancerVault.sol",
+ "filename_short": "src/interfaces/IBalancerVault.sol",
+ "is_dependency": false,
+ "lines": [
+ 17
+ ],
+ "starting_column": 1,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.7.0<0.9.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 31,
+ "filename_relative": "src/interfaces/IERC20Mintable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IERC20Mintable.sol",
+ "filename_short": "src/interfaces/IERC20Mintable.sol",
+ "is_dependency": false,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.7.0<0.9.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 31,
+ "filename_relative": "src/interfaces/IOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IOracle.sol",
+ "filename_short": "src/interfaces/IOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 32
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint >=0.7.0<0.9.0 is too complex.\nIt is used by:\n\t- >=0.7.0<0.9.0 (src/interfaces/IBalancerVault.sol#17)\n\t- >=0.7.0<0.9.0 (src/interfaces/IERC20Mintable.sol#3)\n\t- >=0.7.0<0.9.0 (src/interfaces/IOracle.sol#3)\n",
+ "markdown": "Version constraint >=0.7.0<0.9.0 is too complex.\nIt is used by:\n\t- [>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)\n\t- [>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)\n\t- [>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)\n",
+ "first_markdown_element": "src/interfaces/IBalancerVault.sol#L17",
+ "id": "76329079d414df38af98aae17d79222e359e9f99d2775292b8f625e9c4ee13d0",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 118,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 108,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 104,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 94,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 102,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 107,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 113,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 93,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 115,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 105,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 106,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 110,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 114,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 115,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 86,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 105,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 101,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 99,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 100,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 103,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 205,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 5
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 105,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/security/Pausable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/security/Pausable.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/security/Pausable.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 106,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 114,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 115,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 86,
+ "length": 23,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Context.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 32,
+ "length": 23,
+ "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 23,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 169,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
+ "is_dependency": true,
+ "lines": [
+ 4
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IAsset.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IAsset.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IAsset.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IAuthorizer.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IAuthorizer.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IAuthorizer.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IBasePool.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBasePool.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IBasePool.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IBeetVault.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBeetVault.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IBeetVault.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISwapErrors.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapErrors.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISwapErrors.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapper.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 36,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IVeloPair.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloPair.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IVeloPair.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 32,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 82,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/ReaperAccessControl.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/ReaperAccessControl.sol",
+ "filename_short": "lib/vault-v2/src/mixins/ReaperAccessControl.sol",
+ "is_dependency": true,
+ "lines": [
+ 5
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 38,
+ "length": 23,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 679,
+ "length": 23,
+ "filename_relative": "src/interfaces/IBalancerTwapOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancerTwapOracle.sol",
+ "filename_short": "src/interfaces/IBalancerTwapOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 15
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.0",
+ "source_mapping": {
+ "start": 37,
+ "length": 23,
+ "filename_relative": "src/interfaces/ISwapperSwaps.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/ISwapperSwaps.sol",
+ "filename_short": "src/interfaces/ISwapperSwaps.sol",
+ "is_dependency": false,
+ "lines": [
+ 3
+ ],
+ "starting_column": 1,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#5)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/security/Pausable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)\n\t- ^0.8.0 (lib/v3-core/contracts/libraries/FullMath.sol#2)\n\t- ^0.8.0 (lib/v3-core/contracts/libraries/TickMath.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/ReaperSwapper.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#4)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IAsset.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IAuthorizer.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IBasePool.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IBeetVault.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ISignaturesValidator.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ISwapErrors.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ISwapper.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ISwapperSwaps.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IVeloPair.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IVeloRouter.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/libraries/Babylonian.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/libraries/ReaperMathUtils.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/BalMixin.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/ReaperAccessControl.sol#5)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/UniV2Mixin.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/UniV3Mixin.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/VeloSolidMixin.sol#3)\n\t- ^0.8.0 (src/helpers/SwapHelper.sol#3)\n\t- ^0.8.0 (src/interfaces/IBalancerTwapOracle.sol#15)\n\t- ^0.8.0 (src/interfaces/ISwapperSwaps.sol#3)\n",
+ "markdown": "Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)\n\t- [^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)\n\t- [^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)\n\t- [^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)\n\t- [^0.8.0](src/helpers/SwapHelper.sol#L3)\n\t- [^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)\n\t- [^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4",
+ "id": "7bba08adf487efdfae92c045cfb77dbad46ee58270f68522c853dc82c1e990d1",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.7.5",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/ISwapRouter.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapRouter.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/ISwapRouter.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".5"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint >=0.7.5 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- >=0.7.5 (lib/vault-v2/src/interfaces/ISwapRouter.sol#2)\n",
+ "markdown": "Version constraint >=0.7.5 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)\n",
+ "first_markdown_element": "lib/vault-v2/src/interfaces/ISwapRouter.sol#L2",
+ "id": "9c890bf1b0570a6ad5a5771e5200b17d26d14d586d8c631f6f0a188594d81fe9",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.6.2",
+ "source_mapping": {
+ "start": 36,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.6",
+ ".2"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- MissingEscapingInFormatting\n\t- ArraySliceDynamicallyEncodedBaseType\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow.\nIt is used by:\n\t- >=0.6.2 (lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#2)\n",
+ "markdown": "Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- MissingEscapingInFormatting\n\t- ArraySliceDynamicallyEncodedBaseType\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow.\nIt is used by:\n\t- [>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)\n",
+ "first_markdown_element": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2",
+ "id": "bb0533356ecafe8099cc0d63ad30c4f7a6c44a4cbc4b5ed69e728fc32e446f1f",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/interfaces/IBalancer2TokensPool.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancer2TokensPool.sol",
+ "filename_short": "src/interfaces/IBalancer2TokensPool.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/interfaces/IExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IExercise.sol",
+ "filename_short": "src/interfaces/IExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/interfaces/IOptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IOptionsToken.sol",
+ "filename_short": "src/interfaces/IOptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/oracles/BalancerOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
+ "filename_short": "src/oracles/BalancerOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/oracles/ThenaOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/ThenaOracle.sol",
+ "filename_short": "src/oracles/ThenaOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": "^0.8.13",
+ "source_mapping": {
+ "start": 37,
+ "length": 24,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ "^",
+ "0.8",
+ ".13"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- StorageWriteRemovalBeforeConditionalTermination\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- InlineAssemblyMemorySideEffects\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation.\nIt is used by:\n\t- ^0.8.13 (src/OptionsToken.sol#2)\n\t- ^0.8.13 (src/exercise/BaseExercise.sol#2)\n\t- ^0.8.13 (src/exercise/DiscountExercise.sol#2)\n\t- ^0.8.13 (src/interfaces/IBalancer2TokensPool.sol#2)\n\t- ^0.8.13 (src/interfaces/IExercise.sol#2)\n\t- ^0.8.13 (src/interfaces/IOptionsToken.sol#2)\n\t- ^0.8.13 (src/oracles/BalancerOracle.sol#2)\n\t- ^0.8.13 (src/oracles/ThenaOracle.sol#2)\n\t- ^0.8.13 (src/oracles/UniswapV3Oracle.sol#2)\n",
+ "markdown": "Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- StorageWriteRemovalBeforeConditionalTermination\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- InlineAssemblyMemorySideEffects\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation.\nIt is used by:\n\t- [^0.8.13](src/OptionsToken.sol#L2)\n\t- [^0.8.13](src/exercise/BaseExercise.sol#L2)\n\t- [^0.8.13](src/exercise/DiscountExercise.sol#L2)\n\t- [^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)\n\t- [^0.8.13](src/interfaces/IExercise.sol#L2)\n\t- [^0.8.13](src/interfaces/IOptionsToken.sol#L2)\n\t- [^0.8.13](src/oracles/BalancerOracle.sol#L2)\n\t- [^0.8.13](src/oracles/ThenaOracle.sol#L2)\n\t- [^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)\n",
+ "first_markdown_element": "src/OptionsToken.sol#L2",
+ "id": "d77d9a4f3322696453d48caf7374c78bcac298207384a6493c0203cab485063e",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ },
+ {
+ "type": "pragma",
+ "name": ">=0.5.0",
+ "source_mapping": {
+ "start": 45,
+ "length": 24,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
+ "is_dependency": true,
+ "lines": [
+ 2
+ ],
+ "starting_column": 1,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "directive": [
+ "solidity",
+ ">=",
+ "0.5",
+ ".0"
+ ]
+ }
+ }
+ ],
+ "description": "Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- DirtyBytesArrayToStorage\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow\n\t- privateCanBeOverridden\n\t- SignedArrayStorageCopy\n\t- ABIEncoderV2StorageArrayWithMultiSlotElement\n\t- DynamicConstructorArgumentsClippedABIV2\n\t- UninitializedFunctionPointerInConstructor\n\t- IncorrectEventSignatureInLibraries\n\t- ABIEncoderV2PackedStorage.\nIt is used by:\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#2)\n\t- >=0.5.0 (lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#2)\n\t- >=0.5.0 (lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#2)\n\t- >=0.5.0 (lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#2)\n",
+ "markdown": "Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- DirtyBytesArrayToStorage\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow\n\t- privateCanBeOverridden\n\t- SignedArrayStorageCopy\n\t- ABIEncoderV2StorageArrayWithMultiSlotElement\n\t- DynamicConstructorArgumentsClippedABIV2\n\t- UninitializedFunctionPointerInConstructor\n\t- IncorrectEventSignatureInLibraries\n\t- ABIEncoderV2PackedStorage.\nIt is used by:\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)\n\t- [>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)\n\t- [>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)\n\t- [>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)\n",
+ "first_markdown_element": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2",
+ "id": "e84a495d364105fdd86e3c7f8f77d282f0048ce3bd2dd58f1ffef9abeb868a29",
+ "check": "solc-version",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5240,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4960,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#128-137):\n\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n",
+ "markdown": "Low level call in [Address.functionCallWithValue(address,bytes,uint256,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L128-L137):\n\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L128-L137",
+ "id": "117f0e40fe1352d1526a3c30c36971a0228cffa749da9528fa1d65423334e755",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "safeTransfer",
+ "source_mapping": {
+ "start": 1152,
+ "length": 279,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeTransfer(address,address,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector,to,value))",
+ "source_mapping": {
+ "start": 1235,
+ "length": 107,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 25
+ ],
+ "starting_column": 9,
+ "ending_column": 116
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "safeTransfer",
+ "source_mapping": {
+ "start": 1152,
+ "length": 279,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25,
+ 26,
+ 27
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeTransfer(address,address,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in TransferHelper.safeTransfer(address,address,uint256) (lib/vault-v2/src/libraries/TransferHelper.sol#24-27):\n\t- (success,data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector,to,value)) (lib/vault-v2/src/libraries/TransferHelper.sol#25)\n",
+ "markdown": "Low level call in [TransferHelper.safeTransfer(address,address,uint256)](lib/vault-v2/src/libraries/TransferHelper.sol#L24-L27):\n\t- [(success,data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector,to,value))](lib/vault-v2/src/libraries/TransferHelper.sol#L25)\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L24-L27",
+ "id": "25ed2c6c6c60a5ffbabebdd4d6f7bfd18fd58359a16acbf51f11d083bbc5b7a6",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "safeTransferFrom",
+ "source_mapping": {
+ "start": 540,
+ "length": 320,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeTransferFrom(address,address,address,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,data) = token.call(abi.encodeWithSelector(IERC20.transferFrom.selector,from,to,value))",
+ "source_mapping": {
+ "start": 641,
+ "length": 129,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15
+ ],
+ "starting_column": 9,
+ "ending_column": 94
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "safeTransferFrom",
+ "source_mapping": {
+ "start": 540,
+ "length": 320,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeTransferFrom(address,address,address,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in TransferHelper.safeTransferFrom(address,address,address,uint256) (lib/vault-v2/src/libraries/TransferHelper.sol#13-17):\n\t- (success,data) = token.call(abi.encodeWithSelector(IERC20.transferFrom.selector,from,to,value)) (lib/vault-v2/src/libraries/TransferHelper.sol#14-15)\n",
+ "markdown": "Low level call in [TransferHelper.safeTransferFrom(address,address,address,uint256)](lib/vault-v2/src/libraries/TransferHelper.sol#L13-L17):\n\t- [(success,data) = token.call(abi.encodeWithSelector(IERC20.transferFrom.selector,from,to,value))](lib/vault-v2/src/libraries/TransferHelper.sol#L14-L15)\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L13-L17",
+ "id": "4106472e91e5e4243fd3d3b66b2a8990e1c95c0a5bf0a286b8e1e6597c12ebb6",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "_functionDelegateCall",
+ "source_mapping": {
+ "start": 6780,
+ "length": 455,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC1967UpgradeUpgradeable",
+ "source_mapping": {
+ "start": 661,
+ "length": 6867,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_functionDelegateCall(address,bytes)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.delegatecall(data)",
+ "source_mapping": {
+ "start": 7045,
+ "length": 67,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 188
+ ],
+ "starting_column": 9,
+ "ending_column": 76
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "_functionDelegateCall",
+ "source_mapping": {
+ "start": 6780,
+ "length": 455,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC1967UpgradeUpgradeable",
+ "source_mapping": {
+ "start": 661,
+ "length": 6867,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "_functionDelegateCall(address,bytes)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#184-190):\n\t- (success,returndata) = target.delegatecall(data) (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#188)\n",
+ "markdown": "Low level call in [ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes)](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L184-L190):\n\t- [(success,returndata) = target.delegatecall(data)](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L188)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L184-L190",
+ "id": "68c54f03456c9af14bc78976aaac6bce102000001fe91323e0ffc2d36d3acd64",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sendValue",
+ "source_mapping": {
+ "start": 2412,
+ "length": 312,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sendValue(address,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,None) = recipient.call{value: amount}()",
+ "source_mapping": {
+ "start": 2577,
+ "length": 52,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 63
+ ],
+ "starting_column": 9,
+ "ending_column": 61
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sendValue",
+ "source_mapping": {
+ "start": 2412,
+ "length": 312,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sendValue(address,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in Address.sendValue(address,uint256) (lib/openzeppelin-contracts/contracts/utils/Address.sol#60-65):\n\t- (success,None) = recipient.call{value: amount}() (lib/openzeppelin-contracts/contracts/utils/Address.sol#63)\n",
+ "markdown": "Low level call in [Address.sendValue(address,uint256)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L60-L65):\n\t- [(success,None) = recipient.call{value: amount}()](lib/openzeppelin-contracts/contracts/utils/Address.sol#L63)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L60-L65",
+ "id": "71a3a6ee368d2284f3a1f62a49cfd8cdecd854d6c9799bb82199830989d7fb6c",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sendValue",
+ "source_mapping": {
+ "start": 2423,
+ "length": 312,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sendValue(address,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,None) = recipient.call{value: amount}()",
+ "source_mapping": {
+ "start": 2588,
+ "length": 52,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 63
+ ],
+ "starting_column": 9,
+ "ending_column": 61
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sendValue",
+ "source_mapping": {
+ "start": 2423,
+ "length": 312,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sendValue(address,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in AddressUpgradeable.sendValue(address,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#60-65):\n\t- (success,None) = recipient.call{value: amount}() (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#63)\n",
+ "markdown": "Low level call in [AddressUpgradeable.sendValue(address,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L60-L65):\n\t- [(success,None) = recipient.call{value: amount}()](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L63)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L60-L65",
+ "id": "89d29e5a468e08c404fcc98bf6872b9e33ca2f30eaea1879f1d6a95c9faca274",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "functionStaticCall",
+ "source_mapping": {
+ "start": 5975,
+ "length": 326,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionStaticCall(address,bytes,string)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.staticcall(data)",
+ "source_mapping": {
+ "start": 6143,
+ "length": 65,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 160
+ ],
+ "starting_column": 9,
+ "ending_column": 74
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionStaticCall",
+ "source_mapping": {
+ "start": 5975,
+ "length": 326,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionStaticCall(address,bytes,string)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#155-162):\n\t- (success,returndata) = target.staticcall(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#160)\n",
+ "markdown": "Low level call in [AddressUpgradeable.functionStaticCall(address,bytes,string)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L155-L162):\n\t- [(success,returndata) = target.staticcall(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L160)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L155-L162",
+ "id": "930ee0ffde6f0923876c4bc0067edc13707a3214f1d8d8954a2ef16471f1ee87",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "functionStaticCall",
+ "source_mapping": {
+ "start": 5964,
+ "length": 326,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionStaticCall(address,bytes,string)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.staticcall(data)",
+ "source_mapping": {
+ "start": 6132,
+ "length": 65,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 160
+ ],
+ "starting_column": 9,
+ "ending_column": 74
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionStaticCall",
+ "source_mapping": {
+ "start": 5964,
+ "length": 326,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionStaticCall(address,bytes,string)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in Address.functionStaticCall(address,bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#155-162):\n\t- (success,returndata) = target.staticcall(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#160)\n",
+ "markdown": "Low level call in [Address.functionStaticCall(address,bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L155-L162):\n\t- [(success,returndata) = target.staticcall(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L160)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L155-L162",
+ "id": "93eb0561ad76cb924a6646e71a8388be0f653be8a9cd37bdb60e25805d8be051",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "safeTransferETH",
+ "source_mapping": {
+ "start": 2251,
+ "length": 164,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 43,
+ 44,
+ 45,
+ 46
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeTransferETH(address,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,None) = to.call{value: value}(new bytes(0))",
+ "source_mapping": {
+ "start": 2322,
+ "length": 53,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 44
+ ],
+ "starting_column": 9,
+ "ending_column": 62
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "safeTransferETH",
+ "source_mapping": {
+ "start": 2251,
+ "length": 164,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 43,
+ 44,
+ 45,
+ 46
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeTransferETH(address,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in TransferHelper.safeTransferETH(address,uint256) (lib/vault-v2/src/libraries/TransferHelper.sol#43-46):\n\t- (success,None) = to.call{value: value}(new bytes(0)) (lib/vault-v2/src/libraries/TransferHelper.sol#44)\n",
+ "markdown": "Low level call in [TransferHelper.safeTransferETH(address,uint256)](lib/vault-v2/src/libraries/TransferHelper.sol#L43-L46):\n\t- [(success,None) = to.call{value: value}(new bytes(0))](lib/vault-v2/src/libraries/TransferHelper.sol#L44)\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L43-L46",
+ "id": "a7ee1b8ee08e673c81b6be63d50aa8273a86fb1be76e38aa60b066b6cb985739",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "safeApprove",
+ "source_mapping": {
+ "start": 1784,
+ "length": 277,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 34,
+ 35,
+ 36,
+ 37
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeApprove(address,address,uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value))",
+ "source_mapping": {
+ "start": 1866,
+ "length": 106,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 35
+ ],
+ "starting_column": 9,
+ "ending_column": 115
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "safeApprove",
+ "source_mapping": {
+ "start": 1784,
+ "length": 277,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 34,
+ 35,
+ 36,
+ 37
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TransferHelper",
+ "source_mapping": {
+ "start": 108,
+ "length": 2309,
+ "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
+ "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
+ "is_dependency": true,
+ "lines": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "safeApprove(address,address,uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in TransferHelper.safeApprove(address,address,uint256) (lib/vault-v2/src/libraries/TransferHelper.sol#34-37):\n\t- (success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value)) (lib/vault-v2/src/libraries/TransferHelper.sol#35)\n",
+ "markdown": "Low level call in [TransferHelper.safeApprove(address,address,uint256)](lib/vault-v2/src/libraries/TransferHelper.sol#L34-L37):\n\t- [(success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value))](lib/vault-v2/src/libraries/TransferHelper.sol#L35)\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L34-L37",
+ "id": "c7fac630cfc9b967d8af50ae5e1c350df9a222c8c9e8ef56e33726ed42bf6bfd",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.call{value: value}(data)",
+ "source_mapping": {
+ "start": 5251,
+ "length": 73,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 135
+ ],
+ "starting_column": 9,
+ "ending_column": 82
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionCallWithValue",
+ "source_mapping": {
+ "start": 4971,
+ "length": 446,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AddressUpgradeable",
+ "source_mapping": {
+ "start": 194,
+ "length": 8087,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionCallWithValue(address,bytes,uint256,string)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#128-137):\n\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n",
+ "markdown": "Low level call in [AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L128-L137):\n\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L128-L137",
+ "id": "c89bbc1f4bb1262a39f9090cc1b9e7447b4593134afdcf6677ccbd6a394243ae",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "functionDelegateCall",
+ "source_mapping": {
+ "start": 6853,
+ "length": 325,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionDelegateCall(address,bytes,string)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "(success,returndata) = target.delegatecall(data)",
+ "source_mapping": {
+ "start": 7018,
+ "length": 67,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 185
+ ],
+ "starting_column": 9,
+ "ending_column": 76
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "functionDelegateCall",
+ "source_mapping": {
+ "start": 6853,
+ "length": 325,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Address",
+ "source_mapping": {
+ "start": 194,
+ "length": 8964,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
+ "is_dependency": true,
+ "lines": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "functionDelegateCall(address,bytes,string)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Low level call in Address.functionDelegateCall(address,bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#180-187):\n\t- (success,returndata) = target.delegatecall(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#185)\n",
+ "markdown": "Low level call in [Address.functionDelegateCall(address,bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L180-L187):\n\t- [(success,returndata) = target.delegatecall(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L185)\n",
+ "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L180-L187",
+ "id": "d195a90c4848e59b62bdf1e5bf577abf5a3a0d92ac7dad04aef4ca0c978598bb",
+ "check": "low-level-calls",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 3672,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 97
+ ],
+ "starting_column": 71,
+ "ending_column": 86
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateUniV2SwapPath",
+ "source_mapping": {
+ "start": 3606,
+ "length": 253,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateUniV2SwapPath(address,address,address,address[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._router (lib/vault-v2/src/ReaperSwapper.sol#97) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._router](lib/vault-v2/src/ReaperSwapper.sol#L97) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L97",
+ "id": "045fb660d1db15a01f9c99a6b5f6fb1408a8fd0d9c8a18d9df6c0ba49a374583",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 9195,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 258
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9098,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#258) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L258) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L258",
+ "id": "056e10de3ceb71ae24ecfcaa44f6c9ca1e39f54e0a350667ed239b6dc8076db7",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 5256,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 144
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._router (lib/vault-v2/src/ReaperSwapper.sol#144) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._router](lib/vault-v2/src/ReaperSwapper.sol#L144) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L144",
+ "id": "0787751791a4c77b7495d89adc97395e4ffcf397cb1818fdb17614015b8de9dc",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 8323,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 234
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 8252,
+ "length": 300,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._amount (lib/vault-v2/src/ReaperSwapper.sol#234) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._amount](lib/vault-v2/src/ReaperSwapper.sol#L234) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L234",
+ "id": "08b84b7756b996f86a47f6056fbae30a072defadc58214f35cfc7d507bbbf801",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_deadline",
+ "source_mapping": {
+ "start": 8731,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 247
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline (lib/vault-v2/src/ReaperSwapper.sol#247) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L247) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L247",
+ "id": "08efa8121ff57e30ff0150c964c8970a993a0edcaca089059974cbfcc6366943",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenIn",
+ "source_mapping": {
+ "start": 3635,
+ "length": 16,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 97
+ ],
+ "starting_column": 34,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateUniV2SwapPath",
+ "source_mapping": {
+ "start": 3606,
+ "length": 253,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateUniV2SwapPath(address,address,address,address[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._tokenIn (lib/vault-v2/src/ReaperSwapper.sol#97) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._tokenIn](lib/vault-v2/src/ReaperSwapper.sol#L97) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L97",
+ "id": "0b27fda3861b3fe8e55b99783814bc1cee3e0c23c1f343feb33c325f4501d68c",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 9149,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 256
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9098,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._to (lib/vault-v2/src/ReaperSwapper.sol#256) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._to](lib/vault-v2/src/ReaperSwapper.sol#L256) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L256",
+ "id": "0b4fd12a14dd7d67ae408415c747efa419594368b633030ff52d6c977203874c",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_deadline",
+ "source_mapping": {
+ "start": 8097,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 226
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7925,
+ "length": 321,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._deadline (lib/vault-v2/src/ReaperSwapper.sol#226) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L226) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L226",
+ "id": "0cdc556021475f0af1abd7fd72e843e33927c369b1e1c0ffaae3798048a0c1ae",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_swapPathAndFees",
+ "source_mapping": {
+ "start": 4500,
+ "length": 37,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 125
+ ],
+ "starting_column": 9,
+ "ending_column": 46
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateUniV3SwapPath",
+ "source_mapping": {
+ "start": 4384,
+ "length": 297,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateUniV3SwapPath(address,address,address,UniV3SwapData)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._swapPathAndFees (lib/vault-v2/src/ReaperSwapper.sol#125) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._swapPathAndFees](lib/vault-v2/src/ReaperSwapper.sol#L125) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L125",
+ "id": "0e642fe8b87d792e6c6d36b518053207216f97f0fef498badb6a7874ed3df69a",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 9524,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 269
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9427,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#269) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L269) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L269",
+ "id": "10054eaf2fa911a848a5fad5a0dda5b107dcf5deb8cb4f17cbb21eed25bfe193",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "DOMAIN_SEPARATOR",
+ "source_mapping": {
+ "start": 2200,
+ "length": 60,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 59
+ ],
+ "starting_column": 5,
+ "ending_column": 65
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "IERC20PermitUpgradeable",
+ "source_mapping": {
+ "start": 620,
+ "length": 1642,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "DOMAIN_SEPARATOR()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function IERC20PermitUpgradeable.DOMAIN_SEPARATOR() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#59) is not in mixedCase\n",
+ "markdown": "Function [IERC20PermitUpgradeable.DOMAIN_SEPARATOR()](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L59) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L59",
+ "id": "125dfc7c7f2b3906a5391a5c33308280a9b2578cf6bba9c9acfe0f81566a4a45",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 6009,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 165
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5958,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._to (lib/vault-v2/src/ReaperSwapper.sol#165) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._to](lib/vault-v2/src/ReaperSwapper.sol#L165) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L165",
+ "id": "13386020056a24202ba7c82b9d72db8fadd9fc2dd25e8f0619ad4ee353fa6be8",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tryCatchActive",
+ "source_mapping": {
+ "start": 5308,
+ "length": 20,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 146
+ ],
+ "starting_column": 9,
+ "ending_column": 29
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive (lib/vault-v2/src/ReaperSwapper.sol#146) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive](lib/vault-v2/src/ReaperSwapper.sol#L146) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L146",
+ "id": "1413c8e43afe2c3bb270b1d87658ac7a5460b58ea2c4207eff0b7f20572e3487",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 5657,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 153
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5629,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._from (lib/vault-v2/src/ReaperSwapper.sol#153) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._from](lib/vault-v2/src/ReaperSwapper.sol#L153) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L153",
+ "id": "167f6e358e928549089ddd67ae14cacf28a7b6b3d2ba49ecde0d95bbdf59a712",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_token",
+ "source_mapping": {
+ "start": 4718,
+ "length": 14,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 131
+ ],
+ "starting_column": 36,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateTokenAggregator",
+ "source_mapping": {
+ "start": 4687,
+ "length": 415,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateTokenAggregator(address,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateTokenAggregator(address,address,uint256)._token (lib/vault-v2/src/ReaperSwapper.sol#131) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateTokenAggregator(address,address,uint256)._token](lib/vault-v2/src/ReaperSwapper.sol#L131) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L131",
+ "id": "16896e5595b8f444a953b0b29208119da1d296a34ca6563be4c53b709cc64eec",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 5180,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 142
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount (lib/vault-v2/src/ReaperSwapper.sol#142) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount](lib/vault-v2/src/ReaperSwapper.sol#L142) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L142",
+ "id": "17950f73fc7894890b97248a7fa127919e88cf0d7f1253e8140b803d31fe376d",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 7553,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 212
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._router (lib/vault-v2/src/ReaperSwapper.sol#212) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._router](lib/vault-v2/src/ReaperSwapper.sol#L212) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L212",
+ "id": "2071ae182e04da551e03610f93d5f1c8cbd402de79ade41335d807e0c8f9ca2d",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 9246,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 259
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9098,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._router (lib/vault-v2/src/ReaperSwapper.sol#259) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._router](lib/vault-v2/src/ReaperSwapper.sol#L259) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L259",
+ "id": "21aa1ba8369fb7a559e4c0fc1bf22fe287113c68f962299287db1014485354ae",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__AccessControl_init_unchained",
+ "source_mapping": {
+ "start": 2096,
+ "length": 75,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 54,
+ 55
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlUpgradeable",
+ "source_mapping": {
+ "start": 1893,
+ "length": 6829,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__AccessControl_init_unchained()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function AccessControlUpgradeable.__AccessControl_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#54-55) is not in mixedCase\n",
+ "markdown": "Function [AccessControlUpgradeable.__AccessControl_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L54-L55) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L54-L55",
+ "id": "226e7d5af64c132f41abf0df79c0723e2a9ee53e2961f745732ce61ab1360dbe",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_deadline",
+ "source_mapping": {
+ "start": 7578,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 213
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline (lib/vault-v2/src/ReaperSwapper.sol#213) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L213) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L213",
+ "id": "240474b72d2cdc4bd8b66ec268a242cf52bd88a0bd41e774e65b9f185e61fbbe",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__ERC1967Upgrade_init_unchained",
+ "source_mapping": {
+ "start": 821,
+ "length": 76,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 25,
+ 26
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC1967UpgradeUpgradeable",
+ "source_mapping": {
+ "start": 661,
+ "length": 6867,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__ERC1967Upgrade_init_unchained()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#25-26) is not in mixedCase\n",
+ "markdown": "Function [ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L25-L26) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L25-L26",
+ "id": "29c5a9e0594a34ab55098292b0786be5a1f49f1e651ab7af2a669ca40aceb7cb",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 7199,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 201
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 7104,
+ "length": 296,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#201) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L201) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L201",
+ "id": "2be2dfb84a1a47a1fe2c701f27b43bdd31cbf35e78f89cc8ed3ef46fb5072bca",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 8655,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 245
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#245) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L245) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L245",
+ "id": "2c2e8431129b1c52325a318d5db8219a891248cfc55c1a5cf2b2920f2c9fa9f8",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenOut",
+ "source_mapping": {
+ "start": 3653,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 97
+ ],
+ "starting_column": 52,
+ "ending_column": 69
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateUniV2SwapPath",
+ "source_mapping": {
+ "start": 3606,
+ "length": 253,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateUniV2SwapPath(address,address,address,address[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._tokenOut (lib/vault-v2/src/ReaperSwapper.sol#97) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._tokenOut](lib/vault-v2/src/ReaperSwapper.sol#L97) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L97",
+ "id": "2c8a8bc61df4a18b388999061d6fa5010feaf9562fd8d62b188e468e456a7153",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "INITIAL_CHAIN_ID",
+ "source_mapping": {
+ "start": 1643,
+ "length": 43,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 41
+ ],
+ "starting_column": 5,
+ "ending_column": 48
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC20",
+ "source_mapping": {
+ "start": 474,
+ "length": 6337,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable ERC20.INITIAL_CHAIN_ID (lib/solmate/src/tokens/ERC20.sol#41) is not in mixedCase\n",
+ "markdown": "Variable [ERC20.INITIAL_CHAIN_ID](lib/solmate/src/tokens/ERC20.sol#L41) is not in mixedCase\n",
+ "first_markdown_element": "lib/solmate/src/tokens/ERC20.sol#L41",
+ "id": "2e819ac97dab8ee9a559c975cd452228b363b633f4622a8c32d0502767b91e40",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 9455,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 266
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9427,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._from (lib/vault-v2/src/ReaperSwapper.sol#266) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._from](lib/vault-v2/src/ReaperSwapper.sol#L266) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L266",
+ "id": "3018788d12fc4b75ffed237e40bf2d933f3f102f422ca4e6f6ec99588852c88a",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 6336,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 176
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount (lib/vault-v2/src/ReaperSwapper.sol#176) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount](lib/vault-v2/src/ReaperSwapper.sol#L176) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L176",
+ "id": "30afd9ece480d36302713f1423a92fdac5775d35d8e9084b6744f69d41cb35e5",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_nextImplementation",
+ "source_mapping": {
+ "start": 6725,
+ "length": 27,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 162
+ ],
+ "starting_column": 38,
+ "ending_column": 65
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "initiateUpgradeCooldown",
+ "source_mapping": {
+ "start": 6692,
+ "length": 185,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 162,
+ 163,
+ 164,
+ 165
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "initiateUpgradeCooldown(address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter OptionsToken.initiateUpgradeCooldown(address)._nextImplementation (src/OptionsToken.sol#162) is not in mixedCase\n",
+ "markdown": "Parameter [OptionsToken.initiateUpgradeCooldown(address)._nextImplementation](src/OptionsToken.sol#L162) is not in mixedCase\n",
+ "first_markdown_element": "src/OptionsToken.sol#L162",
+ "id": "33e53f10ff3f49b18813d9dac0930ba1348d308496c90d9c1a00c0497f5c3cee",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_path",
+ "source_mapping": {
+ "start": 3689,
+ "length": 22,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 97
+ ],
+ "starting_column": 88,
+ "ending_column": 110
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateUniV2SwapPath",
+ "source_mapping": {
+ "start": 3606,
+ "length": 253,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateUniV2SwapPath(address,address,address,address[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._path (lib/vault-v2/src/ReaperSwapper.sol#97) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._path](lib/vault-v2/src/ReaperSwapper.sol#L97) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L97",
+ "id": "3421d80536152c860bba400d09dfde114340f7d38d4da09d6edfbf1adb890352",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenB",
+ "source_mapping": {
+ "start": 746,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20
+ ],
+ "starting_column": 46,
+ "ending_column": 61
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "uniV3SwapPaths",
+ "source_mapping": {
+ "start": 705,
+ "length": 214,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "uniV3SwapPaths(address,address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter UniV3Mixin.uniV3SwapPaths(address,address,address)._tokenB (lib/vault-v2/src/mixins/UniV3Mixin.sol#20) is not in mixedCase\n",
+ "markdown": "Parameter [UniV3Mixin.uniV3SwapPaths(address,address,address)._tokenB](lib/vault-v2/src/mixins/UniV3Mixin.sol#L20) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L20",
+ "id": "348fbebd40a224260ed0a3f0410ab794e4cdc194d7609d7c57ecede5098d527e",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tryCatchActive",
+ "source_mapping": {
+ "start": 8758,
+ "length": 20,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 248
+ ],
+ "starting_column": 9,
+ "ending_column": 29
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive (lib/vault-v2/src/ReaperSwapper.sol#248) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive](lib/vault-v2/src/ReaperSwapper.sol#L248) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L248",
+ "id": "34c29ba73612384447f21b695bb026ad188d469ca5f98fa472e6aa3a356a605c",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 5159,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 141
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._to (lib/vault-v2/src/ReaperSwapper.sol#141) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._to](lib/vault-v2/src/ReaperSwapper.sol#L141) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L141",
+ "id": "3527544cbdfbf1bebedc91e97603769f33a1dc4a2222084fe3f4bd86a36f9ae4",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 9478,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 267
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9427,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._to (lib/vault-v2/src/ReaperSwapper.sol#267) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._to](lib/vault-v2/src/ReaperSwapper.sol#L267) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L267",
+ "id": "35548d0c4635a0baa765bad2062c1031d24a1447c98997ef625d4024d4d39032",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__gap",
+ "source_mapping": {
+ "start": 1316,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 36
+ ],
+ "starting_column": 5,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ContextUpgradeable",
+ "source_mapping": {
+ "start": 651,
+ "length": 693,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable ContextUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#36) is not in mixedCase\n",
+ "markdown": "Variable [ContextUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L36) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L36",
+ "id": "36b0d7790b5ec0201a99f98a2f3b1afbd4248739c34889d0a9d08876f3462218",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 8021,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 224
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7925,
+ "length": 321,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#224) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L224) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L224",
+ "id": "3ec1f062d6f5a182e9f67dda7fd25e897ffe978e3fdbc7561351fbe383d21c95",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__gap",
+ "source_mapping": {
+ "start": 8694,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 259
+ ],
+ "starting_column": 5,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlUpgradeable",
+ "source_mapping": {
+ "start": 1893,
+ "length": 6829,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable AccessControlUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#259) is not in mixedCase\n",
+ "markdown": "Variable [AccessControlUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L259) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L259",
+ "id": "408a5a92ce9ee8bac5e964324c5e93c944b47606ce29c3515b4b54a7b28f372d",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 8279,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 232
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 8252,
+ "length": 300,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._from (lib/vault-v2/src/ReaperSwapper.sol#232) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._from](lib/vault-v2/src/ReaperSwapper.sol#L232) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L232",
+ "id": "418fec69fa0a926c5aa4783ab996662cd9d15da3993b0c11ddc008e3789bc3f4",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_path",
+ "source_mapping": {
+ "start": 4199,
+ "length": 32,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 113
+ ],
+ "starting_column": 87,
+ "ending_column": 119
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateVeloSwapPath",
+ "source_mapping": {
+ "start": 4117,
+ "length": 261,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateVeloSwapPath(address,address,address,IVeloRouter.Route[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._path (lib/vault-v2/src/ReaperSwapper.sol#113) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._path](lib/vault-v2/src/ReaperSwapper.sol#L113) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L113",
+ "id": "42609e99303070d0b460b62a3ec86983b6fd5109aaf634a9026fba1cb7e77c33",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_deadline",
+ "source_mapping": {
+ "start": 9271,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 260
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9098,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._deadline (lib/vault-v2/src/ReaperSwapper.sol#260) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L260) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L260",
+ "id": "48154271b8c895c6b802a31b0ae8d16001c8ba95b0c1bef15c0adb32c0f98c5f",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 6030,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 166
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5958,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._amount (lib/vault-v2/src/ReaperSwapper.sol#166) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._amount](lib/vault-v2/src/ReaperSwapper.sol#L166) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L166",
+ "id": "489c7627531111a361ddb5b0fa876959c0b5c227264305d2efbf558425eaa0c7",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "DOMAIN_SEPARATOR",
+ "source_mapping": {
+ "start": 5327,
+ "length": 177,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 162,
+ 163,
+ 164
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC20",
+ "source_mapping": {
+ "start": 474,
+ "length": 6337,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "DOMAIN_SEPARATOR()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ERC20.DOMAIN_SEPARATOR() (lib/solmate/src/tokens/ERC20.sol#162-164) is not in mixedCase\n",
+ "markdown": "Function [ERC20.DOMAIN_SEPARATOR()](lib/solmate/src/tokens/ERC20.sol#L162-L164) is not in mixedCase\n",
+ "first_markdown_element": "lib/solmate/src/tokens/ERC20.sol#L162-L164",
+ "id": "49160d2232fd1cf66e40eea2eb550f349c00a0d29cfaf4670e104b4832e0d5b0",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 8399,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 236
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 8252,
+ "length": 300,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._router (lib/vault-v2/src/ReaperSwapper.sol#236) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._router](lib/vault-v2/src/ReaperSwapper.sol#L236) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L236",
+ "id": "51317259fb342989bb3002f86d27d0d8d3800e8013b1105278f724a65f97b3b2",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_token",
+ "source_mapping": {
+ "start": 12613,
+ "length": 14,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 333
+ ],
+ "starting_column": 44,
+ "ending_column": 58
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getChainlinkPriceTargetDigits",
+ "source_mapping": {
+ "start": 12574,
+ "length": 693,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getChainlinkPriceTargetDigits(address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.getChainlinkPriceTargetDigits(address)._token (lib/vault-v2/src/ReaperSwapper.sol#333) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.getChainlinkPriceTargetDigits(address)._token](lib/vault-v2/src/ReaperSwapper.sol#L333) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L333",
+ "id": "533159ba7d61d5fe5dfd676710c1ac88cf694c7032cc9afc20ed9b723401ae4e",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenIn",
+ "source_mapping": {
+ "start": 4145,
+ "length": 16,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 113
+ ],
+ "starting_column": 33,
+ "ending_column": 49
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateVeloSwapPath",
+ "source_mapping": {
+ "start": 4117,
+ "length": 261,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateVeloSwapPath(address,address,address,IVeloRouter.Route[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._tokenIn (lib/vault-v2/src/ReaperSwapper.sol#113) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._tokenIn](lib/vault-v2/src/ReaperSwapper.sol#L113) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L113",
+ "id": "53551379c42ab3877e8ee97cac181c5347ef7b0683ebe22b81e5bd192559e10c",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 5777,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 157
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5629,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._router (lib/vault-v2/src/ReaperSwapper.sol#157) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._router](lib/vault-v2/src/ReaperSwapper.sol#L157) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L157",
+ "id": "5480cdf71bb4a1fc4bad960293c816fab6eae1f7b1db72dc13c46eecdff29942",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 8586,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 242
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._from (lib/vault-v2/src/ReaperSwapper.sol#242) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._from](lib/vault-v2/src/ReaperSwapper.sol#L242) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L242",
+ "id": "54eee96f636dcc23d413ad789f8cc37b37b3ceffbb301fcc7c20ef44f9fa8dd1",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__Ownable_init",
+ "source_mapping": {
+ "start": 1003,
+ "length": 95,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 29,
+ 30,
+ 31
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OwnableUpgradeable",
+ "source_mapping": {
+ "start": 708,
+ "length": 2445,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__Ownable_init()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function OwnableUpgradeable.__Ownable_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#29-31) is not in mixedCase\n",
+ "markdown": "Function [OwnableUpgradeable.__Ownable_init()](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L29-L31) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L29-L31",
+ "id": "564a84db84ff90549701d9e3401970ecd35bb55e38a0ae2758178a34b03f99e8",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountToTriggerSwap",
+ "source_mapping": {
+ "start": 6542,
+ "length": 31,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 179
+ ],
+ "starting_column": 40,
+ "ending_column": 71
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "setMinAmountToTriggerSwap",
+ "source_mapping": {
+ "start": 6507,
+ "length": 152,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 179,
+ 180,
+ 181
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "setMinAmountToTriggerSwap(uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter DiscountExercise.setMinAmountToTriggerSwap(uint256)._minAmountToTriggerSwap (src/exercise/DiscountExercise.sol#179) is not in mixedCase\n",
+ "markdown": "Parameter [DiscountExercise.setMinAmountToTriggerSwap(uint256)._minAmountToTriggerSwap](src/exercise/DiscountExercise.sol#L179) is not in mixedCase\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L179",
+ "id": "581d9756e46299b9236b584619603c7950d2a6ae937b632b19d6013c10199f9b",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "contract",
+ "name": "console",
+ "source_mapping": {
+ "start": 66,
+ "length": 66622,
+ "filename_relative": "lib/forge-std/src/console.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
+ "filename_short": "lib/forge-std/src/console.sol",
+ "is_dependency": true,
+ "lines": [
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500,
+ 501,
+ 502,
+ 503,
+ 504,
+ 505,
+ 506,
+ 507,
+ 508,
+ 509,
+ 510,
+ 511,
+ 512,
+ 513,
+ 514,
+ 515,
+ 516,
+ 517,
+ 518,
+ 519,
+ 520,
+ 521,
+ 522,
+ 523,
+ 524,
+ 525,
+ 526,
+ 527,
+ 528,
+ 529,
+ 530,
+ 531,
+ 532,
+ 533,
+ 534,
+ 535,
+ 536,
+ 537,
+ 538,
+ 539,
+ 540,
+ 541,
+ 542,
+ 543,
+ 544,
+ 545,
+ 546,
+ 547,
+ 548,
+ 549,
+ 550,
+ 551,
+ 552,
+ 553,
+ 554,
+ 555,
+ 556,
+ 557,
+ 558,
+ 559,
+ 560,
+ 561,
+ 562,
+ 563,
+ 564,
+ 565,
+ 566,
+ 567,
+ 568,
+ 569,
+ 570,
+ 571,
+ 572,
+ 573,
+ 574,
+ 575,
+ 576,
+ 577,
+ 578,
+ 579,
+ 580,
+ 581,
+ 582,
+ 583,
+ 584,
+ 585,
+ 586,
+ 587,
+ 588,
+ 589,
+ 590,
+ 591,
+ 592,
+ 593,
+ 594,
+ 595,
+ 596,
+ 597,
+ 598,
+ 599,
+ 600,
+ 601,
+ 602,
+ 603,
+ 604,
+ 605,
+ 606,
+ 607,
+ 608,
+ 609,
+ 610,
+ 611,
+ 612,
+ 613,
+ 614,
+ 615,
+ 616,
+ 617,
+ 618,
+ 619,
+ 620,
+ 621,
+ 622,
+ 623,
+ 624,
+ 625,
+ 626,
+ 627,
+ 628,
+ 629,
+ 630,
+ 631,
+ 632,
+ 633,
+ 634,
+ 635,
+ 636,
+ 637,
+ 638,
+ 639,
+ 640,
+ 641,
+ 642,
+ 643,
+ 644,
+ 645,
+ 646,
+ 647,
+ 648,
+ 649,
+ 650,
+ 651,
+ 652,
+ 653,
+ 654,
+ 655,
+ 656,
+ 657,
+ 658,
+ 659,
+ 660,
+ 661,
+ 662,
+ 663,
+ 664,
+ 665,
+ 666,
+ 667,
+ 668,
+ 669,
+ 670,
+ 671,
+ 672,
+ 673,
+ 674,
+ 675,
+ 676,
+ 677,
+ 678,
+ 679,
+ 680,
+ 681,
+ 682,
+ 683,
+ 684,
+ 685,
+ 686,
+ 687,
+ 688,
+ 689,
+ 690,
+ 691,
+ 692,
+ 693,
+ 694,
+ 695,
+ 696,
+ 697,
+ 698,
+ 699,
+ 700,
+ 701,
+ 702,
+ 703,
+ 704,
+ 705,
+ 706,
+ 707,
+ 708,
+ 709,
+ 710,
+ 711,
+ 712,
+ 713,
+ 714,
+ 715,
+ 716,
+ 717,
+ 718,
+ 719,
+ 720,
+ 721,
+ 722,
+ 723,
+ 724,
+ 725,
+ 726,
+ 727,
+ 728,
+ 729,
+ 730,
+ 731,
+ 732,
+ 733,
+ 734,
+ 735,
+ 736,
+ 737,
+ 738,
+ 739,
+ 740,
+ 741,
+ 742,
+ 743,
+ 744,
+ 745,
+ 746,
+ 747,
+ 748,
+ 749,
+ 750,
+ 751,
+ 752,
+ 753,
+ 754,
+ 755,
+ 756,
+ 757,
+ 758,
+ 759,
+ 760,
+ 761,
+ 762,
+ 763,
+ 764,
+ 765,
+ 766,
+ 767,
+ 768,
+ 769,
+ 770,
+ 771,
+ 772,
+ 773,
+ 774,
+ 775,
+ 776,
+ 777,
+ 778,
+ 779,
+ 780,
+ 781,
+ 782,
+ 783,
+ 784,
+ 785,
+ 786,
+ 787,
+ 788,
+ 789,
+ 790,
+ 791,
+ 792,
+ 793,
+ 794,
+ 795,
+ 796,
+ 797,
+ 798,
+ 799,
+ 800,
+ 801,
+ 802,
+ 803,
+ 804,
+ 805,
+ 806,
+ 807,
+ 808,
+ 809,
+ 810,
+ 811,
+ 812,
+ 813,
+ 814,
+ 815,
+ 816,
+ 817,
+ 818,
+ 819,
+ 820,
+ 821,
+ 822,
+ 823,
+ 824,
+ 825,
+ 826,
+ 827,
+ 828,
+ 829,
+ 830,
+ 831,
+ 832,
+ 833,
+ 834,
+ 835,
+ 836,
+ 837,
+ 838,
+ 839,
+ 840,
+ 841,
+ 842,
+ 843,
+ 844,
+ 845,
+ 846,
+ 847,
+ 848,
+ 849,
+ 850,
+ 851,
+ 852,
+ 853,
+ 854,
+ 855,
+ 856,
+ 857,
+ 858,
+ 859,
+ 860,
+ 861,
+ 862,
+ 863,
+ 864,
+ 865,
+ 866,
+ 867,
+ 868,
+ 869,
+ 870,
+ 871,
+ 872,
+ 873,
+ 874,
+ 875,
+ 876,
+ 877,
+ 878,
+ 879,
+ 880,
+ 881,
+ 882,
+ 883,
+ 884,
+ 885,
+ 886,
+ 887,
+ 888,
+ 889,
+ 890,
+ 891,
+ 892,
+ 893,
+ 894,
+ 895,
+ 896,
+ 897,
+ 898,
+ 899,
+ 900,
+ 901,
+ 902,
+ 903,
+ 904,
+ 905,
+ 906,
+ 907,
+ 908,
+ 909,
+ 910,
+ 911,
+ 912,
+ 913,
+ 914,
+ 915,
+ 916,
+ 917,
+ 918,
+ 919,
+ 920,
+ 921,
+ 922,
+ 923,
+ 924,
+ 925,
+ 926,
+ 927,
+ 928,
+ 929,
+ 930,
+ 931,
+ 932,
+ 933,
+ 934,
+ 935,
+ 936,
+ 937,
+ 938,
+ 939,
+ 940,
+ 941,
+ 942,
+ 943,
+ 944,
+ 945,
+ 946,
+ 947,
+ 948,
+ 949,
+ 950,
+ 951,
+ 952,
+ 953,
+ 954,
+ 955,
+ 956,
+ 957,
+ 958,
+ 959,
+ 960,
+ 961,
+ 962,
+ 963,
+ 964,
+ 965,
+ 966,
+ 967,
+ 968,
+ 969,
+ 970,
+ 971,
+ 972,
+ 973,
+ 974,
+ 975,
+ 976,
+ 977,
+ 978,
+ 979,
+ 980,
+ 981,
+ 982,
+ 983,
+ 984,
+ 985,
+ 986,
+ 987,
+ 988,
+ 989,
+ 990,
+ 991,
+ 992,
+ 993,
+ 994,
+ 995,
+ 996,
+ 997,
+ 998,
+ 999,
+ 1000,
+ 1001,
+ 1002,
+ 1003,
+ 1004,
+ 1005,
+ 1006,
+ 1007,
+ 1008,
+ 1009,
+ 1010,
+ 1011,
+ 1012,
+ 1013,
+ 1014,
+ 1015,
+ 1016,
+ 1017,
+ 1018,
+ 1019,
+ 1020,
+ 1021,
+ 1022,
+ 1023,
+ 1024,
+ 1025,
+ 1026,
+ 1027,
+ 1028,
+ 1029,
+ 1030,
+ 1031,
+ 1032,
+ 1033,
+ 1034,
+ 1035,
+ 1036,
+ 1037,
+ 1038,
+ 1039,
+ 1040,
+ 1041,
+ 1042,
+ 1043,
+ 1044,
+ 1045,
+ 1046,
+ 1047,
+ 1048,
+ 1049,
+ 1050,
+ 1051,
+ 1052,
+ 1053,
+ 1054,
+ 1055,
+ 1056,
+ 1057,
+ 1058,
+ 1059,
+ 1060,
+ 1061,
+ 1062,
+ 1063,
+ 1064,
+ 1065,
+ 1066,
+ 1067,
+ 1068,
+ 1069,
+ 1070,
+ 1071,
+ 1072,
+ 1073,
+ 1074,
+ 1075,
+ 1076,
+ 1077,
+ 1078,
+ 1079,
+ 1080,
+ 1081,
+ 1082,
+ 1083,
+ 1084,
+ 1085,
+ 1086,
+ 1087,
+ 1088,
+ 1089,
+ 1090,
+ 1091,
+ 1092,
+ 1093,
+ 1094,
+ 1095,
+ 1096,
+ 1097,
+ 1098,
+ 1099,
+ 1100,
+ 1101,
+ 1102,
+ 1103,
+ 1104,
+ 1105,
+ 1106,
+ 1107,
+ 1108,
+ 1109,
+ 1110,
+ 1111,
+ 1112,
+ 1113,
+ 1114,
+ 1115,
+ 1116,
+ 1117,
+ 1118,
+ 1119,
+ 1120,
+ 1121,
+ 1122,
+ 1123,
+ 1124,
+ 1125,
+ 1126,
+ 1127,
+ 1128,
+ 1129,
+ 1130,
+ 1131,
+ 1132,
+ 1133,
+ 1134,
+ 1135,
+ 1136,
+ 1137,
+ 1138,
+ 1139,
+ 1140,
+ 1141,
+ 1142,
+ 1143,
+ 1144,
+ 1145,
+ 1146,
+ 1147,
+ 1148,
+ 1149,
+ 1150,
+ 1151,
+ 1152,
+ 1153,
+ 1154,
+ 1155,
+ 1156,
+ 1157,
+ 1158,
+ 1159,
+ 1160,
+ 1161,
+ 1162,
+ 1163,
+ 1164,
+ 1165,
+ 1166,
+ 1167,
+ 1168,
+ 1169,
+ 1170,
+ 1171,
+ 1172,
+ 1173,
+ 1174,
+ 1175,
+ 1176,
+ 1177,
+ 1178,
+ 1179,
+ 1180,
+ 1181,
+ 1182,
+ 1183,
+ 1184,
+ 1185,
+ 1186,
+ 1187,
+ 1188,
+ 1189,
+ 1190,
+ 1191,
+ 1192,
+ 1193,
+ 1194,
+ 1195,
+ 1196,
+ 1197,
+ 1198,
+ 1199,
+ 1200,
+ 1201,
+ 1202,
+ 1203,
+ 1204,
+ 1205,
+ 1206,
+ 1207,
+ 1208,
+ 1209,
+ 1210,
+ 1211,
+ 1212,
+ 1213,
+ 1214,
+ 1215,
+ 1216,
+ 1217,
+ 1218,
+ 1219,
+ 1220,
+ 1221,
+ 1222,
+ 1223,
+ 1224,
+ 1225,
+ 1226,
+ 1227,
+ 1228,
+ 1229,
+ 1230,
+ 1231,
+ 1232,
+ 1233,
+ 1234,
+ 1235,
+ 1236,
+ 1237,
+ 1238,
+ 1239,
+ 1240,
+ 1241,
+ 1242,
+ 1243,
+ 1244,
+ 1245,
+ 1246,
+ 1247,
+ 1248,
+ 1249,
+ 1250,
+ 1251,
+ 1252,
+ 1253,
+ 1254,
+ 1255,
+ 1256,
+ 1257,
+ 1258,
+ 1259,
+ 1260,
+ 1261,
+ 1262,
+ 1263,
+ 1264,
+ 1265,
+ 1266,
+ 1267,
+ 1268,
+ 1269,
+ 1270,
+ 1271,
+ 1272,
+ 1273,
+ 1274,
+ 1275,
+ 1276,
+ 1277,
+ 1278,
+ 1279,
+ 1280,
+ 1281,
+ 1282,
+ 1283,
+ 1284,
+ 1285,
+ 1286,
+ 1287,
+ 1288,
+ 1289,
+ 1290,
+ 1291,
+ 1292,
+ 1293,
+ 1294,
+ 1295,
+ 1296,
+ 1297,
+ 1298,
+ 1299,
+ 1300,
+ 1301,
+ 1302,
+ 1303,
+ 1304,
+ 1305,
+ 1306,
+ 1307,
+ 1308,
+ 1309,
+ 1310,
+ 1311,
+ 1312,
+ 1313,
+ 1314,
+ 1315,
+ 1316,
+ 1317,
+ 1318,
+ 1319,
+ 1320,
+ 1321,
+ 1322,
+ 1323,
+ 1324,
+ 1325,
+ 1326,
+ 1327,
+ 1328,
+ 1329,
+ 1330,
+ 1331,
+ 1332,
+ 1333,
+ 1334,
+ 1335,
+ 1336,
+ 1337,
+ 1338,
+ 1339,
+ 1340,
+ 1341,
+ 1342,
+ 1343,
+ 1344,
+ 1345,
+ 1346,
+ 1347,
+ 1348,
+ 1349,
+ 1350,
+ 1351,
+ 1352,
+ 1353,
+ 1354,
+ 1355,
+ 1356,
+ 1357,
+ 1358,
+ 1359,
+ 1360,
+ 1361,
+ 1362,
+ 1363,
+ 1364,
+ 1365,
+ 1366,
+ 1367,
+ 1368,
+ 1369,
+ 1370,
+ 1371,
+ 1372,
+ 1373,
+ 1374,
+ 1375,
+ 1376,
+ 1377,
+ 1378,
+ 1379,
+ 1380,
+ 1381,
+ 1382,
+ 1383,
+ 1384,
+ 1385,
+ 1386,
+ 1387,
+ 1388,
+ 1389,
+ 1390,
+ 1391,
+ 1392,
+ 1393,
+ 1394,
+ 1395,
+ 1396,
+ 1397,
+ 1398,
+ 1399,
+ 1400,
+ 1401,
+ 1402,
+ 1403,
+ 1404,
+ 1405,
+ 1406,
+ 1407,
+ 1408,
+ 1409,
+ 1410,
+ 1411,
+ 1412,
+ 1413,
+ 1414,
+ 1415,
+ 1416,
+ 1417,
+ 1418,
+ 1419,
+ 1420,
+ 1421,
+ 1422,
+ 1423,
+ 1424,
+ 1425,
+ 1426,
+ 1427,
+ 1428,
+ 1429,
+ 1430,
+ 1431,
+ 1432,
+ 1433,
+ 1434,
+ 1435,
+ 1436,
+ 1437,
+ 1438,
+ 1439,
+ 1440,
+ 1441,
+ 1442,
+ 1443,
+ 1444,
+ 1445,
+ 1446,
+ 1447,
+ 1448,
+ 1449,
+ 1450,
+ 1451,
+ 1452,
+ 1453,
+ 1454,
+ 1455,
+ 1456,
+ 1457,
+ 1458,
+ 1459,
+ 1460,
+ 1461,
+ 1462,
+ 1463,
+ 1464,
+ 1465,
+ 1466,
+ 1467,
+ 1468,
+ 1469,
+ 1470,
+ 1471,
+ 1472,
+ 1473,
+ 1474,
+ 1475,
+ 1476,
+ 1477,
+ 1478,
+ 1479,
+ 1480,
+ 1481,
+ 1482,
+ 1483,
+ 1484,
+ 1485,
+ 1486,
+ 1487,
+ 1488,
+ 1489,
+ 1490,
+ 1491,
+ 1492,
+ 1493,
+ 1494,
+ 1495,
+ 1496,
+ 1497,
+ 1498,
+ 1499,
+ 1500,
+ 1501,
+ 1502,
+ 1503,
+ 1504,
+ 1505,
+ 1506,
+ 1507,
+ 1508,
+ 1509,
+ 1510,
+ 1511,
+ 1512,
+ 1513,
+ 1514,
+ 1515,
+ 1516,
+ 1517,
+ 1518,
+ 1519,
+ 1520,
+ 1521,
+ 1522,
+ 1523,
+ 1524,
+ 1525,
+ 1526,
+ 1527,
+ 1528,
+ 1529,
+ 1530,
+ 1531,
+ 1532,
+ 1533,
+ 1534
+ ],
+ "starting_column": 1,
+ "ending_column": 0
+ },
+ "additional_fields": {
+ "target": "contract",
+ "convention": "CapWords"
+ }
+ }
+ ],
+ "description": "Contract console (lib/forge-std/src/console.sol#4-1534) is not in CapWords\n",
+ "markdown": "Contract [console](lib/forge-std/src/console.sol#L4-L1534) is not in CapWords\n",
+ "first_markdown_element": "lib/forge-std/src/console.sol#L4-L1534",
+ "id": "58c9dacc35a1219332b8b6ce561daac5384e938b9878894ede5d6cbaa444d455",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_feeRecipients",
+ "source_mapping": {
+ "start": 2183,
+ "length": 31,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 57
+ ],
+ "starting_column": 22,
+ "ending_column": 53
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "setFees",
+ "source_mapping": {
+ "start": 2166,
+ "length": 145,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 57,
+ 58,
+ 59
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "setFees(address[],uint256[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter BaseExercise.setFees(address[],uint256[])._feeRecipients (src/exercise/BaseExercise.sol#57) is not in mixedCase\n",
+ "markdown": "Parameter [BaseExercise.setFees(address[],uint256[])._feeRecipients](src/exercise/BaseExercise.sol#L57) is not in mixedCase\n",
+ "first_markdown_element": "src/exercise/BaseExercise.sol#L57",
+ "id": "5944f924de77c988f31b403664373f2876aff03596234cc58b4afadd8a71d5a9",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_deadline",
+ "source_mapping": {
+ "start": 5802,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 158
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5629,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._deadline (lib/vault-v2/src/ReaperSwapper.sol#158) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L158) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L158",
+ "id": "6071c207bea25fb7f9bb412b5de02629482e66a2117c5fa91626351e29e9b02e",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 7952,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 221
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7925,
+ "length": 321,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._from (lib/vault-v2/src/ReaperSwapper.sol#221) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._from](lib/vault-v2/src/ReaperSwapper.sol#L221) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L221",
+ "id": "623f5d19356fa7b9bd0ab5df0402fd1e4d7c09639f95e63a0a4209cc8cc8bdfd",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__gap",
+ "source_mapping": {
+ "start": 3125,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 94
+ ],
+ "starting_column": 5,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OwnableUpgradeable",
+ "source_mapping": {
+ "start": 708,
+ "length": 2445,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable OwnableUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#94) is not in mixedCase\n",
+ "markdown": "Variable [OwnableUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L94) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L94",
+ "id": "64595b3b974ce422ded6f4c3e75f4b8f263d80fe654b483274d85ea78d93515d",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__gap",
+ "source_mapping": {
+ "start": 4729,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 107
+ ],
+ "starting_column": 5,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UUPSUpgradeable",
+ "source_mapping": {
+ "start": 928,
+ "length": 3829,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable UUPSUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#107) is not in mixedCase\n",
+ "markdown": "Variable [UUPSUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L107) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L107",
+ "id": "66e89635b3f1a39420c14852bce53cece9d715d261ed362fdfe323326d902681",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "struct",
+ "name": "Params__swapUniV3",
+ "source_mapping": {
+ "start": 925,
+ "length": 207,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "structure",
+ "convention": "CapWords"
+ }
+ }
+ ],
+ "description": "Struct UniV3Mixin.Params__swapUniV3 (lib/vault-v2/src/mixins/UniV3Mixin.sol#28-36) is not in CapWords\n",
+ "markdown": "Struct [UniV3Mixin.Params__swapUniV3](lib/vault-v2/src/mixins/UniV3Mixin.sol#L28-L36) is not in CapWords\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L28-L36",
+ "id": "686ea0a248be2f332d477f476112aafd31063649571e7caedc18a1f64cf140f3",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 4475,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 124
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateUniV3SwapPath",
+ "source_mapping": {
+ "start": 4384,
+ "length": 297,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateUniV3SwapPath(address,address,address,UniV3SwapData)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._router (lib/vault-v2/src/ReaperSwapper.sol#124) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._router](lib/vault-v2/src/ReaperSwapper.sol#L124) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L124",
+ "id": "6afae1f9d7e55e6076a51917ac9f65e8dead79697dd34ab763dc91b9bcb86e89",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenIn",
+ "source_mapping": {
+ "start": 4422,
+ "length": 16,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 122
+ ],
+ "starting_column": 9,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateUniV3SwapPath",
+ "source_mapping": {
+ "start": 4384,
+ "length": 297,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateUniV3SwapPath(address,address,address,UniV3SwapData)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._tokenIn (lib/vault-v2/src/ReaperSwapper.sol#122) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._tokenIn](lib/vault-v2/src/ReaperSwapper.sol#L122) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L122",
+ "id": "72977cf6ba4408d54c36fec2d76a45624faa51193a45d346cfd1f506c3276687",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__ERC20_init_unchained",
+ "source_mapping": {
+ "start": 2267,
+ "length": 159,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 59,
+ 60,
+ 61,
+ 62
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC20Upgradeable",
+ "source_mapping": {
+ "start": 1480,
+ "length": 12159,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__ERC20_init_unchained(string,string)"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ERC20Upgradeable.__ERC20_init_unchained(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#59-62) is not in mixedCase\n",
+ "markdown": "Function [ERC20Upgradeable.__ERC20_init_unchained(string,string)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L59-L62) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L59-L62",
+ "id": "74c629176a16cccc0c00bada69b465bc625751ea0b6a6c34a6948576e5a63d53",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 6876,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 190
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6781,
+ "length": 317,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#190) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L190) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L190",
+ "id": "7966fe16a7fae3142addfdb2c5631dc7af108f9a0556e7e6e462bc93b4b0fd6a",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__gap",
+ "source_mapping": {
+ "start": 7500,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 197
+ ],
+ "starting_column": 5,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC1967UpgradeUpgradeable",
+ "source_mapping": {
+ "start": 661,
+ "length": 6867,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable ERC1967UpgradeUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#197) is not in mixedCase\n",
+ "markdown": "Variable [ERC1967UpgradeUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L197) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L197",
+ "id": "7a925ee243c35fcbf7d26a13c9439f5f52653d41557544bf25a6dea8e1255a36",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 5680,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 154
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5629,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._to (lib/vault-v2/src/ReaperSwapper.sol#154) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._to](lib/vault-v2/src/ReaperSwapper.sol#L154) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L154",
+ "id": "7dd841bf64cae734263aa2ece5e257856fff5689200d9da336af8f149bc065d5",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 763,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20
+ ],
+ "starting_column": 63,
+ "ending_column": 78
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "uniV3SwapPaths",
+ "source_mapping": {
+ "start": 705,
+ "length": 214,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "uniV3SwapPaths(address,address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter UniV3Mixin.uniV3SwapPaths(address,address,address)._router (lib/vault-v2/src/mixins/UniV3Mixin.sol#20) is not in mixedCase\n",
+ "markdown": "Parameter [UniV3Mixin.uniV3SwapPaths(address,address,address)._router](lib/vault-v2/src/mixins/UniV3Mixin.sol#L20) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L20",
+ "id": "81b3767aefa146b755f320923f96e311ac717b193aade9ea9209fda84ec19507",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__ERC20_init",
+ "source_mapping": {
+ "start": 2114,
+ "length": 147,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 55,
+ 56,
+ 57
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC20Upgradeable",
+ "source_mapping": {
+ "start": 1480,
+ "length": 12159,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__ERC20_init(string,string)"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ERC20Upgradeable.__ERC20_init(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#55-57) is not in mixedCase\n",
+ "markdown": "Function [ERC20Upgradeable.__ERC20_init(string,string)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L55-L57) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L55-L57",
+ "id": "8238dcf62f913fda66edd22ee2b08e732cfae65517418f334b31b357d5fb02c5",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 7996,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 223
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7925,
+ "length": 321,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._amount (lib/vault-v2/src/ReaperSwapper.sol#223) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._amount](lib/vault-v2/src/ReaperSwapper.sol#L223) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L223",
+ "id": "831ee570df860b35fb7432639868412b8f3a89a1e163b5e0301268d3d015656e",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_aggregator",
+ "source_mapping": {
+ "start": 4734,
+ "length": 19,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 131
+ ],
+ "starting_column": 52,
+ "ending_column": 71
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateTokenAggregator",
+ "source_mapping": {
+ "start": 4687,
+ "length": 415,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateTokenAggregator(address,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateTokenAggregator(address,address,uint256)._aggregator (lib/vault-v2/src/ReaperSwapper.sol#131) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateTokenAggregator(address,address,uint256)._aggregator](lib/vault-v2/src/ReaperSwapper.sol#L131) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L131",
+ "id": "840fd0afa4bae92ba91f2c94e5ff241d7edf4411fba4ca97efa57208909748a1",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__ERC165_init_unchained",
+ "source_mapping": {
+ "start": 926,
+ "length": 68,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 27,
+ 28
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC165Upgradeable",
+ "source_mapping": {
+ "start": 783,
+ "length": 736,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__ERC165_init_unchained()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ERC165Upgradeable.__ERC165_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#27-28) is not in mixedCase\n",
+ "markdown": "Function [ERC165Upgradeable.__ERC165_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L27-L28) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L27-L28",
+ "id": "85d4e6d503145e70d4f27b51c03c2aecc7efa120329a4cf27b34d33cd9a2c942",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__Context_init_unchained",
+ "source_mapping": {
+ "start": 776,
+ "length": 69,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ContextUpgradeable",
+ "source_mapping": {
+ "start": 651,
+ "length": 693,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__Context_init_unchained()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ContextUpgradeable.__Context_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#21-22) is not in mixedCase\n",
+ "markdown": "Function [ContextUpgradeable.__Context_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L21-L22) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L21-L22",
+ "id": "8629c89abc9e568d22212182eb038287fc4f676ff34add41294173d644b25bcb",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_deadline",
+ "source_mapping": {
+ "start": 5281,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 145
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline (lib/vault-v2/src/ReaperSwapper.sol#145) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L145) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L145",
+ "id": "878d7b0eca406e6625010c6a919e75fb6d1f56a2908909128dca18ae1aaecf5c",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_swapProps",
+ "source_mapping": {
+ "start": 1131,
+ "length": 27,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 43
+ ],
+ "starting_column": 30,
+ "ending_column": 57
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "configSwapProps",
+ "source_mapping": {
+ "start": 1106,
+ "length": 116,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 43,
+ 44,
+ 45
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "SwapHelper",
+ "source_mapping": {
+ "start": 514,
+ "length": 3269,
+ "filename_relative": "src/helpers/SwapHelper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
+ "filename_short": "src/helpers/SwapHelper.sol",
+ "is_dependency": false,
+ "lines": [
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "configSwapProps(SwapProps)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter SwapHelper.configSwapProps(SwapProps)._swapProps (src/helpers/SwapHelper.sol#43) is not in mixedCase\n",
+ "markdown": "Parameter [SwapHelper.configSwapProps(SwapProps)._swapProps](src/helpers/SwapHelper.sol#L43) is not in mixedCase\n",
+ "first_markdown_element": "src/helpers/SwapHelper.sol#L43",
+ "id": "898750aa30b4631541b715c67809ca54c02372e4e0ccd20753b470f5b41b4782",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_poolID",
+ "source_mapping": {
+ "start": 3947,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 105
+ ],
+ "starting_column": 87,
+ "ending_column": 102
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateBalSwapPoolID",
+ "source_mapping": {
+ "start": 3865,
+ "length": 246,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateBalSwapPoolID(address,address,address,bytes32)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._poolID (lib/vault-v2/src/ReaperSwapper.sol#105) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._poolID](lib/vault-v2/src/ReaperSwapper.sol#L105) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L105",
+ "id": "89a0bb2c6892a624dc788cb6e8e64769ea25541c09632a7ea8008ed5bdc9a7ae",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 5136,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 140
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._from (lib/vault-v2/src/ReaperSwapper.sol#140) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._from](lib/vault-v2/src/ReaperSwapper.sol#L140) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L140",
+ "id": "8b2e8470f4f721b3150a1c59a12f20d495a62229f08f57ad6a1241fb1e3e63bc",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_vault",
+ "source_mapping": {
+ "start": 3931,
+ "length": 14,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 105
+ ],
+ "starting_column": 71,
+ "ending_column": 85
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateBalSwapPoolID",
+ "source_mapping": {
+ "start": 3865,
+ "length": 246,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateBalSwapPoolID(address,address,address,bytes32)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._vault (lib/vault-v2/src/ReaperSwapper.sol#105) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._vault](lib/vault-v2/src/ReaperSwapper.sol#L105) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L105",
+ "id": "8f302417a05d05dface61ffead3912df0c2e77cae9168156e4852a782f626cc8",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__UUPSUpgradeable_init_unchained",
+ "source_mapping": {
+ "start": 1115,
+ "length": 77,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UUPSUpgradeable",
+ "source_mapping": {
+ "start": 928,
+ "length": 3829,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__UUPSUpgradeable_init_unchained()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function UUPSUpgradeable.__UUPSUpgradeable_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#26-27) is not in mixedCase\n",
+ "markdown": "Function [UUPSUpgradeable.__UUPSUpgradeable_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L26-L27) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L26-L27",
+ "id": "8ff7b5e08e6880768da974c4a296eba4ffa484881ed81786ba37c7da4749321d",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__gap",
+ "source_mapping": {
+ "start": 13611,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 400
+ ],
+ "starting_column": 5,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC20Upgradeable",
+ "source_mapping": {
+ "start": 1480,
+ "length": 12159,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable ERC20Upgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#400) is not in mixedCase\n",
+ "markdown": "Variable [ERC20Upgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L400) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L400",
+ "id": "95b4f7519d8168eaf429605544f5939d63826ecdfb9fab9329b6802cbd21db77",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 5986,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 164
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5958,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._from (lib/vault-v2/src/ReaperSwapper.sol#164) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._from](lib/vault-v2/src/ReaperSwapper.sol#L164) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L164",
+ "id": "965c50bc3502579539b688717ecbda0b6b92a00dcefa592b05ba22d7d6f5dc7a",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 7174,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 200
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 7104,
+ "length": 296,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._amount (lib/vault-v2/src/ReaperSwapper.sol#200) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._amount](lib/vault-v2/src/ReaperSwapper.sol#L200) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L200",
+ "id": "96acd18fdb2f87cce682dd1aeb785807b87ade0805721541764b40e73f657d86",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 9575,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 270
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9427,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._router (lib/vault-v2/src/ReaperSwapper.sol#270) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._router](lib/vault-v2/src/ReaperSwapper.sol#L270) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L270",
+ "id": "97ed856a66a6a89065949ce6d4ad5806ed079684926be9350c3dba02a3a1e5ff",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "DOMAIN_SEPARATOR",
+ "source_mapping": {
+ "start": 2189,
+ "length": 60,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "is_dependency": true,
+ "lines": [
+ 59
+ ],
+ "starting_column": 5,
+ "ending_column": 65
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "IERC20Permit",
+ "source_mapping": {
+ "start": 620,
+ "length": 1631,
+ "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "DOMAIN_SEPARATOR()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function IERC20Permit.DOMAIN_SEPARATOR() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#59) is not in mixedCase\n",
+ "markdown": "Function [IERC20Permit.DOMAIN_SEPARATOR()](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L59) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L59",
+ "id": "9a77c79a6cf40e2f151723e49ba63d30100a56d0f72688e58cdf4a550a6ff843",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_guardian",
+ "source_mapping": {
+ "start": 3089,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 82
+ ],
+ "starting_column": 56,
+ "ending_column": 73
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "initialize",
+ "source_mapping": {
+ "start": 3038,
+ "length": 562,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "initialize(address[],address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.initialize(address[],address,address)._guardian (lib/vault-v2/src/ReaperSwapper.sol#82) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.initialize(address[],address,address)._guardian](lib/vault-v2/src/ReaperSwapper.sol#L82) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L82",
+ "id": "9efc132e350756a6688fb06dfbdfdae938d3f187fef09bcfb67ada2c12c55401",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 4182,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 113
+ ],
+ "starting_column": 70,
+ "ending_column": 85
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateVeloSwapPath",
+ "source_mapping": {
+ "start": 4117,
+ "length": 261,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateVeloSwapPath(address,address,address,IVeloRouter.Route[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._router (lib/vault-v2/src/ReaperSwapper.sol#113) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._router](lib/vault-v2/src/ReaperSwapper.sol#L113) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L113",
+ "id": "a06f43ce8e70ce834616ed15245c980a2b8ec50e858262bb670d47c66306e2ea",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__AccessControl_init",
+ "source_mapping": {
+ "start": 2025,
+ "length": 65,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 51,
+ 52
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlUpgradeable",
+ "source_mapping": {
+ "start": 1893,
+ "length": 6829,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__AccessControl_init()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function AccessControlUpgradeable.__AccessControl_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#51-52) is not in mixedCase\n",
+ "markdown": "Function [AccessControlUpgradeable.__AccessControl_init()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L51-L52) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L51-L52",
+ "id": "a333fa38b5f96027543bfa2131aac6765059644ab6c7dae2f8d357b5fbaa2f2b",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 6807,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 187
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6781,
+ "length": 317,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._from (lib/vault-v2/src/ReaperSwapper.sol#187) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._from](lib/vault-v2/src/ReaperSwapper.sol#L187) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L187",
+ "id": "a7cafc58416d57ab9a4fcb99a3a7f30607a640b40bcf1d16a52915f7849094bc",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 6315,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 175
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._to (lib/vault-v2/src/ReaperSwapper.sol#175) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._to](lib/vault-v2/src/ReaperSwapper.sol#L175) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L175",
+ "id": "ab2600b9834d875833f35b5332d32ef81c0bb2ac24c935e3830ff416c17fb322",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_isExercise",
+ "source_mapping": {
+ "start": 5123,
+ "length": 16,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 119
+ ],
+ "starting_column": 52,
+ "ending_column": 68
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "setExerciseContract",
+ "source_mapping": {
+ "start": 5076,
+ "length": 200,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "setExerciseContract(address,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter OptionsToken.setExerciseContract(address,bool)._isExercise (src/OptionsToken.sol#119) is not in mixedCase\n",
+ "markdown": "Parameter [OptionsToken.setExerciseContract(address,bool)._isExercise](src/OptionsToken.sol#L119) is not in mixedCase\n",
+ "first_markdown_element": "src/OptionsToken.sol#L119",
+ "id": "abd2279ff0a0f0ddae64db4fff77259f7bae0530f6d0414a9c41d6ac351ae4c7",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_timeout",
+ "source_mapping": {
+ "start": 4755,
+ "length": 16,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 131
+ ],
+ "starting_column": 73,
+ "ending_column": 89
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateTokenAggregator",
+ "source_mapping": {
+ "start": 4687,
+ "length": 415,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateTokenAggregator(address,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateTokenAggregator(address,address,uint256)._timeout (lib/vault-v2/src/ReaperSwapper.sol#131) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateTokenAggregator(address,address,uint256)._timeout](lib/vault-v2/src/ReaperSwapper.sol#L131) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L131",
+ "id": "adab57ba054783590c54847af448ea7811b9803f2da1801c367d97d4deb0bc85",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "INITIAL_DOMAIN_SEPARATOR",
+ "source_mapping": {
+ "start": 1693,
+ "length": 51,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 43
+ ],
+ "starting_column": 5,
+ "ending_column": 56
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC20",
+ "source_mapping": {
+ "start": 474,
+ "length": 6337,
+ "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
+ "filename_short": "lib/solmate/src/tokens/ERC20.sol",
+ "is_dependency": true,
+ "lines": [
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable ERC20.INITIAL_DOMAIN_SEPARATOR (lib/solmate/src/tokens/ERC20.sol#43) is not in mixedCase\n",
+ "markdown": "Variable [ERC20.INITIAL_DOMAIN_SEPARATOR](lib/solmate/src/tokens/ERC20.sol#L43) is not in mixedCase\n",
+ "first_markdown_element": "lib/solmate/src/tokens/ERC20.sol#L43",
+ "id": "ae4180282f395232843a4e6b84163b4ee953cbbcb818ea7075ed05f2dcf646c6",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 5701,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 155
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5629,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._amount (lib/vault-v2/src/ReaperSwapper.sol#155) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._amount](lib/vault-v2/src/ReaperSwapper.sol#L155) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L155",
+ "id": "af59693c738df45d04682c8e690c3cb70b1f7ae4cd02b04ef88723c8512974ff",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 7502,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 211
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#211) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L211) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L211",
+ "id": "b0d802f1835a6a50141a3c3cad24ceedce32ed7aafecd16fb3799ad01e781111",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 9126,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 255
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9098,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._from (lib/vault-v2/src/ReaperSwapper.sol#255) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._from](lib/vault-v2/src/ReaperSwapper.sol#L255) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L255",
+ "id": "b466af7b150b5c595dbea4172eb5b58058eac1319629786026c6c34991a529b8",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenA",
+ "source_mapping": {
+ "start": 729,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20
+ ],
+ "starting_column": 29,
+ "ending_column": 44
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "uniV3SwapPaths",
+ "source_mapping": {
+ "start": 705,
+ "length": 214,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniV3Mixin",
+ "source_mapping": {
+ "start": 269,
+ "length": 4771,
+ "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "uniV3SwapPaths(address,address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter UniV3Mixin.uniV3SwapPaths(address,address,address)._tokenA (lib/vault-v2/src/mixins/UniV3Mixin.sol#20) is not in mixedCase\n",
+ "markdown": "Parameter [UniV3Mixin.uniV3SwapPaths(address,address,address)._tokenA](lib/vault-v2/src/mixins/UniV3Mixin.sol#L20) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L20",
+ "id": "b516ba65e9d50df8c481a3d485f057d04276e12596a303c1c3b03bcedea2fa4a",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 7153,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 199
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 7104,
+ "length": 296,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._to (lib/vault-v2/src/ReaperSwapper.sol#199) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._to](lib/vault-v2/src/ReaperSwapper.sol#L199) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L199",
+ "id": "b6c8ae681b26b155c022f33fbf1b061e5f28765aae067bd89844326397fc87a2",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__gap",
+ "source_mapping": {
+ "start": 3008,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 76
+ ],
+ "starting_column": 5,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlEnumerableUpgradeable",
+ "source_mapping": {
+ "start": 431,
+ "length": 2605,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable AccessControlEnumerableUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#76) is not in mixedCase\n",
+ "markdown": "Variable [AccessControlEnumerableUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L76) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L76",
+ "id": "bbb16c0dd495dfcbe2efc75d79bdea18fad2424d763b5456917a4f9ba68e140c",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__gap",
+ "source_mapping": {
+ "start": 1491,
+ "length": 25,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 41
+ ],
+ "starting_column": 5,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC165Upgradeable",
+ "source_mapping": {
+ "start": 783,
+ "length": 736,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable ERC165Upgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#41) is not in mixedCase\n",
+ "markdown": "Variable [ERC165Upgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L41) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L41",
+ "id": "bdc2d8e808ddb749222cd3ed859af1782e2e982c72c8164d541233f50dec05af",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__Ownable_init_unchained",
+ "source_mapping": {
+ "start": 1104,
+ "length": 111,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 33,
+ 34,
+ 35
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OwnableUpgradeable",
+ "source_mapping": {
+ "start": 708,
+ "length": 2445,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__Ownable_init_unchained()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function OwnableUpgradeable.__Ownable_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#33-35) is not in mixedCase\n",
+ "markdown": "Function [OwnableUpgradeable.__Ownable_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L33-L35) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L33-L35",
+ "id": "be1436ad6e7661ea17048b9b8432553bbd982a53256f0d44f0dddb582fee6a05",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_deadline",
+ "source_mapping": {
+ "start": 6436,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 179
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline (lib/vault-v2/src/ReaperSwapper.sol#179) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L179) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L179",
+ "id": "be279e16a979449d615e01c5f1b9240a112c2c4181f5d3ab033a2b58fa8bb14f",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 7456,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 209
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._to (lib/vault-v2/src/ReaperSwapper.sol#209) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._to](lib/vault-v2/src/ReaperSwapper.sol#L209) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L209",
+ "id": "bfd676c8349dabb5b01a6c154d45b647f52d93cc00f979b6c8878784a7b7eb77",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "__self",
+ "source_mapping": {
+ "start": 1289,
+ "length": 48,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 29
+ ],
+ "starting_column": 5,
+ "ending_column": 53
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UUPSUpgradeable",
+ "source_mapping": {
+ "start": 928,
+ "length": 3829,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "variable",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Variable UUPSUpgradeable.__self (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#29) is not in mixedCase\n",
+ "markdown": "Variable [UUPSUpgradeable.__self](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L29) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L29",
+ "id": "bfe49cc9b28397f73932ef963ff532a1f0ce51ddd0b26dae025d661602049864",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 9499,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 268
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9427,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._amount (lib/vault-v2/src/ReaperSwapper.sol#268) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._amount](lib/vault-v2/src/ReaperSwapper.sol#L268) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L268",
+ "id": "c189e395c786c3b0719350511e8880bfffe15db6eea553df77bff74bf366946e",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__ERC1967Upgrade_init",
+ "source_mapping": {
+ "start": 749,
+ "length": 66,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 22,
+ 23
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC1967UpgradeUpgradeable",
+ "source_mapping": {
+ "start": 661,
+ "length": 6867,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__ERC1967Upgrade_init()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#22-23) is not in mixedCase\n",
+ "markdown": "Function [ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L22-L23) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L22-L23",
+ "id": "c342a80969d569f908a2cc5e14462dacdf5979e90597c95494a7518ab22ac361",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 7477,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 210
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount (lib/vault-v2/src/ReaperSwapper.sol#210) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount](lib/vault-v2/src/ReaperSwapper.sol#L210) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L210",
+ "id": "c36595904f67f151274482257e034c6d4e99f7a12addf42daff19757016f42ae",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__AccessControlEnumerable_init_unchained",
+ "source_mapping": {
+ "start": 651,
+ "length": 85,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 18,
+ 19
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlEnumerableUpgradeable",
+ "source_mapping": {
+ "start": 431,
+ "length": 2605,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__AccessControlEnumerable_init_unchained()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#18-19) is not in mixedCase\n",
+ "markdown": "Function [AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L18-L19) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L18-L19",
+ "id": "c5433a1d1949676dc711bcf3160f2439533f345ad44396e69fa216e8565cad1e",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_feeBPS",
+ "source_mapping": {
+ "start": 2216,
+ "length": 24,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 57
+ ],
+ "starting_column": 55,
+ "ending_column": 79
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "setFees",
+ "source_mapping": {
+ "start": 2166,
+ "length": 145,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 57,
+ 58,
+ 59
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "BaseExercise",
+ "source_mapping": {
+ "start": 432,
+ "length": 3936,
+ "filename_relative": "src/exercise/BaseExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
+ "filename_short": "src/exercise/BaseExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "setFees(address[],uint256[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter BaseExercise.setFees(address[],uint256[])._feeBPS (src/exercise/BaseExercise.sol#57) is not in mixedCase\n",
+ "markdown": "Parameter [BaseExercise.setFees(address[],uint256[])._feeBPS](src/exercise/BaseExercise.sol#L57) is not in mixedCase\n",
+ "first_markdown_element": "src/exercise/BaseExercise.sol#L57",
+ "id": "c5acfac490821733b96f3b7cb66bd64210e4d6f82651bab766aab5209e8c5324",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "UNSAFE_swapExactTokensForTokens",
+ "source_mapping": {
+ "start": 12674,
+ "length": 196,
+ "filename_relative": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "is_dependency": true,
+ "lines": [
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299
+ ],
+ "starting_column": 5,
+ "ending_column": 43
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "IVeloRouter",
+ "source_mapping": {
+ "start": 227,
+ "length": 20282,
+ "filename_relative": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
+ "is_dependency": true,
+ "lines": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "UNSAFE_swapExactTokensForTokens(uint256[],IVeloRouter.Route[],address,uint256)"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function IVeloRouter.UNSAFE_swapExactTokensForTokens(uint256[],IVeloRouter.Route[],address,uint256) (lib/vault-v2/src/interfaces/IVeloRouter.sol#294-299) is not in mixedCase\n",
+ "markdown": "Function [IVeloRouter.UNSAFE_swapExactTokensForTokens(uint256[],IVeloRouter.Route[],address,uint256)](lib/vault-v2/src/interfaces/IVeloRouter.sol#L294-L299) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/interfaces/IVeloRouter.sol#L294-L299",
+ "id": "c84ed24d6caec5fb3fc2d28fc3e2c44242050d098a6626fd7b69c847d5d534a6",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 7433,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 208
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._from (lib/vault-v2/src/ReaperSwapper.sol#208) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._from](lib/vault-v2/src/ReaperSwapper.sol#L208) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L208",
+ "id": "ca06b4f3961de5f5ca9c9c964e4b25c5f6fb7d6cf7cc27fe3001bbb89c74675f",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__UUPSUpgradeable_init",
+ "source_mapping": {
+ "start": 1042,
+ "length": 67,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 23,
+ 24
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UUPSUpgradeable",
+ "source_mapping": {
+ "start": 928,
+ "length": 3829,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__UUPSUpgradeable_init()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function UUPSUpgradeable.__UUPSUpgradeable_init() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#23-24) is not in mixedCase\n",
+ "markdown": "Function [UUPSUpgradeable.__UUPSUpgradeable_init()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L23-L24) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L23-L24",
+ "id": "cb76c4a025b81b1d34120a39f72a25e8426de1c2f55fbd29d6a5eb8442335219",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 8302,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 233
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 8252,
+ "length": 300,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._to (lib/vault-v2/src/ReaperSwapper.sol#233) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._to](lib/vault-v2/src/ReaperSwapper.sol#L233) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L233",
+ "id": "cc2c2d13c5fc96bbb8c8f183cd598ce40909b38213e3148d1f4410feedcdfbf9",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_i",
+ "source_mapping": {
+ "start": 302,
+ "length": 10,
+ "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "is_dependency": true,
+ "lines": [
+ 11
+ ],
+ "starting_column": 27,
+ "ending_column": 37
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "uncheckedInc",
+ "source_mapping": {
+ "start": 280,
+ "length": 130,
+ "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "is_dependency": true,
+ "lines": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperMathUtils",
+ "source_mapping": {
+ "start": 63,
+ "length": 349,
+ "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
+ "is_dependency": true,
+ "lines": [
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "uncheckedInc(uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperMathUtils.uncheckedInc(uint256)._i (lib/vault-v2/src/libraries/ReaperMathUtils.sol#11) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperMathUtils.uncheckedInc(uint256)._i](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L11) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/ReaperMathUtils.sol#L11",
+ "id": "cd8dd23a87dae4ac1b0ac22762f0d6ca9a11107161eb11ecc8559a52962999da",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 6830,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 188
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6781,
+ "length": 317,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._to (lib/vault-v2/src/ReaperSwapper.sol#188) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._to](lib/vault-v2/src/ReaperSwapper.sol#L188) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L188",
+ "id": "ce9e771782f69e8d3da763e8d0e5d55510b3673e5af35d5030cd3e1f607f698e",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_deadline",
+ "source_mapping": {
+ "start": 6951,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 192
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6781,
+ "length": 317,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._deadline (lib/vault-v2/src/ReaperSwapper.sol#192) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L192) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L192",
+ "id": "d096162e89d285c6f6eacc550d68dd7057cd03ed9fdd2fbee53da1dacff60853",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 8348,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 235
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 8252,
+ "length": 300,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#235) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L235) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L235",
+ "id": "d400a010cfc54a36c2bbabf0d7fedd1ab9a7387ba1f4017fe16eac3e6d19092e",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_vault",
+ "source_mapping": {
+ "start": 7250,
+ "length": 14,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 202
+ ],
+ "starting_column": 9,
+ "ending_column": 23
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 7104,
+ "length": 296,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._vault (lib/vault-v2/src/ReaperSwapper.sol#202) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._vault](lib/vault-v2/src/ReaperSwapper.sol#L202) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L202",
+ "id": "d4fceacb95f86ee83b4bf85da0582077c266098f97e1ce7dbaec2b59cdcef204",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "WETH",
+ "source_mapping": {
+ "start": 153,
+ "length": 48,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "is_dependency": true,
+ "lines": [
+ 7
+ ],
+ "starting_column": 5,
+ "ending_column": 53
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "IUniswapV2Router01",
+ "source_mapping": {
+ "start": 61,
+ "length": 3950,
+ "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
+ "is_dependency": true,
+ "lines": [
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "WETH()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function IUniswapV2Router01.WETH() (lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#7) is not in mixedCase\n",
+ "markdown": "Function [IUniswapV2Router01.WETH()](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L7) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L7",
+ "id": "d51441d319d7710ff998d12e83899a9d644921d950f639a7b86fcc4ddf61e63a",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 8706,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 246
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._router (lib/vault-v2/src/ReaperSwapper.sol#246) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._router](lib/vault-v2/src/ReaperSwapper.sol#L246) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L246",
+ "id": "d6dabfed2329ec05b9b11ef9c0aa939f5f9548e1243ac69e7908749887d95f3b",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 5726,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 156
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5629,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#156) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L156) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L156",
+ "id": "dcc6a654dccf15314a4bd6d18240796b3d5a90ad0965512db30fb29fc2d69f4f",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 6055,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 167
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5958,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#167) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L167) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L167",
+ "id": "deeadcde9d8d2a903c85c3e2c9ba0e8b3609ceddae1916e3766e5c84b22c466a",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 5205,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 143
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5108,
+ "length": 515,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#143) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L143) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L143",
+ "id": "e10ef44a86a407b93bfe33cf20782ef285fd9eb4af3c33bc2e14261b516c0038",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_superAdmin",
+ "source_mapping": {
+ "start": 3108,
+ "length": 19,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 82
+ ],
+ "starting_column": 75,
+ "ending_column": 94
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "initialize",
+ "source_mapping": {
+ "start": 3038,
+ "length": 562,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "initialize(address[],address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.initialize(address[],address,address)._superAdmin (lib/vault-v2/src/ReaperSwapper.sol#82) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.initialize(address[],address,address)._superAdmin](lib/vault-v2/src/ReaperSwapper.sol#L82) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L82",
+ "id": "e1f9cb8188c7d2a47d6d3f5f2abd12779ea61cb7f5df57014d8b381dd18519f4",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 9170,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 257
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 9098,
+ "length": 323,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._amount (lib/vault-v2/src/ReaperSwapper.sol#257) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._amount](lib/vault-v2/src/ReaperSwapper.sol#L257) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L257",
+ "id": "e372392e376217b031464798d9d6768c25b19113dd6cb6674fa902715063982f",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 6292,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 174
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._from (lib/vault-v2/src/ReaperSwapper.sol#174) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._from](lib/vault-v2/src/ReaperSwapper.sol#L174) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L174",
+ "id": "e41b000f65857a61219c2dc0b5d0f4bd15cf77d9dc70e29235aac4739efc28ee",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_address",
+ "source_mapping": {
+ "start": 5105,
+ "length": 16,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 119
+ ],
+ "starting_column": 34,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "setExerciseContract",
+ "source_mapping": {
+ "start": 5076,
+ "length": 200,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 119,
+ 120,
+ 121,
+ 122
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "OptionsToken",
+ "source_mapping": {
+ "start": 691,
+ "length": 7138,
+ "filename_relative": "src/OptionsToken.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
+ "filename_short": "src/OptionsToken.sol",
+ "is_dependency": false,
+ "lines": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "setExerciseContract(address,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter OptionsToken.setExerciseContract(address,bool)._address (src/OptionsToken.sol#119) is not in mixedCase\n",
+ "markdown": "Parameter [OptionsToken.setExerciseContract(address,bool)._address](src/OptionsToken.sol#L119) is not in mixedCase\n",
+ "first_markdown_element": "src/OptionsToken.sol#L119",
+ "id": "e4c0233eb5b643def437c9c1f7c6853aa2f1fea782bfadf846c2fcb8c3819ad4",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenIn",
+ "source_mapping": {
+ "start": 3894,
+ "length": 16,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 105
+ ],
+ "starting_column": 34,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateBalSwapPoolID",
+ "source_mapping": {
+ "start": 3865,
+ "length": 246,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateBalSwapPoolID(address,address,address,bytes32)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._tokenIn (lib/vault-v2/src/ReaperSwapper.sol#105) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._tokenIn](lib/vault-v2/src/ReaperSwapper.sol#L105) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L105",
+ "id": "e4c97d884fbc8ebc6174dbb08f7148ca0d5d354bbd7673b33287963362a75fac",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 8072,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 225
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7925,
+ "length": 321,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._router (lib/vault-v2/src/ReaperSwapper.sol#225) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._router](lib/vault-v2/src/ReaperSwapper.sol#L225) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L225",
+ "id": "e7849af7604ed52e3aba5cc48333f0e4e71b99a0c0eead2614dad5ee6a834648",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 6851,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 189
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6781,
+ "length": 317,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._amount (lib/vault-v2/src/ReaperSwapper.sol#189) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._amount](lib/vault-v2/src/ReaperSwapper.sol#L189) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L189",
+ "id": "ebf15d601b456582fb3fb1f26bfd7094936b95bf6bab66e069b0c047b066a470",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__Context_init",
+ "source_mapping": {
+ "start": 711,
+ "length": 59,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 18,
+ 19
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ContextUpgradeable",
+ "source_mapping": {
+ "start": 651,
+ "length": 693,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__Context_init()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ContextUpgradeable.__Context_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#18-19) is not in mixedCase\n",
+ "markdown": "Function [ContextUpgradeable.__Context_init()](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L18-L19) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L18-L19",
+ "id": "ec47067e22967ab37ddb79c5eae4c225b0c9f1e4e15f1452db70b0a6f86103e0",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_from",
+ "source_mapping": {
+ "start": 7130,
+ "length": 13,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 198
+ ],
+ "starting_column": 9,
+ "ending_column": 22
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 7104,
+ "length": 296,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._from (lib/vault-v2/src/ReaperSwapper.sol#198) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._from](lib/vault-v2/src/ReaperSwapper.sol#L198) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L198",
+ "id": "ee09748ad580f1e17ba44ec7063a9e46e48e09f119e406c49bc6f27fbc52333c",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__AccessControlEnumerable_init",
+ "source_mapping": {
+ "start": 570,
+ "length": 75,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 15,
+ 16
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "AccessControlEnumerableUpgradeable",
+ "source_mapping": {
+ "start": 431,
+ "length": 2605,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__AccessControlEnumerable_init()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#15-16) is not in mixedCase\n",
+ "markdown": "Function [AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L15-L16) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L15-L16",
+ "id": "ef5d0800c6abeec9cf95ba22a2b5356b466e7266ac453d3ed2d8d6715e2a485d",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenOut",
+ "source_mapping": {
+ "start": 4448,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 123
+ ],
+ "starting_column": 9,
+ "ending_column": 26
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateUniV3SwapPath",
+ "source_mapping": {
+ "start": 4384,
+ "length": 297,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateUniV3SwapPath(address,address,address,UniV3SwapData)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._tokenOut (lib/vault-v2/src/ReaperSwapper.sol#123) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._tokenOut](lib/vault-v2/src/ReaperSwapper.sol#L123) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L123",
+ "id": "ef7fda16f5ed14577f83309fd8ecabd89b0ebc40bb57a21ff7f6bb30ca604ded",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 7975,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 222
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7925,
+ "length": 321,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._to (lib/vault-v2/src/ReaperSwapper.sol#222) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._to](lib/vault-v2/src/ReaperSwapper.sol#L222) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L222",
+ "id": "ef99c641c2dfab7b1d3b3387d2ee29b8c2fe143b6573293aa82a96d9e24c4ed8",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "__ERC165_init",
+ "source_mapping": {
+ "start": 862,
+ "length": 58,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 24,
+ 25
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ERC165Upgradeable",
+ "source_mapping": {
+ "start": 783,
+ "length": 736,
+ "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
+ "is_dependency": true,
+ "lines": [
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "__ERC165_init()"
+ },
+ "additional_fields": {
+ "target": "function",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Function ERC165Upgradeable.__ERC165_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#24-25) is not in mixedCase\n",
+ "markdown": "Function [ERC165Upgradeable.__ERC165_init()](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L24-L25) is not in mixedCase\n",
+ "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L24-L25",
+ "id": "f226b70c0c428d938e421293c43b68d973d744168b94b568e0deb7b189c26f50",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tryCatchActive",
+ "source_mapping": {
+ "start": 7605,
+ "length": 20,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 214
+ ],
+ "starting_column": 9,
+ "ending_column": 29
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapVelo",
+ "source_mapping": {
+ "start": 7406,
+ "length": 513,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive (lib/vault-v2/src/ReaperSwapper.sol#214) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive](lib/vault-v2/src/ReaperSwapper.sol#L214) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L214",
+ "id": "f3b862d7b6a4c0d902c5505fa61fe589c65b1853823797fa41ecacdd2d9ea250",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_to",
+ "source_mapping": {
+ "start": 8609,
+ "length": 11,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 243
+ ],
+ "starting_column": 9,
+ "ending_column": 20
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._to (lib/vault-v2/src/ReaperSwapper.sol#243) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._to](lib/vault-v2/src/ReaperSwapper.sol#L243) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L243",
+ "id": "f5ac32f324cb58d5086f8317679267d629598a093f9744b805224745cd6a4a98",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenOut",
+ "source_mapping": {
+ "start": 3912,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 105
+ ],
+ "starting_column": 52,
+ "ending_column": 69
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateBalSwapPoolID",
+ "source_mapping": {
+ "start": 3865,
+ "length": 246,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateBalSwapPoolID(address,address,address,bytes32)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._tokenOut (lib/vault-v2/src/ReaperSwapper.sol#105) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._tokenOut](lib/vault-v2/src/ReaperSwapper.sol#L105) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L105",
+ "id": "f6df1545fe7e00b5fd2a959284fe6088686751e8c7cc23f57a5cd452cf1d1e58",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_minAmountOutData",
+ "source_mapping": {
+ "start": 6361,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 177
+ ],
+ "starting_column": 9,
+ "ending_column": 50
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#177) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L177) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L177",
+ "id": "f6f24fbb241e4df38de4d7a6812d9589f5ef7dfbf4d14334b09a01a8f35c5d51",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_vault",
+ "source_mapping": {
+ "start": 6412,
+ "length": 14,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 178
+ ],
+ "starting_column": 9,
+ "ending_column": 23
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._vault (lib/vault-v2/src/ReaperSwapper.sol#178) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._vault](lib/vault-v2/src/ReaperSwapper.sol#L178) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L178",
+ "id": "f95934574f1bf834e84810d59234ad1a34504a4e9db16b4ca5622230997341d5",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_strategists",
+ "source_mapping": {
+ "start": 3058,
+ "length": 29,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 82
+ ],
+ "starting_column": 25,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "initialize",
+ "source_mapping": {
+ "start": 3038,
+ "length": 562,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "initialize(address[],address,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.initialize(address[],address,address)._strategists (lib/vault-v2/src/ReaperSwapper.sol#82) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.initialize(address[],address,address)._strategists](lib/vault-v2/src/ReaperSwapper.sol#L82) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L82",
+ "id": "f96d266d8b1835f94a34c648dc6724dfc7f543cfa8fa4a7e942b121681eab748",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_router",
+ "source_mapping": {
+ "start": 6106,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 168
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV2",
+ "source_mapping": {
+ "start": 5958,
+ "length": 302,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._router (lib/vault-v2/src/ReaperSwapper.sol#168) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._router](lib/vault-v2/src/ReaperSwapper.sol#L168) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L168",
+ "id": "fa6dcd2f29fbd832c383ff7357c474e98aba7ad3fe37aa86aa8c26cf32c98cb8",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tryCatchActive",
+ "source_mapping": {
+ "start": 6463,
+ "length": 20,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 180
+ ],
+ "starting_column": 9,
+ "ending_column": 29
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6266,
+ "length": 509,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive (lib/vault-v2/src/ReaperSwapper.sol#180) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive](lib/vault-v2/src/ReaperSwapper.sol#L180) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L180",
+ "id": "fe29d9bfd86c06851a2a3e1b3c0db25699abadca8db8b78c71ae875293417d86",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_instantExitFee",
+ "source_mapping": {
+ "start": 6185,
+ "length": 23,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 168
+ ],
+ "starting_column": 32,
+ "ending_column": 55
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "setInstantExitFee",
+ "source_mapping": {
+ "start": 6158,
+ "length": 123,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 168,
+ 169,
+ 170
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "DiscountExercise",
+ "source_mapping": {
+ "start": 1052,
+ "length": 9969,
+ "filename_relative": "src/exercise/DiscountExercise.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
+ "filename_short": "src/exercise/DiscountExercise.sol",
+ "is_dependency": false,
+ "lines": [
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "setInstantExitFee(uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter DiscountExercise.setInstantExitFee(uint256)._instantExitFee (src/exercise/DiscountExercise.sol#168) is not in mixedCase\n",
+ "markdown": "Parameter [DiscountExercise.setInstantExitFee(uint256)._instantExitFee](src/exercise/DiscountExercise.sol#L168) is not in mixedCase\n",
+ "first_markdown_element": "src/exercise/DiscountExercise.sol#L168",
+ "id": "ff1617a3413fc4e31072073ea6fc5e0e9bf4ead3476a5cb3e755d52d77461b93",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_tokenOut",
+ "source_mapping": {
+ "start": 4163,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 113
+ ],
+ "starting_column": 51,
+ "ending_column": 68
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "updateVeloSwapPath",
+ "source_mapping": {
+ "start": 4117,
+ "length": 261,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "updateVeloSwapPath(address,address,address,IVeloRouter.Route[])"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._tokenOut (lib/vault-v2/src/ReaperSwapper.sol#113) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._tokenOut](lib/vault-v2/src/ReaperSwapper.sol#L113) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L113",
+ "id": "ff85b7c367841884a8674d678ffff63e31caeb488f05d941ec34479fd6baf50c",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_vault",
+ "source_mapping": {
+ "start": 6927,
+ "length": 14,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 191
+ ],
+ "starting_column": 9,
+ "ending_column": 23
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapBal",
+ "source_mapping": {
+ "start": 6781,
+ "length": 317,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._vault (lib/vault-v2/src/ReaperSwapper.sol#191) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._vault](lib/vault-v2/src/ReaperSwapper.sol#L191) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L191",
+ "id": "ffc2ede031c84d632d708b92ea1e8bcb081c69066ff3fcc008d2e6cd01e71788",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "_amount",
+ "source_mapping": {
+ "start": 8630,
+ "length": 15,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 244
+ ],
+ "starting_column": 9,
+ "ending_column": 24
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "swapUniV3",
+ "source_mapping": {
+ "start": 8558,
+ "length": 534,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ReaperSwapper",
+ "source_mapping": {
+ "start": 705,
+ "length": 19366,
+ "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
+ "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
+ "is_dependency": true,
+ "lines": [
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
+ }
+ }
+ },
+ "additional_fields": {
+ "target": "parameter",
+ "convention": "mixedCase"
+ }
+ }
+ ],
+ "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount (lib/vault-v2/src/ReaperSwapper.sol#244) is not in mixedCase\n",
+ "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount](lib/vault-v2/src/ReaperSwapper.sol#L244) is not in mixedCase\n",
+ "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L244",
+ "id": "ffe58a8a038564f540670c2f6b6c6fa52d43784115d341afa1eba179df2efe8b",
+ "check": "naming-convention",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "! y_sqrt_asm_0 < 0x1000000000000000000",
+ "source_mapping": {
+ "start": 6558,
+ "length": 119,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 180,
+ 181,
+ 182,
+ 183
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:\n\t- ! y_sqrt_asm_0 < 0x1000000000000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#180-183)\n",
+ "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses literals with too many digits:\n\t- [! y_sqrt_asm_0 < 0x1000000000000000000](lib/solmate/src/utils/FixedPointMathLib.sol#L180-L183)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
+ "id": "0a819fb5f92a6f6a7948d6198a20a71e9693691c915fd452e5b41729e13b3356",
+ "check": "too-many-digits",
+ "impact": "Informational",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "! y_sqrt_asm_0 < 0x10000000000000000000000000000000000",
+ "source_mapping": {
+ "start": 6409,
+ "length": 136,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 176,
+ 177,
+ 178,
+ 179
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:\n\t- ! y_sqrt_asm_0 < 0x10000000000000000000000000000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#176-179)\n",
+ "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses literals with too many digits:\n\t- [! y_sqrt_asm_0 < 0x10000000000000000000000000000000000](lib/solmate/src/utils/FixedPointMathLib.sol#L176-L179)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
+ "id": "1356e20c62f39f7e407734298d046498a04468c6b830d2e9f2d11b012ceb8af6",
+ "check": "too-many-digits",
+ "impact": "Informational",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "! y_sqrt_asm_0 < 0x10000000000",
+ "source_mapping": {
+ "start": 6690,
+ "length": 111,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 184,
+ 185,
+ 186,
+ 187
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:\n\t- ! y_sqrt_asm_0 < 0x10000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#184-187)\n",
+ "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses literals with too many digits:\n\t- [! y_sqrt_asm_0 < 0x10000000000](lib/solmate/src/utils/FixedPointMathLib.sol#L184-L187)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
+ "id": "4547466ed7b7e6105f203a76bcd6ab35e0154e0fc16f7c2ed0cf4f753cbcbb6d",
+ "check": "too-many-digits",
+ "impact": "Informational",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "ratio = 0x100000000000000000000000000000000",
+ "source_mapping": {
+ "start": 1659,
+ "length": 141,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 31,
+ 32,
+ 33
+ ],
+ "starting_column": 13,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "getSqrtRatioAtTick",
+ "source_mapping": {
+ "start": 1385,
+ "length": 2759,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "TickMath",
+ "source_mapping": {
+ "start": 305,
+ "length": 9112,
+ "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
+ "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "getSqrtRatioAtTick(int24)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) uses literals with too many digits:\n\t- ratio = 0x100000000000000000000000000000000 (lib/v3-core/contracts/libraries/TickMath.sol#31-33)\n",
+ "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) uses literals with too many digits:\n\t- [ratio = 0x100000000000000000000000000000000](lib/v3-core/contracts/libraries/TickMath.sol#L31-L33)\n",
+ "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
+ "id": "756616de9aca12ab02acf2bbcd459f0074cea7de1b8fbd815a63cf4473e1d454",
+ "check": "too-many-digits",
+ "impact": "Informational",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 373,
+ "length": 1221,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Babylonian",
+ "source_mapping": {
+ "start": 201,
+ "length": 1395,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "xx >= 0x100000000000000000000000000000000",
+ "source_mapping": {
+ "start": 697,
+ "length": 41,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 18
+ ],
+ "starting_column": 13,
+ "ending_column": 54
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 373,
+ "length": 1221,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Babylonian",
+ "source_mapping": {
+ "start": 201,
+ "length": 1395,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Babylonian.sqrt(uint256) (lib/vault-v2/src/libraries/Babylonian.sol#10-54) uses literals with too many digits:\n\t- xx >= 0x100000000000000000000000000000000 (lib/vault-v2/src/libraries/Babylonian.sol#18)\n",
+ "markdown": "[Babylonian.sqrt(uint256)](lib/vault-v2/src/libraries/Babylonian.sol#L10-L54) uses literals with too many digits:\n\t- [xx >= 0x100000000000000000000000000000000](lib/vault-v2/src/libraries/Babylonian.sol#L18)\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/Babylonian.sol#L10-L54",
+ "id": "a0fba3455384ac1e6d71c40190239592f39a24734f29beb5951cfa0d1eac9cca",
+ "check": "too-many-digits",
+ "impact": "Informational",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 373,
+ "length": 1221,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Babylonian",
+ "source_mapping": {
+ "start": 201,
+ "length": 1395,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "xx >= 0x10000000000000000",
+ "source_mapping": {
+ "start": 810,
+ "length": 25,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 22
+ ],
+ "starting_column": 13,
+ "ending_column": 38
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 373,
+ "length": 1221,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Babylonian",
+ "source_mapping": {
+ "start": 201,
+ "length": 1395,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Babylonian.sqrt(uint256) (lib/vault-v2/src/libraries/Babylonian.sol#10-54) uses literals with too many digits:\n\t- xx >= 0x10000000000000000 (lib/vault-v2/src/libraries/Babylonian.sol#22)\n",
+ "markdown": "[Babylonian.sqrt(uint256)](lib/vault-v2/src/libraries/Babylonian.sol#L10-L54) uses literals with too many digits:\n\t- [xx >= 0x10000000000000000](lib/vault-v2/src/libraries/Babylonian.sol#L22)\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/Babylonian.sol#L10-L54",
+ "id": "e5cea88aa35e144390464a50cd74e5ef0814fa17832eaacde7698aa0a1c5c98f",
+ "check": "too-many-digits",
+ "impact": "Informational",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 373,
+ "length": 1221,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Babylonian",
+ "source_mapping": {
+ "start": 201,
+ "length": 1395,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "xx >= 0x100000000",
+ "source_mapping": {
+ "start": 906,
+ "length": 17,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 26
+ ],
+ "starting_column": 13,
+ "ending_column": 30
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 373,
+ "length": 1221,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "Babylonian",
+ "source_mapping": {
+ "start": 201,
+ "length": 1395,
+ "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
+ "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "Babylonian.sqrt(uint256) (lib/vault-v2/src/libraries/Babylonian.sol#10-54) uses literals with too many digits:\n\t- xx >= 0x100000000 (lib/vault-v2/src/libraries/Babylonian.sol#26)\n",
+ "markdown": "[Babylonian.sqrt(uint256)](lib/vault-v2/src/libraries/Babylonian.sol#L10-L54) uses literals with too many digits:\n\t- [xx >= 0x100000000](lib/vault-v2/src/libraries/Babylonian.sol#L26)\n",
+ "first_markdown_element": "lib/vault-v2/src/libraries/Babylonian.sol#L10-L54",
+ "id": "e8d06912ce8ea156a58638083700c8eb9591c4bd2968b12ff93038bc775de738",
+ "check": "too-many-digits",
+ "impact": "Informational",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [
+ {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ },
+ {
+ "type": "node",
+ "name": "! y_sqrt_asm_0 < 0x1000000",
+ "source_mapping": {
+ "start": 6814,
+ "length": 106,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 188,
+ 189,
+ 190,
+ 191
+ ],
+ "starting_column": 13,
+ "ending_column": 14
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "function",
+ "name": "sqrt",
+ "source_mapping": {
+ "start": 5746,
+ "length": 3396,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227
+ ],
+ "starting_column": 5,
+ "ending_column": 6
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "FixedPointMathLib",
+ "source_mapping": {
+ "start": 341,
+ "length": 9712,
+ "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
+ "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
+ "is_dependency": true,
+ "lines": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ },
+ "signature": "sqrt(uint256)"
+ }
+ }
+ }
+ }
+ ],
+ "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:\n\t- ! y_sqrt_asm_0 < 0x1000000 (lib/solmate/src/utils/FixedPointMathLib.sol#188-191)\n",
+ "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses literals with too many digits:\n\t- [! y_sqrt_asm_0 < 0x1000000](lib/solmate/src/utils/FixedPointMathLib.sol#L188-L191)\n",
+ "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
+ "id": "f28694d3e6e5fcf9a2f3366378ebef6a30892b6367b9ade09d2faca0f8828b17",
+ "check": "too-many-digits",
+ "impact": "Informational",
+ "confidence": "Medium"
+ },
+ {
+ "elements": [],
+ "description": "The following unused import(s) in src/helpers/SwapHelper.sol should be removed:\n\t-import \"forge-std/console.sol\"; (src/helpers/SwapHelper.sol#9)\n",
+ "markdown": "The following unused import(s) in src/helpers/SwapHelper.sol should be removed:\n\t-import \"forge-std/console.sol\"; (src/helpers/SwapHelper.sol#9)\n",
+ "first_markdown_element": "",
+ "id": "6f50be6825ed38206d4fb51dd6876afc1476363bb114f0ef2ebff4c45cde45e0",
+ "check": "unused-import",
+ "impact": "Informational",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "isToken0",
+ "source_mapping": {
+ "start": 2441,
+ "length": 20,
+ "filename_relative": "src/oracles/ThenaOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/ThenaOracle.sol",
+ "filename_short": "src/oracles/ThenaOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 60
+ ],
+ "starting_column": 5,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "ThenaOracle",
+ "source_mapping": {
+ "start": 587,
+ "length": 5996,
+ "filename_relative": "src/oracles/ThenaOracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/ThenaOracle.sol",
+ "filename_short": "src/oracles/ThenaOracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ }
+ }
+ ],
+ "description": "ThenaOracle.isToken0 (src/oracles/ThenaOracle.sol#60) should be immutable \n",
+ "markdown": "[ThenaOracle.isToken0](src/oracles/ThenaOracle.sol#L60) should be immutable \n",
+ "first_markdown_element": "src/oracles/ThenaOracle.sol#L60",
+ "id": "e0b61928eb6070b87873ce63ac8b19811c80ba5bc00753317605d06c2cac17ae",
+ "check": "immutable-states",
+ "impact": "Optimization",
+ "confidence": "High"
+ },
+ {
+ "elements": [
+ {
+ "type": "variable",
+ "name": "isToken0",
+ "source_mapping": {
+ "start": 2701,
+ "length": 20,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 65
+ ],
+ "starting_column": 5,
+ "ending_column": 25
+ },
+ "type_specific_fields": {
+ "parent": {
+ "type": "contract",
+ "name": "UniswapV3Oracle",
+ "source_mapping": {
+ "start": 729,
+ "length": 6210,
+ "filename_relative": "src/oracles/UniswapV3Oracle.sol",
+ "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
+ "filename_short": "src/oracles/UniswapV3Oracle.sol",
+ "is_dependency": false,
+ "lines": [
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155
+ ],
+ "starting_column": 1,
+ "ending_column": 2
+ }
+ }
+ }
+ }
+ ],
+ "description": "UniswapV3Oracle.isToken0 (src/oracles/UniswapV3Oracle.sol#65) should be immutable \n",
+ "markdown": "[UniswapV3Oracle.isToken0](src/oracles/UniswapV3Oracle.sol#L65) should be immutable \n",
+ "first_markdown_element": "src/oracles/UniswapV3Oracle.sol#L65",
+ "id": "fe23c04d02b78e9e124d8ab8aa13ce54ede2783408d0e75877e7375466537adc",
+ "check": "immutable-states",
+ "impact": "Optimization",
+ "confidence": "High"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/exercise/BaseExercise.sol b/src/exercise/BaseExercise.sol
index 9de0cc6..31b6b50 100644
--- a/src/exercise/BaseExercise.sol
+++ b/src/exercise/BaseExercise.sol
@@ -8,6 +8,8 @@ import {IERC20} from "oz/token/ERC20/IERC20.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {Owned} from "solmate/auth/Owned.sol";
+import "forge-std/console.sol";
+
abstract contract BaseExercise is IExercise, Owned {
using SafeERC20 for IERC20;
using FixedPointMathLib for uint256;
@@ -86,7 +88,9 @@ abstract contract BaseExercise is IExercise, Owned {
function distributeFees(uint256 totalAmount, IERC20 token) internal virtual {
uint256 remaining = totalAmount;
for (uint256 i = 0; i < feeRecipients.length - 1; i++) {
+
uint256 feeAmount = totalAmount * feeBPS[i] / FEE_DENOMINATOR;
+ console.log("feeBPS: %e feeAmount: %e", feeBPS[i], feeAmount);
token.safeTransfer(feeRecipients[i], feeAmount);
remaining -= feeAmount;
}
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 5417f45..17295ad 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -40,12 +40,16 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
error Exercise__SlippageGreaterThanMax();
error Exercise__ParamHasAddressZero();
error Exercise__InvalidExchangeType(uint256);
+ error Exercise__FeeDistributionFailed();
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
event SetOracle(IOracle indexed newOracle);
event SetTreasury(address indexed newTreasury);
event SetMultiplier(uint256 indexed newMultiplier);
+ event Claimed(uint256 indexed amount);
+ event SetInstantFee(uint256 indexed instantFee);
+ event SetMinAmountToTrigger(uint256 minAmountToTrigger);
/// Constants
/// Immutable parameters
@@ -114,6 +118,7 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
virtual
override
onlyOToken
+ whenNotPaused
returns (uint256 paymentAmount, address, uint256, uint256)
{
DiscountExerciseParams memory _params = abi.decode(params, (DiscountExerciseParams));
@@ -124,11 +129,12 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
}
}
- function claim(address to) external {
+ function claim(address to) external whenNotPaused {
uint256 amount = credit[msg.sender];
if (amount == 0) return;
credit[msg.sender] = 0;
underlyingToken.safeTransfer(to, amount);
+ emit Claimed(amount);
}
/// Owner functions
@@ -172,10 +178,20 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
revert Exercise__FeeGreaterThanMax();
}
instantExitFee = _instantExitFee;
+ emit SetInstantFee(_instantExitFee);
}
function setMinAmountToTriggerSwap(uint256 _minAmountToTriggerSwap) external onlyOwner {
minAmountToTriggerSwap = _minAmountToTriggerSwap;
+ emit SetMinAmountToTrigger(_minAmountToTriggerSwap);
+ }
+
+ function pause() external onlyOwner {
+ _pause();
+ }
+
+ function unpause() external onlyOwner {
+ _unpause();
}
/// Internal functions
@@ -185,13 +201,13 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
returns (uint256 paymentAmount, address, uint256, uint256)
{
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
-
+ console.log("[IN] Amount: %e\tmultiplier: %e", amount, multiplier);
uint256 discountedUnderlying = amount.mulDivUp(multiplier, BPS_DENOM);
uint256 fee = discountedUnderlying.mulDivUp(instantExitFee, BPS_DENOM);
uint256 underlyingAmount = discountedUnderlying - fee;
console.log("Discounted: %e \t fee: %e", discountedUnderlying, fee);
-
+ console.log("Fee amount before: %e", feeAmount);
// Fee amount in underlying tokens which is effect of not having redeem bonus
feeAmount += fee;
console.log("feeAmount: %s vs minAmountToTriggerSwap: %s", feeAmount, minAmountToTriggerSwap);
@@ -200,7 +216,7 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
uint256 minAmountOut = _getMinAmountOutData(feeAmount, swapProps.maxSwapSlippage, address(oracle));
console.log("minAmountOut: ", minAmountOut);
/* Approve the underlying token to make swap */
- underlyingToken.approve(swapProps.swapper, feeAmount);
+ underlyingToken.safeApprove(swapProps.swapper, feeAmount);
/* Swap underlying token to payment token (asset) */
console.log("under before: %e", underlyingToken.balanceOf(address(this)));
_generalSwap(swapProps.exchangeTypes, address(underlyingToken), address(paymentToken), feeAmount, minAmountOut, swapProps.exchangeAddress);
@@ -208,10 +224,12 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
// transfer payment tokens from user to the set receivers
console.log("Fee recipients: ", feeRecipients.length);
distributeFees(paymentToken.balanceOf(address(this)), paymentToken);
+ if (paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0) {
+ revert Exercise__FeeDistributionFailed();
+ }
}
// transfer underlying tokens to recipient without the bonus
- console.log("Transferring underlying : %e", underlyingAmount);
_pay(recipient, underlyingAmount);
emit Exercised(from, recipient, underlyingAmount, paymentAmount);
diff --git a/src/helpers/SwapHelper.sol b/src/helpers/SwapHelper.sol
index bea68e7..02534c4 100644
--- a/src/helpers/SwapHelper.sol
+++ b/src/helpers/SwapHelper.sol
@@ -72,15 +72,12 @@ abstract contract SwapHelper {
ISwapperSwaps _swapper = ISwapperSwaps(swapProps.swapper);
MinAmountOutData memory minAmountOutData = MinAmountOutData(MinAmountOutKind.Absolute, minAmountOut);
if (exType == ExchangeType.UniV2) {
- console.log("Calling Univ2");
_swapper.swapUniV2(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
} else if (exType == ExchangeType.Bal) {
_swapper.swapBal(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
- console.log("HERE");
} else if (exType == ExchangeType.VeloSolid) {
_swapper.swapVelo(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
} else if (exType == ExchangeType.UniV3) {
- console.log("Calling Univ3");
_swapper.swapUniV3(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
} else {
revert SwapHelper__InvalidExchangeType(uint256(exType));
diff --git a/test/Common.sol b/test/Common.sol
index 843f5fe..c606486 100644
--- a/test/Common.sol
+++ b/test/Common.sol
@@ -98,6 +98,7 @@ address constant MODE_WETH = 0x4200000000000000000000000000000000000006;
address constant MODE_VELO_USDC_MODE_PAIR = 0x283bA4E204DFcB6381BCBf2cb5d0e765A2B57bC2; // DECIMALS ISSUE
address constant MODE_VELO_WETH_MODE_PAIR = 0x0fba984c97539B3fb49ACDA6973288D0EFA903DB;
address constant MODE_VELO_ROUTER = 0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45;
+address constant MODE_VELO_FACTORY = 0x31832f2a97Fd20664D76Cc421207669b55CE4BC0;
contract Common is Test {
IERC20 nativeToken;
@@ -115,6 +116,7 @@ contract Common is Test {
bytes32 paymentUnderlyingBpt;
bytes32 paymentWantBpt;
+ address veloFactory;
address pool;
address addressProvider;
address dataProvider;
@@ -177,9 +179,9 @@ contract Common is Test {
} else if (exchangeType == ExchangeType.VeloSolid) {
/* Configure thena ram like dexes */
IVeloRouter.Route[] memory veloPath = new IVeloRouter.Route[](1);
- veloPath[0] = IVeloRouter.Route(paths[0], paths[1], false, OP_VELO_FACTORY);
+ veloPath[0] = IVeloRouter.Route(paths[0], paths[1], false, veloFactory);
reaperSwapper.updateVeloSwapPath(paths[0], paths[1], address(veloRouter), veloPath);
- veloPath[0] = IVeloRouter.Route(paths[1], paths[0], false, OP_VELO_FACTORY);
+ veloPath[0] = IVeloRouter.Route(paths[1], paths[0], false, veloFactory);
reaperSwapper.updateVeloSwapPath(paths[1], paths[0], address(veloRouter), veloPath);
} else if (exchangeType == ExchangeType.UniV3) {
/* Configure univ3 like dexes */
diff --git a/test/ItModeOptionsToken.t.sol b/test/ItModeOptionsToken.t.sol
index 8287b09..1119cf1 100644
--- a/test/ItModeOptionsToken.t.sol
+++ b/test/ItModeOptionsToken.t.sol
@@ -92,6 +92,7 @@ contract ModeOptionsTokenTest is Test, Common {
// swapRouter = ISwapRouter(OP_BEETX_VAULT);
// univ3Factory = IUniswapV3Factory(OP_UNIV3_FACTORY);
veloRouter = IVeloRouter(MODE_VELO_ROUTER);
+ veloFactory = MODE_VELO_FACTORY;
/* Setup network */
uint256 fork = vm.createFork(MAINNET_URL, FORK_BLOCK);
@@ -189,8 +190,8 @@ contract ModeOptionsTokenTest is Test, Common {
}
function test_modeZapPositiveScenario(uint256 amount, address recipient) public {
- amount = bound(amount, 1e10, 1e18 - 1);
- vm.assume(recipient != address(0));
+ amount = bound(amount, 1e16, 1e18 - 1);
+ address recipient = makeAddr("recipient");
// mint options tokens
vm.prank(tokenAdmin);
@@ -202,15 +203,12 @@ contract ModeOptionsTokenTest is Test, Common {
uint256 expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
deal(address(paymentToken), address(this), expectedPaymentAmount);
- console.log("discountedUnderlying:", discountedUnderlying);
- console.log("expectedUnderlyingAmount:", expectedUnderlyingAmount);
-
// Calculate total fee from zapping
uint256 calcPaymentAmount = exerciser.getPaymentAmount(amount);
uint256 totalFee = calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
vm.prank(owner);
- exerciser.setMinAmountToTriggerSwap(totalFee + 1);
+ exerciser.setMinAmountToTriggerSwap(discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, BPS_DENOM) + 1);
// exercise options tokens
DiscountExerciseParams memory params =
@@ -230,7 +228,7 @@ contract ModeOptionsTokenTest is Test, Common {
assertApproxEqAbs(balanceAfterFirstExercise, expectedUnderlyingAmount, 1, "Recipient got wrong amount of underlying token");
/*---------- Second call -----------*/
- amount = bound(amount, 1e18, 1e24);
+ amount = bound(amount, 1e18, 2e18);
// mint options tokens
vm.prank(tokenAdmin);
optionsToken.mint(address(this), amount);
@@ -262,8 +260,8 @@ contract ModeOptionsTokenTest is Test, Common {
assertApproxEqRel(IERC20(paymentToken).balanceOf(feeRecipients_[1]), fee2, 5e16, "fee recipient 2 didn't receive payment tokens");
assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
assertApproxEqAbs(
- underlyingToken.balanceOf(recipient) + balanceAfterFirstExercise,
- expectedUnderlyingAmount,
+ underlyingToken.balanceOf(recipient),
+ expectedUnderlyingAmount + balanceAfterFirstExercise,
1,
"Recipient got wrong amount of underlying token"
);
diff --git a/test/ItOpOptionsToken.t copy.sol b/test/ItOpOptionsToken.t.sol
similarity index 73%
rename from test/ItOpOptionsToken.t copy.sol
rename to test/ItOpOptionsToken.t.sol
index 3d93c04..9f33caa 100644
--- a/test/ItOpOptionsToken.t copy.sol
+++ b/test/ItOpOptionsToken.t.sol
@@ -92,6 +92,7 @@ contract OpOptionsTokenTest is Test, Common {
swapRouter = ISwapRouter(OP_BEETX_VAULT);
univ3Factory = IUniswapV3Factory(OP_UNIV3_FACTORY);
veloRouter = IVeloRouter(OP_VELO_ROUTER);
+ veloFactory = OP_VELO_FACTORY;
/* Setup network */
uint256 fork = vm.createFork(MAINNET_URL, FORK_BLOCK);
@@ -188,16 +189,20 @@ contract OpOptionsTokenTest is Test, Common {
assertEqDecimal(expectedPaymentAmount, paymentAmount, 18, "exercise returned wrong value");
}
- function test_opZapPositiveScenario(uint256 amount, address recipient) public {
+ function test_opZapPositiveScenario(uint256 amount) public {
amount = bound(amount, 1e10, 1e18 - 1);
- vm.assume(recipient != address(0));
+ address recipient = makeAddr("recipient");
// mint options tokens
vm.prank(tokenAdmin);
optionsToken.mint(address(this), amount);
+ console.log("Fee recipient1 balance: ", IERC20(paymentToken).balanceOf(feeRecipients_[0]));
+ console.log("Fee recipient2 balance: ", IERC20(paymentToken).balanceOf(feeRecipients_[1]));
+
// mint payment tokens
uint256 expectedPaymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ console.log("[OUT] Amount: %e\tmultiplier: %e", amount, PRICE_MULTIPLIER);
uint256 discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
uint256 expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
deal(address(paymentToken), address(this), expectedPaymentAmount);
@@ -210,7 +215,7 @@ contract OpOptionsTokenTest is Test, Common {
uint256 totalFee = calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
vm.prank(owner);
- exerciser.setMinAmountToTriggerSwap(totalFee + 1);
+ exerciser.setMinAmountToTriggerSwap(discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, BPS_DENOM) + 1);
// exercise options tokens
DiscountExerciseParams memory params =
@@ -262,116 +267,13 @@ contract OpOptionsTokenTest is Test, Common {
assertApproxEqRel(IERC20(paymentToken).balanceOf(feeRecipients_[1]), fee2, 5e16, "fee recipient 2 didn't receive payment tokens");
assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
assertApproxEqAbs(
- underlyingToken.balanceOf(recipient) + balanceAfterFirstExercise,
- expectedUnderlyingAmount,
+ underlyingToken.balanceOf(recipient),
+ expectedUnderlyingAmount + balanceAfterFirstExercise,
1,
"Recipient got wrong amount of underlying token"
);
}
- function test_opExerciseMinPrice(uint256 amount, address recipient) public {
- amount = bound(amount, 1, MAX_SUPPLY);
- vm.assume(recipient != address(0));
-
- // mint options tokens
- vm.prank(tokenAdmin);
- optionsToken.mint(address(this), amount);
-
- // set TWAP value such that the strike price is below the oracle's minPrice value
- balancerTwapOracle.setTwapValue(ORACLE_MIN_PRICE - 1);
-
- // mint payment tokens
- uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_MIN_PRICE);
- deal(address(paymentToken), address(this), expectedPaymentAmount);
-
- // exercise options tokens
- DiscountExerciseParams memory params =
- DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
- vm.expectRevert(bytes4(keccak256("ThenaOracle__BelowMinPrice()")));
- optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
- }
-
- // function test_priceMultiplier(uint256 amount, uint256 multiplier) public {
- // amount = bound(amount, 1, MAX_SUPPLY / 2);
-
- // vm.prank(owner);
- // exerciser.setMultiplier(10000); // full price
-
- // // mint options tokens
- // vm.prank(tokenAdmin);
- // optionsToken.mint(address(this), amount * 2);
-
- // // mint payment tokens
- // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE);
- // deal(address(paymentToken), address(this), expectedPaymentAmount);
-
- // // exercise options tokens
- // DiscountExerciseParams memory params =
- // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
- // (uint256 paidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
-
- // // update multiplier
- // multiplier = bound(multiplier, 1000, 20000);
- // vm.prank(owner);
- // exerciser.setMultiplier(multiplier);
-
- // // exercise options tokens
- // uint256 newPrice = oracle.getPrice().mulDivUp(multiplier, 10000);
- // uint256 newExpectedPaymentAmount = amount.mulWadUp(newPrice);
- // params.maxPaymentAmount = newExpectedPaymentAmount;
-
- // deal(address(paymentToken), address(this), newExpectedPaymentAmount);
- // (uint256 newPaidAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
- // // verify payment tokens were transferred
- // assertEqDecimal(paymentToken.balanceOf(address(this)), 0, 18, "user still has payment tokens");
- // assertEq(newPaidAmount, paidAmount.mulDivUp(multiplier, 10000), "incorrect discount");
- // }
-
- // function test_exerciseTwapOracleNotReady(uint256 amount, address recipient) public {
- // amount = bound(amount, 1, MAX_SUPPLY);
-
- // // mint options tokens
- // vm.prank(tokenAdmin);
- // optionsToken.mint(address(this), amount);
-
- // // mint payment tokens
- // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
- // deal(address(paymentToken), address(this), expectedPaymentAmount);
-
- // // update oracle params
- // // such that the TWAP window becomes (block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW - ORACLE_SECS, block.timestamp - ORACLE_LARGEST_SAFETY_WINDOW]
- // // which is outside of the largest safety window
- // // vm.prank(owner);
- // // oracle.setParams(ORACLE_SECS, ORACLE_LARGEST_SAFETY_WINDOW, ORACLE_MIN_PRICE);
-
- // // exercise options tokens which should fail
- // DiscountExerciseParams memory params =
- // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
- // vm.expectRevert(ThenaOracle.ThenaOracle__TWAPOracleNotReady.selector);
- // optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
- // }
-
- // function test_exercisePastDeadline(uint256 amount, address recipient, uint256 deadline) public {
- // amount = bound(amount, 0, MAX_SUPPLY);
- // deadline = bound(deadline, 0, block.timestamp - 1);
-
- // // mint options tokens
- // vm.prank(tokenAdmin);
- // optionsToken.mint(address(this), amount);
-
- // // mint payment tokens
- // uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
- // deal(address(paymentToken), address(this), expectedPaymentAmount);
-
- // // exercise options tokens
- // DiscountExerciseParams memory params =
- // DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: deadline, isInstantExit: false});
- // if (amount != 0) {
- // vm.expectRevert(DiscountExercise.Exercise__PastDeadline.selector);
- // }
- // optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
- // }
-
function test_exerciseNotOToken(uint256 amount, address recipient) public {
amount = bound(amount, 0, MAX_SUPPLY);
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 5f72a23..20b776a 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -356,4 +356,37 @@ contract OptionsTokenTest is Test {
vm.expectRevert(OptionsToken.OptionsToken__NotExerciseContract.selector);
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
+
+ function test_exerciseWhenPaused(uint256 amount) public {
+ amount = bound(amount, 100, 1 ether);
+ address recipient = makeAddr("recipient");
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), 3 * amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = 3 * amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ /* Only owner can pause */
+ vm.startPrank(recipient);
+ vm.expectRevert(bytes("UNAUTHORIZED")); // Ownable: caller is not the owner
+ exerciser.pause();
+ vm.stopPrank();
+
+ vm.prank(owner);
+ exerciser.pause();
+ vm.expectRevert(bytes("Pausable: paused"));
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ vm.prank(owner);
+ exerciser.unpause();
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
}
From 14c385714d179abbc46998387030d38193f4ba65 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Mon, 24 Jun 2024 10:28:55 +0200
Subject: [PATCH 51/64] Additional comments
---
src/exercise/DiscountExercise.sol | 15 +--------------
test/Common.sol | 6 +++---
...tionsToken.t.sol => ItOpOptionsToken.t.solNOT} | 0
3 files changed, 4 insertions(+), 17 deletions(-)
rename test/{ItOpOptionsToken.t.sol => ItOpOptionsToken.t.solNOT} (100%)
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 17295ad..5aa9b09 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -13,8 +13,6 @@ import {OptionsToken} from "../OptionsToken.sol";
import {ExchangeType, SwapProps, SwapHelper} from "../helpers/SwapHelper.sol";
-import "forge-std/console.sol";
-
struct DiscountExerciseParams {
uint256 maxPaymentAmount;
uint256 deadline;
@@ -201,28 +199,21 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
returns (uint256 paymentAmount, address, uint256, uint256)
{
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
- console.log("[IN] Amount: %e\tmultiplier: %e", amount, multiplier);
uint256 discountedUnderlying = amount.mulDivUp(multiplier, BPS_DENOM);
uint256 fee = discountedUnderlying.mulDivUp(instantExitFee, BPS_DENOM);
uint256 underlyingAmount = discountedUnderlying - fee;
- console.log("Discounted: %e \t fee: %e", discountedUnderlying, fee);
- console.log("Fee amount before: %e", feeAmount);
- // Fee amount in underlying tokens which is effect of not having redeem bonus
+ // Fee amount in underlying tokens for zapping
feeAmount += fee;
- console.log("feeAmount: %s vs minAmountToTriggerSwap: %s", feeAmount, minAmountToTriggerSwap);
if (feeAmount >= minAmountToTriggerSwap) {
uint256 minAmountOut = _getMinAmountOutData(feeAmount, swapProps.maxSwapSlippage, address(oracle));
- console.log("minAmountOut: ", minAmountOut);
/* Approve the underlying token to make swap */
underlyingToken.safeApprove(swapProps.swapper, feeAmount);
/* Swap underlying token to payment token (asset) */
- console.log("under before: %e", underlyingToken.balanceOf(address(this)));
_generalSwap(swapProps.exchangeTypes, address(underlyingToken), address(paymentToken), feeAmount, minAmountOut, swapProps.exchangeAddress);
feeAmount = 0;
// transfer payment tokens from user to the set receivers
- console.log("Fee recipients: ", feeRecipients.length);
distributeFees(paymentToken.balanceOf(address(this)), paymentToken);
if (paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0) {
revert Exercise__FeeDistributionFailed();
@@ -242,11 +233,9 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
returns (uint256 paymentAmount, address, uint256, uint256)
{
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
-
// apply multiplier to price
paymentAmount = _getPaymentAmount(amount);
if (paymentAmount > params.maxPaymentAmount) revert Exercise__SlippageTooHigh();
-
// transfer payment tokens from user to the set receivers
distributeFeesFrom(paymentAmount, paymentToken, from);
// transfer underlying tokens to recipient
@@ -275,8 +264,6 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
}
function _getPaymentAmount(uint256 amount) private view returns (uint256 paymentAmount) {
- console.log("Price inside: ", oracle.getPrice());
paymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(multiplier, BPS_DENOM));
- // paymentAmount -= paymentAmount.mulDivUp(redeemBonus, BPS_DENOM); // redeem bonus applied
}
}
diff --git a/test/Common.sol b/test/Common.sol
index c606486..3043853 100644
--- a/test/Common.sol
+++ b/test/Common.sol
@@ -179,9 +179,9 @@ contract Common is Test {
} else if (exchangeType == ExchangeType.VeloSolid) {
/* Configure thena ram like dexes */
IVeloRouter.Route[] memory veloPath = new IVeloRouter.Route[](1);
- veloPath[0] = IVeloRouter.Route(paths[0], paths[1], false, veloFactory);
+ veloPath[0] = IVeloRouter.Route(paths[0], paths[1], false);
reaperSwapper.updateVeloSwapPath(paths[0], paths[1], address(veloRouter), veloPath);
- veloPath[0] = IVeloRouter.Route(paths[1], paths[0], false, veloFactory);
+ veloPath[0] = IVeloRouter.Route(paths[1], paths[0], false);
reaperSwapper.updateVeloSwapPath(paths[1], paths[0], address(veloRouter), veloPath);
} else if (exchangeType == ExchangeType.UniV3) {
/* Configure univ3 like dexes */
@@ -212,7 +212,7 @@ contract Common is Test {
} else if (exchangeType == ExchangeType.VeloSolid) {
IVeloRouter router = IVeloRouter(payable(address(veloRouter)));
ThenaOracle underlyingPaymentOracle;
- address pair = router.pairFor(address(underlyingToken), address(paymentToken), false, OP_VELO_FACTORY);
+ address pair = router.poolFor(address(underlyingToken), address(paymentToken), false);
underlyingPaymentOracle = new ThenaOracle(IThenaPair(pair), address(underlyingToken), owner, ORACLE_SECS, ORACLE_MIN_PRICE);
oracle = IOracle(address(underlyingPaymentOracle));
} else if (exchangeType == ExchangeType.UniV3) {
diff --git a/test/ItOpOptionsToken.t.sol b/test/ItOpOptionsToken.t.solNOT
similarity index 100%
rename from test/ItOpOptionsToken.t.sol
rename to test/ItOpOptionsToken.t.solNOT
From 14f02156b5a4cd523e550f7444d8dc3f3df306af Mon Sep 17 00:00:00 2001
From: xRave110
Date: Fri, 28 Jun 2024 11:43:22 +0200
Subject: [PATCH 52/64] Improvements after review
---
.gitignore | 3 +
.gitmodules | 3 -
.vscode/settings.json | 4 -
foundry.toml | 2 +-
hardhat.config.ts | 38 +-
lib/tarot-price-oracle | 1 -
lib/vault-v2 | 2 +-
output.json | 228363 ---------------------------
src/OptionsToken.sol | 15 +-
src/exercise/DiscountExercise.sol | 23 +-
src/helpers/SwapHelper.sol | 19 +-
test/OptionsToken.t.sol | 38 +-
12 files changed, 98 insertions(+), 228413 deletions(-)
delete mode 100644 .vscode/settings.json
delete mode 160000 lib/tarot-price-oracle
delete mode 100644 output.json
diff --git a/.gitignore b/.gitignore
index 9c3c7dc..1cdc36d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,6 @@ node_modules/
artifacts/
cache_hardhat/
typechain-types/
+
+*settings.json
+
diff --git a/.gitmodules b/.gitmodules
index c75bf00..f324d8b 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,9 +16,6 @@
[submodule "lib/openzeppelin-contracts"]
path = lib/openzeppelin-contracts
url = https://github.com/OpenZeppelin/openzeppelin-contracts
-[submodule "lib/tarot-price-oracle"]
- path = lib/tarot-price-oracle
- url = https://github.com/xrave110/tarot-price-oracle
[submodule "lib/vault-v2"]
path = lib/vault-v2
url = https://github.com/Byte-Masons/vault-v2
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 2306f3c..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "solidity.formatter": "forge",
- "editor.formatOnSave": true
-}
\ No newline at end of file
diff --git a/foundry.toml b/foundry.toml
index 2362c36..8129a9c 100644
--- a/foundry.toml
+++ b/foundry.toml
@@ -1,7 +1,7 @@
[profile.default]
optimizer_runs = 1000000
verbosity = 1
-via_ir = true
+via_ir = false
[fmt]
line_length = 150
diff --git a/hardhat.config.ts b/hardhat.config.ts
index f5f1364..f54029d 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -18,10 +18,10 @@ const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
const config: HardhatUserConfig = {
solidity: {
- version: "0.8.20",
- // settings: {
- // optimizer: { enabled: true, runs: 200 }
- // }
+ version: "0.8.19",
+ settings: {
+ optimizer: { enabled: true, runs: 9999 }
+ }
},
sourcify: {
enabled: true
@@ -47,21 +47,21 @@ const config: HardhatUserConfig = {
accounts: [`0x${PRIVATE_KEY}`],
},
},
- // etherscan: {
- // apiKey: {
- // bsc: process.env.ETHERSCAN_KEY || "",
- // },
- // customChains: [
- // {
- // network: "mode",
- // chainId: 34443,
- // urls: {
- // apiURL: "https://explorer.mode.network",
- // browserURL: "https://explorer.mode.network"
- // }
- // }
- // ]
- // },
+ etherscan: {
+ apiKey: {
+ bsc: process.env.ETHERSCAN_KEY || "",
+ },
+ // customChains: [
+ // {
+ // network: "mode",
+ // chainId: 34443,
+ // urls: {
+ // apiURL: "https://explorer.mode.network",
+ // browserURL: "https://explorer.mode.network"
+ // }
+ // }
+ // ]
+ },
};
diff --git a/lib/tarot-price-oracle b/lib/tarot-price-oracle
deleted file mode 160000
index 483959c..0000000
--- a/lib/tarot-price-oracle
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 483959c501ddab57e5215e47bbb257f04aa02b76
diff --git a/lib/vault-v2 b/lib/vault-v2
index 23df243..6cbaea2 160000
--- a/lib/vault-v2
+++ b/lib/vault-v2
@@ -1 +1 @@
-Subproject commit 23df243595d358986708544e03229501fc82b595
+Subproject commit 6cbaea2c6d3f6fbfa3aebab182f9a75d056f7a43
diff --git a/output.json b/output.json
deleted file mode 100644
index 5a04500..0000000
--- a/output.json
+++ /dev/null
@@ -1,228363 +0,0 @@
-{
- "success": true,
- "error": null,
- "results": {
- "detectors": [
- {
- "elements": [
- {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransferFrom(from,feeRecipients[i],feeAmount)",
- "source_mapping": {
- "start": 3306,
- "length": 57,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 79
- ],
- "starting_column": 13,
- "ending_column": 70
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- }
- }
- }
- ],
- "description": "BaseExercise.distributeFeesFrom(uint256,IERC20,address) (src/exercise/BaseExercise.sol#75-84) uses arbitrary from in transferFrom: token.safeTransferFrom(from,feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#79)\n",
- "markdown": "[BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L75-L84) uses arbitrary from in transferFrom: [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L79)\n",
- "first_markdown_element": "src/exercise/BaseExercise.sol#L75-L84",
- "id": "446a1cb33ebfad0d0a709c03c1c0cd849aceed537bd0183c5297524327e3aaf2",
- "check": "arbitrary-send-erc20",
- "impact": "High",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)",
- "source_mapping": {
- "start": 3419,
- "length": 80,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 82
- ],
- "starting_column": 9,
- "ending_column": 89
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- }
- }
- }
- ],
- "description": "BaseExercise.distributeFeesFrom(uint256,IERC20,address) (src/exercise/BaseExercise.sol#75-84) uses arbitrary from in transferFrom: token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#82)\n",
- "markdown": "[BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L75-L84) uses arbitrary from in transferFrom: [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L82)\n",
- "first_markdown_element": "src/exercise/BaseExercise.sol#L75-L84",
- "id": "e527a176c279777711a8a43d5feac81d7390657a451efca4aa421633e06d9680",
- "check": "arbitrary-send-erc20",
- "impact": "High",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_functionDelegateCall",
- "source_mapping": {
- "start": 6780,
- "length": 455,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC1967UpgradeUpgradeable",
- "source_mapping": {
- "start": 661,
- "length": 6867,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_functionDelegateCall(address,bytes)"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.delegatecall(data)",
- "source_mapping": {
- "start": 7045,
- "length": 67,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 188
- ],
- "starting_column": 9,
- "ending_column": 76
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_functionDelegateCall",
- "source_mapping": {
- "start": 6780,
- "length": 455,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC1967UpgradeUpgradeable",
- "source_mapping": {
- "start": 661,
- "length": 6867,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_functionDelegateCall(address,bytes)"
- }
- }
- }
- }
- ],
- "description": "ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#184-190) uses delegatecall to a input-controlled function id\n\t- (success,returndata) = target.delegatecall(data) (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#188)\n",
- "markdown": "[ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes)](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L184-L190) uses delegatecall to a input-controlled function id\n\t- [(success,returndata) = target.delegatecall(data)](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L188)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L184-L190",
- "id": "674611239cacd3d3adbcbfab671c0ebaf9c020827cfd91cca0f58d74c0873e7d",
- "check": "controlled-delegatecall",
- "impact": "High",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "inv = (3 * denominator) ^ 2",
- "source_mapping": {
- "start": 3729,
- "length": 35,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 88
- ],
- "starting_column": 13,
- "ending_column": 48
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - inv = (3 * denominator) ^ 2 (lib/v3-core/contracts/libraries/FullMath.sol#88)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - [inv = (3 * denominator) ^ 2](lib/v3-core/contracts/libraries/FullMath.sol#L88)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "3ebcee10c38dd4a235616a4d9d6a9aaf00fe1db39529893efe57c283a4b73d3f",
- "check": "incorrect-exp",
- "impact": "High",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "inverse = (3 * denominator) ^ 2",
- "source_mapping": {
- "start": 4459,
- "length": 39,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 117
- ],
- "starting_column": 13,
- "ending_column": 52
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - inverse = (3 * denominator) ^ 2 (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#117)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - [inverse = (3 * denominator) ^ 2](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L117)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "d5757e6727c1fd979b03f6138f32befb52a3a53c3f8e23a9970145a5973d779a",
- "check": "incorrect-exp",
- "impact": "High",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 3757,
- "length": 37,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 102
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inverse *= 2 - denominator * inverse",
- "source_mapping": {
- "start": 4715,
- "length": 36,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 121
- ],
- "starting_column": 13,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#121)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L121)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "00b65e3a8fb42b635c27a085eb3b8c89d7b14ad83a5429e7ccfde9497a23828c",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128",
- "source_mapping": {
- "start": 3617,
- "length": 50,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 52
- ],
- "starting_column": 41,
- "ending_column": 91
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#52)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L52)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "049b0eee893d521c098e8106c37a596606789cb5437746aaf101d87bfb81347e",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 3757,
- "length": 37,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 102
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inverse *= 2 - denominator * inverse",
- "source_mapping": {
- "start": 4924,
- "length": 36,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 124
- ],
- "starting_column": 13,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#124)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L124)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "063a41726141c0824417315356cff50b71c19049fcd88cdabef685c7b2284446",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "prod0 = prod0 / twos",
- "source_mapping": {
- "start": 3023,
- "length": 25,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 73
- ],
- "starting_column": 17,
- "ending_column": 42
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "result = prod0 * inv",
- "source_mapping": {
- "start": 4804,
- "length": 20,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 105
- ],
- "starting_column": 13,
- "ending_column": 33
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- prod0 = prod0 / twos (lib/v3-core/contracts/libraries/FullMath.sol#73)\n\t- result = prod0 * inv (lib/v3-core/contracts/libraries/FullMath.sol#105)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [prod0 = prod0 / twos](lib/v3-core/contracts/libraries/FullMath.sol#L73)\n\t- [result = prod0 * inv](lib/v3-core/contracts/libraries/FullMath.sol#L105)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "0fc34c55fb2fcbf643d5ba90b5756e4d089643e6ad30eeea71f5c709781c9e32",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128",
- "source_mapping": {
- "start": 3020,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 46
- ],
- "starting_column": 40,
- "ending_column": 99
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#46)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L46)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "10d5f7f6961892bd6462b79f7f63ffdeb9ccdad321a21b8302ef6d4d68d57be6",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 2873,
- "length": 37,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 68
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inv *= 2 - denominator * inv",
- "source_mapping": {
- "start": 4310,
- "length": 28,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 97
- ],
- "starting_column": 13,
- "ending_column": 41
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#97)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L97)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "1ef88f8244a181a35e0f07c86dd3dbcd47a08f4e7344a3aa2246ce952b3c4782",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_calculateMinAmountOut",
- "source_mapping": {
- "start": 9735,
- "length": 1525,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
- }
- },
- {
- "type": "node",
- "name": "toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR",
- "source_mapping": {
- "start": 11000,
- "length": 130,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 299,
- 300
- ],
- "starting_column": 9,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_calculateMinAmountOut",
- "source_mapping": {
- "start": 9735,
- "length": 1525,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "minAmountOut = (toAmountUsdTargetDigits * 10 ** IERC20MetadataUpgradeable(_to).decimals()) / toPriceTargetDigits",
- "source_mapping": {
- "start": 11141,
- "length": 112,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 302
- ],
- "starting_column": 9,
- "ending_column": 121
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_calculateMinAmountOut",
- "source_mapping": {
- "start": 9735,
- "length": 1525,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper._calculateMinAmountOut(address,address,uint256,MinAmountOutData) (lib/vault-v2/src/ReaperSwapper.sol#275-303) performs a multiplication on the result of a division:\n\t- toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR (lib/vault-v2/src/ReaperSwapper.sol#299-300)\n\t- minAmountOut = (toAmountUsdTargetDigits * 10 ** IERC20MetadataUpgradeable(_to).decimals()) / toPriceTargetDigits (lib/vault-v2/src/ReaperSwapper.sol#302)\n",
- "markdown": "[ReaperSwapper._calculateMinAmountOut(address,address,uint256,MinAmountOutData)](lib/vault-v2/src/ReaperSwapper.sol#L275-L303) performs a multiplication on the result of a division:\n\t- [toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR](lib/vault-v2/src/ReaperSwapper.sol#L299-L300)\n\t- [minAmountOut = (toAmountUsdTargetDigits * 10 ** IERC20MetadataUpgradeable(_to).decimals()) / toPriceTargetDigits](lib/vault-v2/src/ReaperSwapper.sol#L302)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L275-L303",
- "id": "242b2c5d9da698fd1345e7823ad59a8dae0b459dab01039556e362d5ac2acd45",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_calculateMinAmountOut",
- "source_mapping": {
- "start": 9735,
- "length": 1525,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
- }
- },
- {
- "type": "node",
- "name": "fromAmountUsdTargetDigits = (_amountIn * fromPriceTargetDigits) / 10 ** IERC20MetadataUpgradeable(_from).decimals()",
- "source_mapping": {
- "start": 10855,
- "length": 135,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 297,
- 298
- ],
- "starting_column": 9,
- "ending_column": 100
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_calculateMinAmountOut",
- "source_mapping": {
- "start": 9735,
- "length": 1525,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR",
- "source_mapping": {
- "start": 11000,
- "length": 130,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 299,
- 300
- ],
- "starting_column": 9,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_calculateMinAmountOut",
- "source_mapping": {
- "start": 9735,
- "length": 1525,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_calculateMinAmountOut(address,address,uint256,MinAmountOutData)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper._calculateMinAmountOut(address,address,uint256,MinAmountOutData) (lib/vault-v2/src/ReaperSwapper.sol#275-303) performs a multiplication on the result of a division:\n\t- fromAmountUsdTargetDigits = (_amountIn * fromPriceTargetDigits) / 10 ** IERC20MetadataUpgradeable(_from).decimals() (lib/vault-v2/src/ReaperSwapper.sol#297-298)\n\t- toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR (lib/vault-v2/src/ReaperSwapper.sol#299-300)\n",
- "markdown": "[ReaperSwapper._calculateMinAmountOut(address,address,uint256,MinAmountOutData)](lib/vault-v2/src/ReaperSwapper.sol#L275-L303) performs a multiplication on the result of a division:\n\t- [fromAmountUsdTargetDigits = (_amountIn * fromPriceTargetDigits) / 10 ** IERC20MetadataUpgradeable(_from).decimals()](lib/vault-v2/src/ReaperSwapper.sol#L297-L298)\n\t- [toAmountUsdTargetDigits = (fromAmountUsdTargetDigits * _minAmountOutData.absoluteOrBPSValue) / PERCENT_DIVISOR](lib/vault-v2/src/ReaperSwapper.sol#L299-L300)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L275-L303",
- "id": "2a964692a2c1e433645c4386705e83f412d01ced4ff15e6a7ed9f220abf91751",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 3757,
- "length": 37,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 102
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inverse *= 2 - denominator * inverse",
- "source_mapping": {
- "start": 4784,
- "length": 36,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 122
- ],
- "starting_column": 13,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#122)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L122)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "333a89f3a8f64c59b998db6ddea224f5e5b6a3e18adc1cc4fe33353a9161141a",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128",
- "source_mapping": {
- "start": 2326,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 39
- ],
- "starting_column": 38,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#39)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L39)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "38c735599b34bd5dd6042b2b9001323fbfb2770b8c54e5257f95d17e496b58bc",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128",
- "source_mapping": {
- "start": 2622,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 42
- ],
- "starting_column": 39,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#42)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L42)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "3b44809d05674d486bb9e43f2b5c6a6f1b3cfbf822a51d78672a6efcaaf27060",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_getSwapAmountUniV2",
- "source_mapping": {
- "start": 3579,
- "length": 603,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getSwapAmountUniV2(uint256,uint256,uint256,address)"
- }
- },
- {
- "type": "node",
- "name": "halfInvestment = _investmentA / 2",
- "source_mapping": {
- "start": 3766,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 96
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_getSwapAmountUniV2",
- "source_mapping": {
- "start": 3579,
- "length": 603,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getSwapAmountUniV2(uint256,uint256,uint256,address)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "swapAmount = _investmentA - (Babylonian.sqrt((halfInvestment * halfInvestment * nominator) / denominator))",
- "source_mapping": {
- "start": 4069,
- "length": 106,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 100
- ],
- "starting_column": 9,
- "ending_column": 115
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_getSwapAmountUniV2",
- "source_mapping": {
- "start": 3579,
- "length": 603,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getSwapAmountUniV2(uint256,uint256,uint256,address)"
- }
- }
- }
- }
- ],
- "description": "UniV2Mixin._getSwapAmountUniV2(uint256,uint256,uint256,address) (lib/vault-v2/src/mixins/UniV2Mixin.sol#91-101) performs a multiplication on the result of a division:\n\t- halfInvestment = _investmentA / 2 (lib/vault-v2/src/mixins/UniV2Mixin.sol#96)\n\t- swapAmount = _investmentA - (Babylonian.sqrt((halfInvestment * halfInvestment * nominator) / denominator)) (lib/vault-v2/src/mixins/UniV2Mixin.sol#100)\n",
- "markdown": "[UniV2Mixin._getSwapAmountUniV2(uint256,uint256,uint256,address)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L91-L101) performs a multiplication on the result of a division:\n\t- [halfInvestment = _investmentA / 2](lib/vault-v2/src/mixins/UniV2Mixin.sol#L96)\n\t- [swapAmount = _investmentA - (Babylonian.sqrt((halfInvestment * halfInvestment * nominator) / denominator))](lib/vault-v2/src/mixins/UniV2Mixin.sol#L100)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV2Mixin.sol#L91-L101",
- "id": "3bdf8bff47fabfb38bc200b9841d43ccc92af4d55144953616bc8b804bbb4190",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128",
- "source_mapping": {
- "start": 2424,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 40
- ],
- "starting_column": 38,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#40)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L40)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "3fe811ee3f7a15306c799d900ce83ea25b94a798fc2fbdbeff7c41a9d44104eb",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 3757,
- "length": 37,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 102
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inverse *= 2 - denominator * inverse",
- "source_mapping": {
- "start": 4854,
- "length": 36,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 123
- ],
- "starting_column": 13,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#123)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L123)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "4bd78131744a4ae01deecf9f70f7caa639f217aabb6958b7502762971ed7992c",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128",
- "source_mapping": {
- "start": 1935,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 35
- ],
- "starting_column": 37,
- "ending_column": 96
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#35)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L35)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "4c4b17533f204364045c6f68db370e77b5ad7364eba97f64430b1d06a53fcec5",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128",
- "source_mapping": {
- "start": 1838,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 34
- ],
- "starting_column": 37,
- "ending_column": 96
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#34)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L34)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "4fc11cac2f6896d1fd2ae2941701fcab0e310d7f0867ed97cc5b3e8c23efcba4",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_getSwapAmountVelo",
- "source_mapping": {
- "start": 2636,
- "length": 541,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address)"
- }
- },
- {
- "type": "node",
- "name": "halfInvestment = investmentA / 2",
- "source_mapping": {
- "start": 2834,
- "length": 40,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 78
- ],
- "starting_column": 9,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_getSwapAmountVelo",
- "source_mapping": {
- "start": 2636,
- "length": 541,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "swapAmount = investmentA - Babylonian.sqrt((halfInvestment * halfInvestment * numerator) / denominator)",
- "source_mapping": {
- "start": 3067,
- "length": 103,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 81
- ],
- "starting_column": 9,
- "ending_column": 112
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_getSwapAmountVelo",
- "source_mapping": {
- "start": 2636,
- "length": 541,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address)"
- }
- }
- }
- }
- ],
- "description": "VeloSolidMixin._getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#73-82) performs a multiplication on the result of a division:\n\t- halfInvestment = investmentA / 2 (lib/vault-v2/src/mixins/VeloSolidMixin.sol#78)\n\t- swapAmount = investmentA - Babylonian.sqrt((halfInvestment * halfInvestment * numerator) / denominator) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#81)\n",
- "markdown": "[VeloSolidMixin._getSwapAmountVelo(IVeloPair,uint256,uint256,uint256,address)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L73-L82) performs a multiplication on the result of a division:\n\t- [halfInvestment = investmentA / 2](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L78)\n\t- [swapAmount = investmentA - Babylonian.sqrt((halfInvestment * halfInvestment * numerator) / denominator)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L81)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/VeloSolidMixin.sol#L73-L82",
- "id": "634d14708bdcf209cb732dd2453064bc4232343cec20e4c4af1d0a5345cc9d11",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128",
- "source_mapping": {
- "start": 3220,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 48
- ],
- "starting_column": 40,
- "ending_column": 99
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#48)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L48)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "7236a33a1c38547e2d6016c50a0cff9ccffeabd09475c57376ecb4a0f0d579fa",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 3757,
- "length": 37,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 102
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inverse *= 2 - denominator * inverse",
- "source_mapping": {
- "start": 4994,
- "length": 36,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 125
- ],
- "starting_column": 13,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#125)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L125)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "8e550aa740cfcf771bd2bf114b325d4e59d89cb74eda337db615a02086ec0332",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128",
- "source_mapping": {
- "start": 3421,
- "length": 57,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 50
- ],
- "starting_column": 41,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#50)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L50)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "976e6f1a5489c4b684ba80b7f2991c4f073a52e0a02f101aff98abe7c966e58b",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 2873,
- "length": 37,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 68
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inv *= 2 - denominator * inv",
- "source_mapping": {
- "start": 4183,
- "length": 28,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 95
- ],
- "starting_column": 13,
- "ending_column": 41
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#95)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L95)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "9c4b77f30035cd07f16f5da3c7df4ce22186d431383be67fc63102f53f1778be",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128",
- "source_mapping": {
- "start": 2032,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 36
- ],
- "starting_column": 37,
- "ending_column": 96
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#36)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L36)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "9d5a00343fb3299a12df278a7fcc4e8bba171415a0cddc32a3c8b1292da5e020",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "rpow",
- "source_mapping": {
- "start": 2774,
- "length": 2778,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "rpow(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "x = xxRound_rpow_asm_0 / scalar",
- "source_mapping": {
- "start": 4594,
- "length": 25,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 129
- ],
- "starting_column": 21,
- "ending_column": 46
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "rpow",
- "source_mapping": {
- "start": 2774,
- "length": 2778,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "rpow(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "zx_rpow_asm_0 = z * x",
- "source_mapping": {
- "start": 4759,
- "length": 19,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 134
- ],
- "starting_column": 25,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "rpow",
- "source_mapping": {
- "start": 2774,
- "length": 2778,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "rpow(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#71-158) performs a multiplication on the result of a division:\n\t- x = xxRound_rpow_asm_0 / scalar (lib/solmate/src/utils/FixedPointMathLib.sol#129)\n\t- zx_rpow_asm_0 = z * x (lib/solmate/src/utils/FixedPointMathLib.sol#134)\n",
- "markdown": "[FixedPointMathLib.rpow(uint256,uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L71-L158) performs a multiplication on the result of a division:\n\t- [x = xxRound_rpow_asm_0 / scalar](lib/solmate/src/utils/FixedPointMathLib.sol#L129)\n\t- [zx_rpow_asm_0 = z * x](lib/solmate/src/utils/FixedPointMathLib.sol#L134)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L71-L158",
- "id": "a6857f603efc155f5d59590b122e576c03098950016b0ca7391a75409969c72a",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128",
- "source_mapping": {
- "start": 2130,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 37
- ],
- "starting_column": 38,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#37)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L37)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "a91bd7bdec9d229a2e8b7757852ccf6bfbb0c1b82e2f213c0e87ea7d1501339c",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "prod0 = prod0 / twos",
- "source_mapping": {
- "start": 3861,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105
- ],
- "starting_column": 17,
- "ending_column": 42
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "result = prod0 * inverse",
- "source_mapping": {
- "start": 5535,
- "length": 24,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 132
- ],
- "starting_column": 13,
- "ending_column": 37
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- prod0 = prod0 / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#105)\n\t- result = prod0 * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#132)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [prod0 = prod0 / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L105)\n\t- [result = prod0 * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L132)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "b87038aa85530f57d3c926dfb00303da9021db0b4df6e6e2a16775cb835b5245",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 2873,
- "length": 37,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 68
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inv *= 2 - denominator * inv",
- "source_mapping": {
- "start": 4120,
- "length": 28,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 94
- ],
- "starting_column": 13,
- "ending_column": 41
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#94)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L94)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "bab014d5399775b500e5a02bedb24be936428d7c221c43ea46172f1944c25875",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 2873,
- "length": 37,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 68
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inv = (3 * denominator) ^ 2",
- "source_mapping": {
- "start": 3729,
- "length": 35,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 88
- ],
- "starting_column": 13,
- "ending_column": 48
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv = (3 * denominator) ^ 2 (lib/v3-core/contracts/libraries/FullMath.sol#88)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv = (3 * denominator) ^ 2](lib/v3-core/contracts/libraries/FullMath.sol#L88)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "bb1576372add81b6d335a9795a84d6f47581915cf81761e1130215f4fffec15f",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 2873,
- "length": 37,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 68
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inv *= 2 - denominator * inv",
- "source_mapping": {
- "start": 3995,
- "length": 28,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 92
- ],
- "starting_column": 13,
- "ending_column": 41
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#92)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L92)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "c0ce32fa53af66ddd6aa23871a339ee9773df422e6ee599a3a5394cf32887501",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128",
- "source_mapping": {
- "start": 2820,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 44
- ],
- "starting_column": 39,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#44)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L44)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "c7038675fff7d70121645d78c43c65fcb0265d0211269a5f5d8cae28f85688e8",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128",
- "source_mapping": {
- "start": 2721,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 43
- ],
- "starting_column": 39,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#43)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L43)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "cb6b982337b1749cacc0e54aa2a12b46da2952e9f90b918464706a96e177d317",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 2873,
- "length": 37,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 68
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inv *= 2 - denominator * inv",
- "source_mapping": {
- "start": 4246,
- "length": 28,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 96
- ],
- "starting_column": 13,
- "ending_column": 41
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#96)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L96)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "d1dea53850dd9403825e78e37c8a0b863bfe4a7587d2b6caa6f92988c30f6d65",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128",
- "source_mapping": {
- "start": 3520,
- "length": 55,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 51
- ],
- "starting_column": 41,
- "ending_column": 96
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#51)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L51)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "d2ed7da21b17178cd05780daf6db15d5eecc0d32e25943b91c66207f259ed6c1",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 3757,
- "length": 37,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 102
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inverse *= 2 - denominator * inverse",
- "source_mapping": {
- "start": 5065,
- "length": 36,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 126
- ],
- "starting_column": 13,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#126)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L126)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "d3e6e10c122886674b1e5fd2ce413eb882f00fdadbc0ea78e283dc622c1e9768",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128",
- "source_mapping": {
- "start": 3120,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 47
- ],
- "starting_column": 40,
- "ending_column": 99
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#47)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L47)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "da6dbcc8d396a8ea28bf63c4bac1f6e08ad3a685e6fc8a653d02f87b541253e3",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 3757,
- "length": 37,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 102
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inverse = (3 * denominator) ^ 2",
- "source_mapping": {
- "start": 4459,
- "length": 39,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 117
- ],
- "starting_column": 13,
- "ending_column": 52
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#102)\n\t- inverse = (3 * denominator) ^ 2 (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#117)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse = (3 * denominator) ^ 2](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L117)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "dafd46d4f8c4625c4f3a256e1ea93a0fee8d450f2b6dead5825ba39094f116c8",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128",
- "source_mapping": {
- "start": 2920,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 45
- ],
- "starting_column": 40,
- "ending_column": 99
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#45)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L45)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "e426a7f18a2489b8e0f9cfe771bcab135619bec93fef6dd0e19f27e2e7d1464f",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128",
- "source_mapping": {
- "start": 2523,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 41
- ],
- "starting_column": 39,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#41)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L41)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "e88cd4d371f5afbf49191d8304a8f6d8ad7f24d19ebcdcf46e6f324c2ffb1c7a",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128",
- "source_mapping": {
- "start": 3321,
- "length": 58,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 49
- ],
- "starting_column": 41,
- "ending_column": 99
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#49)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L49)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "f64d093eb85f9a8f731041983d2bb0bf07289d63f153e7b794e434881e924193",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128",
- "source_mapping": {
- "start": 2228,
- "length": 59,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 38
- ],
- "starting_column": 38,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "ratio = type()(uint256).max / ratio",
- "source_mapping": {
- "start": 3696,
- "length": 33,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 54
- ],
- "starting_column": 27,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) performs a multiplication on the result of a division:\n\t- ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128 (lib/v3-core/contracts/libraries/TickMath.sol#38)\n\t- ratio = type()(uint256).max / ratio (lib/v3-core/contracts/libraries/TickMath.sol#54)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) performs a multiplication on the result of a division:\n\t- [ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128](lib/v3-core/contracts/libraries/TickMath.sol#L38)\n\t- [ratio = type()(uint256).max / ratio](lib/v3-core/contracts/libraries/TickMath.sol#L54)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "f69dca7a8c89e196d377b110003ab7978a3e4c70f8beb0f4a5f5ab9b6e6e9253",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "denominator = denominator / twos",
- "source_mapping": {
- "start": 2873,
- "length": 37,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 68
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "inv *= 2 - denominator * inv",
- "source_mapping": {
- "start": 4057,
- "length": 28,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 93
- ],
- "starting_column": 13,
- "ending_column": 41
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (lib/v3-core/contracts/libraries/FullMath.sol#68)\n\t- inv *= 2 - denominator * inv (lib/v3-core/contracts/libraries/FullMath.sol#93)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](lib/v3-core/contracts/libraries/FullMath.sol#L68)\n\t- [inv *= 2 - denominator * inv](lib/v3-core/contracts/libraries/FullMath.sol#L93)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "fc5782d775af920a34f30dc7ed31f6d5a4bbf29cb1109a6103908410aba5b1de",
- "check": "divide-before-multiply",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- },
- {
- "type": "node",
- "name": "paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0",
- "source_mapping": {
- "start": 8678,
- "length": 94,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 221
- ],
- "starting_column": 17,
- "ending_column": 111
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- }
- }
- ],
- "description": "DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231) uses a dangerous strict equality:\n\t- paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0 (src/exercise/DiscountExercise.sol#221)\n",
- "markdown": "[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231) uses a dangerous strict equality:\n\t- [paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0](src/exercise/DiscountExercise.sol#L221)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
- "id": "5a880060efcc31cb1efa41190002e874acfb1476c6f4163acb1fb73776ec92a2",
- "check": "incorrect-equality",
- "impact": "Medium",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- },
- {
- "type": "node",
- "name": "_params.from == _params.to || _params.amount == 0",
- "source_mapping": {
- "start": 1243,
- "length": 49,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 39
- ],
- "starting_column": 13,
- "ending_column": 62
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- }
- }
- ],
- "description": "UniV3Mixin._swapUniV3(UniV3Mixin.Params__swapUniV3) (lib/vault-v2/src/mixins/UniV3Mixin.sol#38-69) uses a dangerous strict equality:\n\t- _params.from == _params.to || _params.amount == 0 (lib/vault-v2/src/mixins/UniV3Mixin.sol#39)\n",
- "markdown": "[UniV3Mixin._swapUniV3(UniV3Mixin.Params__swapUniV3)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L38-L69) uses a dangerous strict equality:\n\t- [_params.from == _params.to || _params.amount == 0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L39)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L38-L69",
- "id": "fc396b078296f5d4c0c3927e14de36cf6a3ad91f938e9e10d2e8fa0e437962fc",
- "check": "incorrect-equality",
- "impact": "Medium",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.approve(swapProps.swapper,feeAmount)",
- "source_mapping": {
- "start": 8058,
- "length": 53,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 213
- ],
- "starting_column": 13,
- "ending_column": 66
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)",
- "source_mapping": {
- "start": 8277,
- "length": 138,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 216
- ],
- "starting_column": 13,
- "ending_column": 151
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2488,
- "length": 80,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 75
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2631,
- "length": 78,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 77
- ],
- "starting_column": 13,
- "ending_column": 91
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2778,
- "length": 79,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 79
- ],
- "starting_column": 13,
- "ending_column": 92
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2922,
- "length": 80,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 81
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "feeAmount = 0",
- "source_mapping": {
- "start": 8429,
- "length": 13,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 217
- ],
- "starting_column": 13,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "variables_written",
- "variable_name": "feeAmount"
- }
- }
- ],
- "description": "Reentrancy in DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231):\n\tExternal calls:\n\t- underlyingToken.approve(swapProps.swapper,feeAmount) (src/exercise/DiscountExercise.sol#213)\n\t- _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress) (src/exercise/DiscountExercise.sol#216)\n\t\t- _swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#75)\n\t\t- _swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#77)\n\t\t- _swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#79)\n\t\t- _swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#81)\n\tState variables written after the call(s):\n\t- feeAmount = 0 (src/exercise/DiscountExercise.sol#217)\n\tDiscountExercise.feeAmount (src/exercise/DiscountExercise.sol#75) can be used in cross function reentrancies:\n\t- DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231)\n",
- "markdown": "Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231):\n\tExternal calls:\n\t- [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L213)\n\t- [_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L216)\n\t\t- [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L75)\n\t\t- [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L77)\n\t\t- [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L79)\n\t\t- [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L81)\n\tState variables written after the call(s):\n\t- [feeAmount = 0](src/exercise/DiscountExercise.sol#L217)\n\t[DiscountExercise.feeAmount](src/exercise/DiscountExercise.sol#L75) can be used in cross function reentrancies:\n\t- [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
- "id": "a3da78c5bd6d087b6122e2bce93b85b2799e2ef18234c8a2ad47ba8fa7e94f24",
- "check": "reentrancy-no-eth",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "price",
- "source_mapping": {
- "start": 17664,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 438
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_scaleChainlinkPriceByDigits",
- "source_mapping": {
- "start": 17460,
- "length": 642,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_scaleChainlinkPriceByDigits(uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper._scaleChainlinkPriceByDigits(uint256,uint256).price (lib/vault-v2/src/ReaperSwapper.sol#438) is a local variable never initialized\n",
- "markdown": "[ReaperSwapper._scaleChainlinkPriceByDigits(uint256,uint256).price](lib/vault-v2/src/ReaperSwapper.sol#L438) is a local variable never initialized\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L438",
- "id": "27cbde03367f30635d8b77371e7fe0b61d5b5de3c5ad430c3fe3e8002aed8a7d",
- "check": "uninitialized-local",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "tokenInFound",
- "source_mapping": {
- "start": 3290,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 83
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_updateBalSwapPoolID",
- "source_mapping": {
- "start": 2960,
- "length": 817,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_updateBalSwapPoolID(address,address,address,bytes32)"
- }
- }
- }
- }
- ],
- "description": "BalMixin._updateBalSwapPoolID(address,address,address,bytes32).tokenInFound (lib/vault-v2/src/mixins/BalMixin.sol#83) is a local variable never initialized\n",
- "markdown": "[BalMixin._updateBalSwapPoolID(address,address,address,bytes32).tokenInFound](lib/vault-v2/src/mixins/BalMixin.sol#L83) is a local variable never initialized\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L83",
- "id": "48805492cb64113a3a35ed5ba8c0a2076b664bcd2d067470ba0a3252ebba42b4",
- "check": "uninitialized-local",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "funds",
- "source_mapping": {
- "start": 1661,
- "length": 38,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 49
- ],
- "starting_column": 9,
- "ending_column": 47
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- }
- }
- ],
- "description": "BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool).funds (lib/vault-v2/src/mixins/BalMixin.sol#49) is a local variable never initialized\n",
- "markdown": "[BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool).funds](lib/vault-v2/src/mixins/BalMixin.sol#L49) is a local variable never initialized\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L49",
- "id": "4c14c7b594bf15697ba30539c9ac4c614c10333e52070092d201336e75377b3e",
- "check": "uninitialized-local",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "singleSwap",
- "source_mapping": {
- "start": 1350,
- "length": 39,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 41
- ],
- "starting_column": 9,
- "ending_column": 48
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- }
- }
- ],
- "description": "BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool).singleSwap (lib/vault-v2/src/mixins/BalMixin.sol#41) is a local variable never initialized\n",
- "markdown": "[BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool).singleSwap](lib/vault-v2/src/mixins/BalMixin.sol#L41) is a local variable never initialized\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L41",
- "id": "509fe1a6ba376f87af1d863abc8d6ee153c0a98eb4717a73f4e55d593f047ad6",
- "check": "uninitialized-local",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "predictedOutput",
- "source_mapping": {
- "start": 1332,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 39
- ],
- "starting_column": 9,
- "ending_column": 32
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- }
- }
- ],
- "description": "VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool).predictedOutput (lib/vault-v2/src/mixins/VeloSolidMixin.sol#39) is a local variable never initialized\n",
- "markdown": "[VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool).predictedOutput](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L39) is a local variable never initialized\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/VeloSolidMixin.sol#L39",
- "id": "938d047c5ec8d17161f658c71b9aa0d91ba330139bbace224c8a03181655b082",
- "check": "uninitialized-local",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "tokenOutFound",
- "source_mapping": {
- "start": 3317,
- "length": 18,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 84
- ],
- "starting_column": 9,
- "ending_column": 27
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_updateBalSwapPoolID",
- "source_mapping": {
- "start": 2960,
- "length": 817,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_updateBalSwapPoolID(address,address,address,bytes32)"
- }
- }
- }
- }
- ],
- "description": "BalMixin._updateBalSwapPoolID(address,address,address,bytes32).tokenOutFound (lib/vault-v2/src/mixins/BalMixin.sol#84) is a local variable never initialized\n",
- "markdown": "[BalMixin._updateBalSwapPoolID(address,address,address,bytes32).tokenOutFound](lib/vault-v2/src/mixins/BalMixin.sol#L84) is a local variable never initialized\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L84",
- "id": "c74cd6285af530132a8fd4c04509ac76724208d2ddf2f11af35efb8fcc996c55",
- "check": "uninitialized-local",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_revokeRole",
- "source_mapping": {
- "start": 2572,
- "length": 171,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlEnumerableUpgradeable",
- "source_mapping": {
- "start": 431,
- "length": 2605,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_revokeRole(bytes32,address)"
- }
- },
- {
- "type": "node",
- "name": "_roleMembers[role].remove(account)",
- "source_mapping": {
- "start": 2702,
- "length": 34,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 68
- ],
- "starting_column": 9,
- "ending_column": 43
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_revokeRole",
- "source_mapping": {
- "start": 2572,
- "length": 171,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlEnumerableUpgradeable",
- "source_mapping": {
- "start": 431,
- "length": 2605,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_revokeRole(bytes32,address)"
- }
- }
- }
- }
- ],
- "description": "AccessControlEnumerableUpgradeable._revokeRole(bytes32,address) (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#66-69) ignores return value by _roleMembers[role].remove(account) (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#68)\n",
- "markdown": "[AccessControlEnumerableUpgradeable._revokeRole(bytes32,address)](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L66-L69) ignores return value by [_roleMembers[role].remove(account)](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L68)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L66-L69",
- "id": "076f76790b4c8e077be1617bcc82f2d4381a7a10e8cf41bc646d5208e1b6869d",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getPrice",
- "source_mapping": {
- "start": 3653,
- "length": 2015,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniswapV3Oracle",
- "source_mapping": {
- "start": 729,
- "length": 6210,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getPrice()"
- }
- },
- {
- "type": "node",
- "name": "(tickCumulatives,None) = uniswapPool.observe(secondsAgo)",
- "source_mapping": {
- "start": 4489,
- "length": 67,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 107
- ],
- "starting_column": 13,
- "ending_column": 80
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getPrice",
- "source_mapping": {
- "start": 3653,
- "length": 2015,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniswapV3Oracle",
- "source_mapping": {
- "start": 729,
- "length": 6210,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getPrice()"
- }
- }
- }
- }
- ],
- "description": "UniswapV3Oracle.getPrice() (src/oracles/UniswapV3Oracle.sol#88-127) ignores return value by (tickCumulatives,None) = uniswapPool.observe(secondsAgo) (src/oracles/UniswapV3Oracle.sol#107)\n",
- "markdown": "[UniswapV3Oracle.getPrice()](src/oracles/UniswapV3Oracle.sol#L88-L127) ignores return value by [(tickCumulatives,None) = uniswapPool.observe(secondsAgo)](src/oracles/UniswapV3Oracle.sol#L107)\n",
- "first_markdown_element": "src/oracles/UniswapV3Oracle.sol#L88-L127",
- "id": "15eb9ed8c87b71a5d2ecedd3aa7b4a47cffcd9c5e79ee7bd0e04e3b4eaa86f54",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_updateBalSwapPoolID",
- "source_mapping": {
- "start": 2960,
- "length": 817,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_updateBalSwapPoolID(address,address,address,bytes32)"
- }
- },
- {
- "type": "node",
- "name": "(poolTokens,None,None) = IBeetVault(_vault).getPoolTokens(_poolID)",
- "source_mapping": {
- "start": 3222,
- "length": 58,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 82
- ],
- "starting_column": 9,
- "ending_column": 67
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_updateBalSwapPoolID",
- "source_mapping": {
- "start": 2960,
- "length": 817,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_updateBalSwapPoolID(address,address,address,bytes32)"
- }
- }
- }
- }
- ],
- "description": "BalMixin._updateBalSwapPoolID(address,address,address,bytes32) (lib/vault-v2/src/mixins/BalMixin.sol#79-94) ignores return value by (poolTokens,None,None) = IBeetVault(_vault).getPoolTokens(_poolID) (lib/vault-v2/src/mixins/BalMixin.sol#82)\n",
- "markdown": "[BalMixin._updateBalSwapPoolID(address,address,address,bytes32)](lib/vault-v2/src/mixins/BalMixin.sol#L79-L94) ignores return value by [(poolTokens,None,None) = IBeetVault(_vault).getPoolTokens(_poolID)](lib/vault-v2/src/mixins/BalMixin.sol#L82)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L79-L94",
- "id": "22489e462e2576b06930c1d8cbfbae2e2b553f01d03f9ecb4dda6fe8f67db3c9",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_getCurrentChainlinkResponse",
- "source_mapping": {
- "start": 13273,
- "length": 1334,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getCurrentChainlinkResponse(address)"
- }
- },
- {
- "type": "node",
- "name": "(roundId,answer,timestamp) = aggregatorData[_token].aggregator.latestRoundData()",
- "source_mapping": {
- "start": 13924,
- "length": 677,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_getCurrentChainlinkResponse",
- "source_mapping": {
- "start": 13273,
- "length": 1334,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getCurrentChainlinkResponse(address)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper._getCurrentChainlinkResponse(address) (lib/vault-v2/src/ReaperSwapper.sol#345-373) ignores return value by (roundId,answer,timestamp) = aggregatorData[_token].aggregator.latestRoundData() (lib/vault-v2/src/ReaperSwapper.sol#360-372)\n",
- "markdown": "[ReaperSwapper._getCurrentChainlinkResponse(address)](lib/vault-v2/src/ReaperSwapper.sol#L345-L373) ignores return value by [(roundId,answer,timestamp) = aggregatorData[_token].aggregator.latestRoundData()](lib/vault-v2/src/ReaperSwapper.sol#L360-L372)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L345-L373",
- "id": "30b0452c36c12660b86348533df68749bf1fea5021fb22dbd899a99575905585",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_getPrevChainlinkResponse",
- "source_mapping": {
- "start": 14613,
- "length": 1317,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getPrevChainlinkResponse(address,uint80,uint8)"
- }
- },
- {
- "type": "node",
- "name": "(roundId,answer,timestamp) = aggregatorData[_token].aggregator.getRoundData(_currentRoundId - 1)",
- "source_mapping": {
- "start": 15144,
- "length": 780,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_getPrevChainlinkResponse",
- "source_mapping": {
- "start": 14613,
- "length": 1317,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_getPrevChainlinkResponse(address,uint80,uint8)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper._getPrevChainlinkResponse(address,uint80,uint8) (lib/vault-v2/src/ReaperSwapper.sol#375-400) ignores return value by (roundId,answer,timestamp) = aggregatorData[_token].aggregator.getRoundData(_currentRoundId - 1) (lib/vault-v2/src/ReaperSwapper.sol#386-399)\n",
- "markdown": "[ReaperSwapper._getPrevChainlinkResponse(address,uint80,uint8)](lib/vault-v2/src/ReaperSwapper.sol#L375-L400) ignores return value by [(roundId,answer,timestamp) = aggregatorData[_token].aggregator.getRoundData(_currentRoundId - 1)](lib/vault-v2/src/ReaperSwapper.sol#L386-L399)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L375-L400",
- "id": "3fb1d4622d7ea931b3c26311ca8702c2ec8cb0af6eb5ecafd74d274ba139f513",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_grantRole",
- "source_mapping": {
- "start": 2317,
- "length": 166,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlEnumerableUpgradeable",
- "source_mapping": {
- "start": 431,
- "length": 2605,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_grantRole(bytes32,address)"
- }
- },
- {
- "type": "node",
- "name": "_roleMembers[role].add(account)",
- "source_mapping": {
- "start": 2445,
- "length": 31,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 60
- ],
- "starting_column": 9,
- "ending_column": 40
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_grantRole",
- "source_mapping": {
- "start": 2317,
- "length": 166,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlEnumerableUpgradeable",
- "source_mapping": {
- "start": 431,
- "length": 2605,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_grantRole(bytes32,address)"
- }
- }
- }
- }
- ],
- "description": "AccessControlEnumerableUpgradeable._grantRole(bytes32,address) (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#58-61) ignores return value by _roleMembers[role].add(account) (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#60)\n",
- "markdown": "[AccessControlEnumerableUpgradeable._grantRole(bytes32,address)](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L58-L61) ignores return value by [_roleMembers[role].add(account)](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L60)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L58-L61",
- "id": "620dfa605cb7ea36269a8d3b9fa9056080aa44ef8b103b528893398de697d7d3",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.approve(swapProps.swapper,feeAmount)",
- "source_mapping": {
- "start": 8058,
- "length": 53,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 213
- ],
- "starting_column": 13,
- "ending_column": 66
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- }
- }
- ],
- "description": "DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231) ignores return value by underlyingToken.approve(swapProps.swapper,feeAmount) (src/exercise/DiscountExercise.sol#213)\n",
- "markdown": "[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231) ignores return value by [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L213)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
- "id": "684b7ed11ac84490d20969fb21d74aa2d08d45cf6922ba41e4132debc88f1a3e",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "constructor",
- "source_mapping": {
- "start": 3156,
- "length": 831,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalancerOracle",
- "source_mapping": {
- "start": 892,
- "length": 6454,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "constructor(IBalancerTwapOracle,address,address,uint56,uint56,uint128)"
- }
- },
- {
- "type": "node",
- "name": "(poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle_.getPoolId())",
- "source_mapping": {
- "start": 3415,
- "length": 86,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 78
- ],
- "starting_column": 9,
- "ending_column": 95
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "constructor",
- "source_mapping": {
- "start": 3156,
- "length": 831,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalancerOracle",
- "source_mapping": {
- "start": 892,
- "length": 6454,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "constructor(IBalancerTwapOracle,address,address,uint56,uint56,uint128)"
- }
- }
- }
- }
- ],
- "description": "BalancerOracle.constructor(IBalancerTwapOracle,address,address,uint56,uint56,uint128) (src/oracles/BalancerOracle.sol#74-91) ignores return value by (poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle_.getPoolId()) (src/oracles/BalancerOracle.sol#78)\n",
- "markdown": "[BalancerOracle.constructor(IBalancerTwapOracle,address,address,uint56,uint56,uint128)](src/oracles/BalancerOracle.sol#L74-L91) ignores return value by [(poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle_.getPoolId())](src/oracles/BalancerOracle.sol#L78)\n",
- "first_markdown_element": "src/oracles/BalancerOracle.sol#L74-L91",
- "id": "7fd9ee00c28427211778cf2546b458bdf9a14aa5bafb1c4e696c75da94161789",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2778,
- "length": 79,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 79
- ],
- "starting_column": 13,
- "ending_column": 92
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- }
- }
- ],
- "description": "SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address) (src/helpers/SwapHelper.sol#69-85) ignores return value by _swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#79)\n",
- "markdown": "[SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address)](src/helpers/SwapHelper.sol#L69-L85) ignores return value by [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L79)\n",
- "first_markdown_element": "src/helpers/SwapHelper.sol#L69-L85",
- "id": "905ebf5e0a77bb5ce6a9956a5a938b3fb57ccd447db79e52f28c190ad2b098fc",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2488,
- "length": 80,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 75
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- }
- }
- ],
- "description": "SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address) (src/helpers/SwapHelper.sol#69-85) ignores return value by _swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#75)\n",
- "markdown": "[SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address)](src/helpers/SwapHelper.sol#L69-L85) ignores return value by [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L75)\n",
- "first_markdown_element": "src/helpers/SwapHelper.sol#L69-L85",
- "id": "94dc018090e15555f5a24f270bc2a4e251aa4fd683d1ad6da53e29b9ce36dfc0",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2631,
- "length": 78,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 77
- ],
- "starting_column": 13,
- "ending_column": 91
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- }
- }
- ],
- "description": "SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address) (src/helpers/SwapHelper.sol#69-85) ignores return value by _swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#77)\n",
- "markdown": "[SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address)](src/helpers/SwapHelper.sol#L69-L85) ignores return value by [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L77)\n",
- "first_markdown_element": "src/helpers/SwapHelper.sol#L69-L85",
- "id": "a1f5da77f45788e0404eeff5cf6f3e525a4c1f9dfd972ea1146ab141aae64f48",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_addLiquidityUniV2",
- "source_mapping": {
- "start": 2970,
- "length": 603,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_addLiquidityUniV2(address,address,address,uint256)"
- }
- },
- {
- "type": "node",
- "name": "IUniswapV2Router02(_router).addLiquidity(_lpToken0,_lpToken1,lp0Bal,lp1Bal,0,0,address(this),_deadline)",
- "source_mapping": {
- "start": 3416,
- "length": 140,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 85,
- 86,
- 87
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_addLiquidityUniV2",
- "source_mapping": {
- "start": 2970,
- "length": 603,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_addLiquidityUniV2(address,address,address,uint256)"
- }
- }
- }
- }
- ],
- "description": "UniV2Mixin._addLiquidityUniV2(address,address,address,uint256) (lib/vault-v2/src/mixins/UniV2Mixin.sol#78-89) ignores return value by IUniswapV2Router02(_router).addLiquidity(_lpToken0,_lpToken1,lp0Bal,lp1Bal,0,0,address(this),_deadline) (lib/vault-v2/src/mixins/UniV2Mixin.sol#85-87)\n",
- "markdown": "[UniV2Mixin._addLiquidityUniV2(address,address,address,uint256)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L78-L89) ignores return value by [IUniswapV2Router02(_router).addLiquidity(_lpToken0,_lpToken1,lp0Bal,lp1Bal,0,0,address(this),_deadline)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L85-L87)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV2Mixin.sol#L78-L89",
- "id": "b6d4c23ffa7d93ea78b806ecab3d05e76b1b931c562033f0be3f688a2bf5138c",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2922,
- "length": 80,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 81
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- }
- }
- ],
- "description": "SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address) (src/helpers/SwapHelper.sol#69-85) ignores return value by _swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#81)\n",
- "markdown": "[SwapHelper._generalSwap(ExchangeType,address,address,uint256,uint256,address)](src/helpers/SwapHelper.sol#L69-L85) ignores return value by [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L81)\n",
- "first_markdown_element": "src/helpers/SwapHelper.sol#L69-L85",
- "id": "ba75e8f4ffb4c65ddb6f1b12480fd59208ad29a142771fab28ee7f7006c98513",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getTokens",
- "source_mapping": {
- "start": 5915,
- "length": 481,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalancerOracle",
- "source_mapping": {
- "start": 892,
- "length": 6454,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTokens()"
- }
- },
- {
- "type": "node",
- "name": "(poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle.getPoolId())",
- "source_mapping": {
- "start": 6079,
- "length": 85,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 140
- ],
- "starting_column": 9,
- "ending_column": 94
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTokens",
- "source_mapping": {
- "start": 5915,
- "length": 481,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalancerOracle",
- "source_mapping": {
- "start": 892,
- "length": 6454,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTokens()"
- }
- }
- }
- }
- ],
- "description": "BalancerOracle.getTokens() (src/oracles/BalancerOracle.sol#138-148) ignores return value by (poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle.getPoolId()) (src/oracles/BalancerOracle.sol#140)\n",
- "markdown": "[BalancerOracle.getTokens()](src/oracles/BalancerOracle.sol#L138-L148) ignores return value by [(poolTokens,None,None) = vault.getPoolTokens(balancerTwapOracle.getPoolId())](src/oracles/BalancerOracle.sol#L140)\n",
- "first_markdown_element": "src/oracles/BalancerOracle.sol#L138-L148",
- "id": "d1f99ec9ea9af88978409bc1c5b1676b709fd00041f617d279f7f6efb7773e9a",
- "check": "unused-return",
- "impact": "Medium",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "liquidity",
- "source_mapping": {
- "start": 5469,
- "length": 17,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "is_dependency": true,
- "lines": [
- 93
- ],
- "starting_column": 13,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "positions",
- "source_mapping": {
- "start": 5377,
- "length": 278,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "is_dependency": true,
- "lines": [
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98
- ],
- "starting_column": 5,
- "ending_column": 11
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "IUniswapV3PoolState",
- "source_mapping": {
- "start": 240,
- "length": 6425,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "positions(bytes32)"
- }
- }
- }
- },
- {
- "type": "function",
- "name": "liquidity",
- "source_mapping": {
- "start": 2725,
- "length": 53,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "is_dependency": true,
- "lines": [
- 49
- ],
- "starting_column": 5,
- "ending_column": 58
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "IUniswapV3PoolState",
- "source_mapping": {
- "start": 240,
- "length": 6425,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "liquidity()"
- }
- }
- ],
- "description": "IUniswapV3PoolState.positions(bytes32).liquidity (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#93) shadows:\n\t- IUniswapV3PoolState.liquidity() (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#49) (function)\n",
- "markdown": "[IUniswapV3PoolState.positions(bytes32).liquidity](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L93) shadows:\n\t- [IUniswapV3PoolState.liquidity()](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L49) (function)\n",
- "first_markdown_element": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L93",
- "id": "5e13c1a5ae4fc039231766295753ab663fafa45e8223c9c0d6c847752e70753f",
- "check": "shadowing-local",
- "impact": "Low",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "setMinAmountToTriggerSwap",
- "source_mapping": {
- "start": 6507,
- "length": 152,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 179,
- 180,
- 181
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "setMinAmountToTriggerSwap(uint256)"
- }
- },
- {
- "type": "node",
- "name": "minAmountToTriggerSwap = _minAmountToTriggerSwap",
- "source_mapping": {
- "start": 6604,
- "length": 48,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 180
- ],
- "starting_column": 9,
- "ending_column": 57
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "setMinAmountToTriggerSwap",
- "source_mapping": {
- "start": 6507,
- "length": 152,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 179,
- 180,
- 181
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "setMinAmountToTriggerSwap(uint256)"
- }
- }
- }
- }
- ],
- "description": "DiscountExercise.setMinAmountToTriggerSwap(uint256) (src/exercise/DiscountExercise.sol#179-181) should emit an event for: \n\t- minAmountToTriggerSwap = _minAmountToTriggerSwap (src/exercise/DiscountExercise.sol#180) \n",
- "markdown": "[DiscountExercise.setMinAmountToTriggerSwap(uint256)](src/exercise/DiscountExercise.sol#L179-L181) should emit an event for: \n\t- [minAmountToTriggerSwap = _minAmountToTriggerSwap](src/exercise/DiscountExercise.sol#L180) \n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L179-L181",
- "id": "99c71da5f770edb1feb1845717d2ccb74eb2dfef272d225e93ebde0b29ec024c",
- "check": "events-maths",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "newOwner",
- "source_mapping": {
- "start": 1339,
- "length": 16,
- "filename_relative": "lib/solmate/src/auth/Owned.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
- "filename_short": "lib/solmate/src/auth/Owned.sol",
- "is_dependency": true,
- "lines": [
- 39
- ],
- "starting_column": 32,
- "ending_column": 48
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "transferOwnership",
- "source_mapping": {
- "start": 1312,
- "length": 161,
- "filename_relative": "lib/solmate/src/auth/Owned.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
- "filename_short": "lib/solmate/src/auth/Owned.sol",
- "is_dependency": true,
- "lines": [
- 39,
- 40,
- 41,
- 42,
- 43
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Owned",
- "source_mapping": {
- "start": 215,
- "length": 1260,
- "filename_relative": "lib/solmate/src/auth/Owned.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
- "filename_short": "lib/solmate/src/auth/Owned.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "transferOwnership(address)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "owner = newOwner",
- "source_mapping": {
- "start": 1392,
- "length": 16,
- "filename_relative": "lib/solmate/src/auth/Owned.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
- "filename_short": "lib/solmate/src/auth/Owned.sol",
- "is_dependency": true,
- "lines": [
- 40
- ],
- "starting_column": 9,
- "ending_column": 25
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "transferOwnership",
- "source_mapping": {
- "start": 1312,
- "length": 161,
- "filename_relative": "lib/solmate/src/auth/Owned.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
- "filename_short": "lib/solmate/src/auth/Owned.sol",
- "is_dependency": true,
- "lines": [
- 39,
- 40,
- 41,
- 42,
- 43
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Owned",
- "source_mapping": {
- "start": 215,
- "length": 1260,
- "filename_relative": "lib/solmate/src/auth/Owned.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
- "filename_short": "lib/solmate/src/auth/Owned.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "transferOwnership(address)"
- }
- }
- }
- }
- ],
- "description": "Owned.transferOwnership(address).newOwner (lib/solmate/src/auth/Owned.sol#39) lacks a zero-check on :\n\t\t- owner = newOwner (lib/solmate/src/auth/Owned.sol#40)\n",
- "markdown": "[Owned.transferOwnership(address).newOwner](lib/solmate/src/auth/Owned.sol#L39) lacks a zero-check on :\n\t\t- [owner = newOwner](lib/solmate/src/auth/Owned.sol#L40)\n",
- "first_markdown_element": "lib/solmate/src/auth/Owned.sol#L39",
- "id": "42c5c3a31d57316a6a42a25af3d5437866fe31ad7d20faa9c9e90a828458a168",
- "check": "missing-zero-check",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "tokenAdmin_",
- "source_mapping": {
- "start": 2629,
- "length": 19,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 60
- ],
- "starting_column": 69,
- "ending_column": 88
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "initialize",
- "source_mapping": {
- "start": 2565,
- "length": 279,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "initialize(string,string,address)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "tokenAdmin = tokenAdmin_",
- "source_mapping": {
- "start": 2779,
- "length": 24,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 64
- ],
- "starting_column": 9,
- "ending_column": 33
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "initialize",
- "source_mapping": {
- "start": 2565,
- "length": 279,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "initialize(string,string,address)"
- }
- }
- }
- }
- ],
- "description": "OptionsToken.initialize(string,string,address).tokenAdmin_ (src/OptionsToken.sol#60) lacks a zero-check on :\n\t\t- tokenAdmin = tokenAdmin_ (src/OptionsToken.sol#64)\n",
- "markdown": "[OptionsToken.initialize(string,string,address).tokenAdmin_](src/OptionsToken.sol#L60) lacks a zero-check on :\n\t\t- [tokenAdmin = tokenAdmin_](src/OptionsToken.sol#L64)\n",
- "first_markdown_element": "src/OptionsToken.sol#L60",
- "id": "4786a41866df4f4d6e9a53f76306dff86aa5c64f249a5507c66f1281e3a75404",
- "check": "missing-zero-check",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_nextImplementation",
- "source_mapping": {
- "start": 6725,
- "length": 27,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 162
- ],
- "starting_column": 38,
- "ending_column": 65
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "initiateUpgradeCooldown",
- "source_mapping": {
- "start": 6692,
- "length": 185,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 162,
- 163,
- 164,
- 165
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "initiateUpgradeCooldown(address)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "nextImplementation = _nextImplementation",
- "source_mapping": {
- "start": 6830,
- "length": 40,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 164
- ],
- "starting_column": 9,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "initiateUpgradeCooldown",
- "source_mapping": {
- "start": 6692,
- "length": 185,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 162,
- 163,
- 164,
- 165
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "initiateUpgradeCooldown(address)"
- }
- }
- }
- }
- ],
- "description": "OptionsToken.initiateUpgradeCooldown(address)._nextImplementation (src/OptionsToken.sol#162) lacks a zero-check on :\n\t\t- nextImplementation = _nextImplementation (src/OptionsToken.sol#164)\n",
- "markdown": "[OptionsToken.initiateUpgradeCooldown(address)._nextImplementation](src/OptionsToken.sol#L162) lacks a zero-check on :\n\t\t- [nextImplementation = _nextImplementation](src/OptionsToken.sol#L164)\n",
- "first_markdown_element": "src/OptionsToken.sol#L162",
- "id": "752bb74930b6ee11a2722c36161d6ff0d00b9bc921cae3c938a9df7a3d0a692e",
- "check": "missing-zero-check",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.safeTransfer(to,balance)",
- "source_mapping": {
- "start": 10112,
- "length": 41,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 256
- ],
- "starting_column": 13,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.safeTransfer(to,amount)",
- "source_mapping": {
- "start": 10232,
- "length": 40,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 259
- ],
- "starting_column": 13,
- "ending_column": 53
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.safeTransfer(to,balance)",
- "source_mapping": {
- "start": 10112,
- "length": 41,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 256
- ],
- "starting_column": 13,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.safeTransfer(to,amount)",
- "source_mapping": {
- "start": 10232,
- "length": 40,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 259
- ],
- "starting_column": 13,
- "ending_column": 53
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "credit[to] += remainingAmount",
- "source_mapping": {
- "start": 10292,
- "length": 29,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 261
- ],
- "starting_column": 9,
- "ending_column": 38
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "variables_written",
- "variable_name": "credit"
- }
- }
- ],
- "description": "Reentrancy in DiscountExercise._pay(address,uint256) (src/exercise/DiscountExercise.sol#253-262):\n\tExternal calls:\n\t- underlyingToken.safeTransfer(to,balance) (src/exercise/DiscountExercise.sol#256)\n\t- underlyingToken.safeTransfer(to,amount) (src/exercise/DiscountExercise.sol#259)\n\tState variables written after the call(s):\n\t- credit[to] += remainingAmount (src/exercise/DiscountExercise.sol#261)\n",
- "markdown": "Reentrancy in [DiscountExercise._pay(address,uint256)](src/exercise/DiscountExercise.sol#L253-L262):\n\tExternal calls:\n\t- [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L256)\n\t- [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L259)\n\tState variables written after the call(s):\n\t- [credit[to] += remainingAmount](src/exercise/DiscountExercise.sol#L261)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L253-L262",
- "id": "90b417a7fb4fc819e0ffafdfc6e3850abd2a28d5ee88b307754c749fcc5ac59a",
- "check": "reentrancy-benign",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 5527,
- "length": 89,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 149
- ],
- "starting_column": 9,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4166,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3747,
- "length": 706,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20",
- "source_mapping": {
- "start": 707,
- "length": 3748,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeIncreaseAllowance(_router,_amount)",
- "source_mapping": {
- "start": 1488,
- "length": 53,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 42
- ],
- "starting_column": 9,
- "ending_column": 62
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
- "source_mapping": {
- "start": 1662,
- "length": 422,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeApprove(_router,0)",
- "source_mapping": {
- "start": 1954,
- "length": 37,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 51
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
- "source_mapping": {
- "start": 2114,
- "length": 167,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pullFromBefore(_from,_amount)",
- "source_mapping": {
- "start": 5342,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 147
- ],
- "starting_column": 14,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4298,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3868,
- "length": 717,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20Upgradeable",
- "source_mapping": {
- "start": 740,
- "length": 3847,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)",
- "source_mapping": {
- "start": 19490,
- "length": 85,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 485
- ],
- "starting_column": 9,
- "ending_column": 94
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pullFromBefore",
- "source_mapping": {
- "start": 19424,
- "length": 169,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 484,
- 485,
- 486,
- 487
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pullFromBefore(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pushFromAndToAfter(_from,_to)",
- "source_mapping": {
- "start": 5373,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 147
- ],
- "starting_column": 45,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4298,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3868,
- "length": 717,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20Upgradeable",
- "source_mapping": {
- "start": 740,
- "length": 3847,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)",
- "source_mapping": {
- "start": 19793,
- "length": 66,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 493
- ],
- "starting_column": 13,
- "ending_column": 79
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pushFromAndToAfter",
- "source_mapping": {
- "start": 19599,
- "length": 470,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pushFromAndToAfter(address,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)",
- "source_mapping": {
- "start": 19990,
- "length": 62,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 497
- ],
- "starting_column": 13,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pushFromAndToAfter",
- "source_mapping": {
- "start": 19599,
- "length": 470,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pushFromAndToAfter(address,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 5527,
- "length": 89,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 149
- ],
- "starting_column": 9,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pullFromBefore(_from,_amount)",
- "source_mapping": {
- "start": 5342,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 147
- ],
- "starting_column": 14,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pushFromAndToAfter(_from,_to)",
- "source_mapping": {
- "start": 5373,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 147
- ],
- "starting_column": 45,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "GetAmountsOutFailed(_router,_amount,_from,_to)",
- "source_mapping": {
- "start": 1323,
- "length": 54,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 37
- ],
- "starting_column": 13,
- "ending_column": 67
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 5527,
- "length": 89,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 149
- ],
- "starting_column": 9,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "SwapFailed(_router,_amount,_minAmountOut,_from,_to)",
- "source_mapping": {
- "start": 2009,
- "length": 60,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 52
- ],
- "starting_column": 17,
- "ending_column": 77
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 5527,
- "length": 89,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 149
- ],
- "starting_column": 9,
- "ending_column": 98
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool) (lib/vault-v2/src/ReaperSwapper.sol#139-150):\n\tExternal calls:\n\t- _swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#149)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- IERC20(_from).safeIncreaseAllowance(_router,_amount) (lib/vault-v2/src/mixins/UniV2Mixin.sol#42)\n\t\t- IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/UniV2Mixin.sol#46-53)\n\t\t- IERC20(_from).safeApprove(_router,0) (lib/vault-v2/src/mixins/UniV2Mixin.sol#51)\n\t\t- IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/UniV2Mixin.sol#55-57)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#147)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount) (lib/vault-v2/src/ReaperSwapper.sol#485)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#147)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal) (lib/vault-v2/src/ReaperSwapper.sol#493)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t\t- IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal) (lib/vault-v2/src/ReaperSwapper.sol#497)\n\tExternal calls sending eth:\n\t- _swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#149)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#147)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#147)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\tEvent emitted after the call(s):\n\t- GetAmountsOutFailed(_router,_amount,_from,_to) (lib/vault-v2/src/mixins/UniV2Mixin.sol#37)\n\t\t- _swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#149)\n\t- SwapFailed(_router,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/UniV2Mixin.sol#52)\n\t\t- _swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#149)\n",
- "markdown": "Reentrancy in [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)](lib/vault-v2/src/ReaperSwapper.sol#L139-L150):\n\tExternal calls:\n\t- [_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L149)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [IERC20(_from).safeIncreaseAllowance(_router,_amount)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L42)\n\t\t- [IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L46-L53)\n\t\t- [IERC20(_from).safeApprove(_router,0)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L51)\n\t\t- [IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L55-L57)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L147)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)](lib/vault-v2/src/ReaperSwapper.sol#L485)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L147)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)](lib/vault-v2/src/ReaperSwapper.sol#L493)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t\t- [IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)](lib/vault-v2/src/ReaperSwapper.sol#L497)\n\tExternal calls sending eth:\n\t- [_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L149)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L147)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L147)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\tEvent emitted after the call(s):\n\t- [GetAmountsOutFailed(_router,_amount,_from,_to)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L37)\n\t\t- [_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L149)\n\t- [SwapFailed(_router,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L52)\n\t\t- [_swapUniV2(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L149)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L139-L150",
- "id": "10ddb26acba74e372c85b3164933929baee8d00e79dab8d38b7fdeed4f18d3a0",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 7824,
- "length": 88,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 217
- ],
- "starting_column": 9,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4166,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3747,
- "length": 706,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20",
- "source_mapping": {
- "start": 707,
- "length": 3748,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeIncreaseAllowance(_router,_amount)",
- "source_mapping": {
- "start": 1784,
- "length": 53,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 50
- ],
- "starting_column": 9,
- "ending_column": 62
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
- "source_mapping": {
- "start": 1889,
- "length": 401,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeApprove(_router,0)",
- "source_mapping": {
- "start": 2160,
- "length": 37,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 57
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
- "source_mapping": {
- "start": 2327,
- "length": 210,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pullFromBefore(_from,_amount)",
- "source_mapping": {
- "start": 7639,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 215
- ],
- "starting_column": 14,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4298,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3868,
- "length": 717,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20Upgradeable",
- "source_mapping": {
- "start": 740,
- "length": 3847,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)",
- "source_mapping": {
- "start": 19490,
- "length": 85,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 485
- ],
- "starting_column": 9,
- "ending_column": 94
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pullFromBefore",
- "source_mapping": {
- "start": 19424,
- "length": 169,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 484,
- 485,
- 486,
- 487
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pullFromBefore(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pushFromAndToAfter(_from,_to)",
- "source_mapping": {
- "start": 7670,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 215
- ],
- "starting_column": 45,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4298,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3868,
- "length": 717,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20Upgradeable",
- "source_mapping": {
- "start": 740,
- "length": 3847,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)",
- "source_mapping": {
- "start": 19793,
- "length": 66,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 493
- ],
- "starting_column": 13,
- "ending_column": 79
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pushFromAndToAfter",
- "source_mapping": {
- "start": 19599,
- "length": 470,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pushFromAndToAfter(address,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)",
- "source_mapping": {
- "start": 19990,
- "length": 62,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 497
- ],
- "starting_column": 13,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pushFromAndToAfter",
- "source_mapping": {
- "start": 19599,
- "length": 470,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pushFromAndToAfter(address,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 7824,
- "length": 88,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 217
- ],
- "starting_column": 9,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pullFromBefore(_from,_amount)",
- "source_mapping": {
- "start": 7639,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 215
- ],
- "starting_column": 14,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pushFromAndToAfter(_from,_to)",
- "source_mapping": {
- "start": 7670,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 215
- ],
- "starting_column": 45,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "GetAmountsOutFailed(_router,_amount,_from,_to)",
- "source_mapping": {
- "start": 1619,
- "length": 54,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 45
- ],
- "starting_column": 13,
- "ending_column": 67
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 7824,
- "length": 88,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 217
- ],
- "starting_column": 9,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "SwapFailed(_router,_amount,_minAmountOut,_from,_to)",
- "source_mapping": {
- "start": 2215,
- "length": 60,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 58
- ],
- "starting_column": 17,
- "ending_column": 77
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 7824,
- "length": 88,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 217
- ],
- "starting_column": 9,
- "ending_column": 97
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool) (lib/vault-v2/src/ReaperSwapper.sol#207-218):\n\tExternal calls:\n\t- _swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#217)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- IERC20(_from).safeIncreaseAllowance(_router,_amount) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#50)\n\t\t- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#52-59)\n\t\t- IERC20(_from).safeApprove(_router,0) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#57)\n\t\t- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#62-68)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#215)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount) (lib/vault-v2/src/ReaperSwapper.sol#485)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#215)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal) (lib/vault-v2/src/ReaperSwapper.sol#493)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t\t- IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal) (lib/vault-v2/src/ReaperSwapper.sol#497)\n\tExternal calls sending eth:\n\t- _swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#217)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#215)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#215)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\tEvent emitted after the call(s):\n\t- GetAmountsOutFailed(_router,_amount,_from,_to) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#45)\n\t\t- _swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#217)\n\t- SwapFailed(_router,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#58)\n\t\t- _swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#217)\n",
- "markdown": "Reentrancy in [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)](lib/vault-v2/src/ReaperSwapper.sol#L207-L218):\n\tExternal calls:\n\t- [_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L217)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [IERC20(_from).safeIncreaseAllowance(_router,_amount)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L50)\n\t\t- [router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L52-L59)\n\t\t- [IERC20(_from).safeApprove(_router,0)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L57)\n\t\t- [router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L62-L68)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L215)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)](lib/vault-v2/src/ReaperSwapper.sol#L485)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L215)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)](lib/vault-v2/src/ReaperSwapper.sol#L493)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t\t- [IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)](lib/vault-v2/src/ReaperSwapper.sol#L497)\n\tExternal calls sending eth:\n\t- [_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L217)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L215)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L215)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\tEvent emitted after the call(s):\n\t- [GetAmountsOutFailed(_router,_amount,_from,_to)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L45)\n\t\t- [_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L217)\n\t- [SwapFailed(_router,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L58)\n\t\t- [_swapVelo(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L217)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L207-L218",
- "id": "19acbcb4d6835840db936ed70e0dddd5b1f9569d32cc2f3bbd64ec8e55f0a367",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_redeem",
- "source_mapping": {
- "start": 9155,
- "length": 752,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
- }
- },
- {
- "type": "node",
- "name": "distributeFeesFrom(paymentAmount,paymentToken,from)",
- "source_mapping": {
- "start": 9698,
- "length": 53,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 246
- ],
- "starting_column": 9,
- "ending_column": 62
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_redeem",
- "source_mapping": {
- "start": 9155,
- "length": 752,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4166,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3747,
- "length": 706,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20",
- "source_mapping": {
- "start": 707,
- "length": 3748,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransferFrom(from,feeRecipients[i],feeAmount)",
- "source_mapping": {
- "start": 3306,
- "length": 57,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 79
- ],
- "starting_column": 13,
- "ending_column": 70
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)",
- "source_mapping": {
- "start": 3419,
- "length": 80,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 82
- ],
- "starting_column": 9,
- "ending_column": 89
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_pay(recipient,amount)",
- "source_mapping": {
- "start": 9812,
- "length": 23,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 248
- ],
- "starting_column": 9,
- "ending_column": 32
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_redeem",
- "source_mapping": {
- "start": 9155,
- "length": 752,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4166,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3747,
- "length": 706,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20",
- "source_mapping": {
- "start": 707,
- "length": 3748,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.safeTransfer(to,balance)",
- "source_mapping": {
- "start": 10112,
- "length": 41,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 256
- ],
- "starting_column": 13,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.safeTransfer(to,amount)",
- "source_mapping": {
- "start": 10232,
- "length": 40,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 259
- ],
- "starting_column": 13,
- "ending_column": 53
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "distributeFeesFrom(paymentAmount,paymentToken,from)",
- "source_mapping": {
- "start": 9698,
- "length": 53,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 246
- ],
- "starting_column": 9,
- "ending_column": 62
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_redeem",
- "source_mapping": {
- "start": 9155,
- "length": 752,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_pay(recipient,amount)",
- "source_mapping": {
- "start": 9812,
- "length": 23,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 248
- ],
- "starting_column": 9,
- "ending_column": 32
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_redeem",
- "source_mapping": {
- "start": 9155,
- "length": 752,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "Exercised(from,recipient,amount,paymentAmount)",
- "source_mapping": {
- "start": 9846,
- "length": 54,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 250
- ],
- "starting_column": 9,
- "ending_column": 63
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_redeem",
- "source_mapping": {
- "start": 9155,
- "length": 752,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#234-251):\n\tExternal calls:\n\t- distributeFeesFrom(paymentAmount,paymentToken,from) (src/exercise/DiscountExercise.sol#246)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- token.safeTransferFrom(from,feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#79)\n\t\t- token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#82)\n\t- _pay(recipient,amount) (src/exercise/DiscountExercise.sol#248)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- underlyingToken.safeTransfer(to,balance) (src/exercise/DiscountExercise.sol#256)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- underlyingToken.safeTransfer(to,amount) (src/exercise/DiscountExercise.sol#259)\n\tExternal calls sending eth:\n\t- distributeFeesFrom(paymentAmount,paymentToken,from) (src/exercise/DiscountExercise.sol#246)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- _pay(recipient,amount) (src/exercise/DiscountExercise.sol#248)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\tEvent emitted after the call(s):\n\t- Exercised(from,recipient,amount,paymentAmount) (src/exercise/DiscountExercise.sol#250)\n",
- "markdown": "Reentrancy in [DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L234-L251):\n\tExternal calls:\n\t- [distributeFeesFrom(paymentAmount,paymentToken,from)](src/exercise/DiscountExercise.sol#L246)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L79)\n\t\t- [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L82)\n\t- [_pay(recipient,amount)](src/exercise/DiscountExercise.sol#L248)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L256)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L259)\n\tExternal calls sending eth:\n\t- [distributeFeesFrom(paymentAmount,paymentToken,from)](src/exercise/DiscountExercise.sol#L246)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [_pay(recipient,amount)](src/exercise/DiscountExercise.sol#L248)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\tEvent emitted after the call(s):\n\t- [Exercised(from,recipient,amount,paymentAmount)](src/exercise/DiscountExercise.sol#L250)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L234-L251",
- "id": "26caaa03d129daf1e06f63fba1f271327eb635ddffdba1b035775a48b226290d",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeIncreaseAllowance(_router,_amount)",
- "source_mapping": {
- "start": 1784,
- "length": 53,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 50
- ],
- "starting_column": 9,
- "ending_column": 62
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
- "source_mapping": {
- "start": 1889,
- "length": 401,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeApprove(_router,0)",
- "source_mapping": {
- "start": 2160,
- "length": 37,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 57
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "SwapFailed(_router,_amount,_minAmountOut,_from,_to)",
- "source_mapping": {
- "start": 2215,
- "length": 60,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 58
- ],
- "starting_column": 17,
- "ending_column": 77
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#24-71):\n\tExternal calls:\n\t- IERC20(_from).safeIncreaseAllowance(_router,_amount) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#50)\n\t- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#52-59)\n\t- IERC20(_from).safeApprove(_router,0) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#57)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_router,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#58)\n",
- "markdown": "Reentrancy in [VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L24-L71):\n\tExternal calls:\n\t- [IERC20(_from).safeIncreaseAllowance(_router,_amount)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L50)\n\t- [router.swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L52-L59)\n\t- [IERC20(_from).safeApprove(_router,0)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L57)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_router,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L58)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/VeloSolidMixin.sol#L24-L71",
- "id": "64eb188174f60b500640995e6c3c45d0308f915abcaa5e5dfe2a2d61bb334e63",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 6682,
- "length": 86,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 183
- ],
- "starting_column": 9,
- "ending_column": 95
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4166,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3747,
- "length": 706,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20",
- "source_mapping": {
- "start": 707,
- "length": 3748,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance)",
- "source_mapping": {
- "start": 2092,
- "length": 71,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 59
- ],
- "starting_column": 13,
- "ending_column": 84
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)",
- "source_mapping": {
- "start": 2294,
- "length": 448,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeApprove(_vault,0)",
- "source_mapping": {
- "start": 2596,
- "length": 36,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 69
- ],
- "starting_column": 21,
- "ending_column": 57
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "amountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)",
- "source_mapping": {
- "start": 2772,
- "length": 80,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 74
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pullFromBefore(_from,_amount)",
- "source_mapping": {
- "start": 6497,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 181
- ],
- "starting_column": 14,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4298,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3868,
- "length": 717,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20Upgradeable",
- "source_mapping": {
- "start": 740,
- "length": 3847,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)",
- "source_mapping": {
- "start": 19490,
- "length": 85,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 485
- ],
- "starting_column": 9,
- "ending_column": 94
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pullFromBefore",
- "source_mapping": {
- "start": 19424,
- "length": 169,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 484,
- 485,
- 486,
- 487
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pullFromBefore(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pushFromAndToAfter(_from,_to)",
- "source_mapping": {
- "start": 6528,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 181
- ],
- "starting_column": 45,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4298,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3868,
- "length": 717,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20Upgradeable",
- "source_mapping": {
- "start": 740,
- "length": 3847,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)",
- "source_mapping": {
- "start": 19793,
- "length": 66,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 493
- ],
- "starting_column": 13,
- "ending_column": 79
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pushFromAndToAfter",
- "source_mapping": {
- "start": 19599,
- "length": 470,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pushFromAndToAfter(address,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)",
- "source_mapping": {
- "start": 19990,
- "length": 62,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 497
- ],
- "starting_column": 13,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pushFromAndToAfter",
- "source_mapping": {
- "start": 19599,
- "length": 470,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pushFromAndToAfter(address,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 6682,
- "length": 86,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 183
- ],
- "starting_column": 9,
- "ending_column": 95
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pullFromBefore(_from,_amount)",
- "source_mapping": {
- "start": 6497,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 181
- ],
- "starting_column": 14,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pushFromAndToAfter(_from,_to)",
- "source_mapping": {
- "start": 6528,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 181
- ],
- "starting_column": 45,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "SwapFailed(_vault,_amount,_minAmountOut,_from,_to)",
- "source_mapping": {
- "start": 2668,
- "length": 59,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 71
- ],
- "starting_column": 17,
- "ending_column": 76
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)",
- "source_mapping": {
- "start": 6682,
- "length": 86,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 183
- ],
- "starting_column": 9,
- "ending_column": 95
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool) (lib/vault-v2/src/ReaperSwapper.sol#173-184):\n\tExternal calls:\n\t- _swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#183)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance) (lib/vault-v2/src/mixins/BalMixin.sol#59)\n\t\t- tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline) (lib/vault-v2/src/mixins/BalMixin.sol#64-72)\n\t\t- IERC20(_from).safeApprove(_vault,0) (lib/vault-v2/src/mixins/BalMixin.sol#69)\n\t\t- amountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline) (lib/vault-v2/src/mixins/BalMixin.sol#74)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#181)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount) (lib/vault-v2/src/ReaperSwapper.sol#485)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#181)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal) (lib/vault-v2/src/ReaperSwapper.sol#493)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t\t- IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal) (lib/vault-v2/src/ReaperSwapper.sol#497)\n\tExternal calls sending eth:\n\t- _swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#183)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#181)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#181)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_vault,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/BalMixin.sol#71)\n\t\t- _swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive) (lib/vault-v2/src/ReaperSwapper.sol#183)\n",
- "markdown": "Reentrancy in [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)](lib/vault-v2/src/ReaperSwapper.sol#L173-L184):\n\tExternal calls:\n\t- [_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L183)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance)](lib/vault-v2/src/mixins/BalMixin.sol#L59)\n\t\t- [tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)](lib/vault-v2/src/mixins/BalMixin.sol#L64-L72)\n\t\t- [IERC20(_from).safeApprove(_vault,0)](lib/vault-v2/src/mixins/BalMixin.sol#L69)\n\t\t- [amountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)](lib/vault-v2/src/mixins/BalMixin.sol#L74)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L181)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)](lib/vault-v2/src/ReaperSwapper.sol#L485)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L181)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)](lib/vault-v2/src/ReaperSwapper.sol#L493)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t\t- [IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)](lib/vault-v2/src/ReaperSwapper.sol#L497)\n\tExternal calls sending eth:\n\t- [_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L183)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L181)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L181)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_vault,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/BalMixin.sol#L71)\n\t\t- [_swapBal(_from,_to,_amount,minAmountOut,_vault,_deadline,_tryCatchActive)](lib/vault-v2/src/ReaperSwapper.sol#L183)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L173-L184",
- "id": "6afd47a6cc546c6f39cd92034e38da33b560d04fbd75a1655a8c2dfb29e08cdd",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- },
- {
- "type": "node",
- "name": "TransferHelper.safeApprove(path[0],_params.router,_params.amount)",
- "source_mapping": {
- "start": 1708,
- "length": 67,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 49
- ],
- "starting_column": 9,
- "ending_column": 76
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "tmpAmountOut = ISwapRouter(_params.router).exactInput(params)",
- "source_mapping": {
- "start": 2186,
- "length": 346,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 60,
- 61,
- 62,
- 63,
- 64,
- 65
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "TransferHelper.safeApprove(path[0],_params.router,0)",
- "source_mapping": {
- "start": 2350,
- "length": 54,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 63
- ],
- "starting_column": 17,
- "ending_column": 71
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to)",
- "source_mapping": {
- "start": 2422,
- "length": 95,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 64
- ],
- "starting_column": 17,
- "ending_column": 112
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in UniV3Mixin._swapUniV3(UniV3Mixin.Params__swapUniV3) (lib/vault-v2/src/mixins/UniV3Mixin.sol#38-69):\n\tExternal calls:\n\t- TransferHelper.safeApprove(path[0],_params.router,_params.amount) (lib/vault-v2/src/mixins/UniV3Mixin.sol#49)\n\t- tmpAmountOut = ISwapRouter(_params.router).exactInput(params) (lib/vault-v2/src/mixins/UniV3Mixin.sol#60-65)\n\t- TransferHelper.safeApprove(path[0],_params.router,0) (lib/vault-v2/src/mixins/UniV3Mixin.sol#63)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to) (lib/vault-v2/src/mixins/UniV3Mixin.sol#64)\n",
- "markdown": "Reentrancy in [UniV3Mixin._swapUniV3(UniV3Mixin.Params__swapUniV3)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L38-L69):\n\tExternal calls:\n\t- [TransferHelper.safeApprove(path[0],_params.router,_params.amount)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L49)\n\t- [tmpAmountOut = ISwapRouter(_params.router).exactInput(params)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L60-L65)\n\t- [TransferHelper.safeApprove(path[0],_params.router,0)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L63)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L64)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L38-L69",
- "id": "7476c00ea23c811b6774a0358c1ce4170dea75590e0878323a36cacc5adb0379",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance)",
- "source_mapping": {
- "start": 2092,
- "length": 71,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 59
- ],
- "starting_column": 13,
- "ending_column": 84
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)",
- "source_mapping": {
- "start": 2294,
- "length": 448,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeApprove(_vault,0)",
- "source_mapping": {
- "start": 2596,
- "length": 36,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 69
- ],
- "starting_column": 21,
- "ending_column": 57
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "SwapFailed(_vault,_amount,_minAmountOut,_from,_to)",
- "source_mapping": {
- "start": 2668,
- "length": 59,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 71
- ],
- "starting_column": 17,
- "ending_column": 76
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/BalMixin.sol#25-76):\n\tExternal calls:\n\t- IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance) (lib/vault-v2/src/mixins/BalMixin.sol#59)\n\t- tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline) (lib/vault-v2/src/mixins/BalMixin.sol#64-72)\n\t- IERC20(_from).safeApprove(_vault,0) (lib/vault-v2/src/mixins/BalMixin.sol#69)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_vault,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/BalMixin.sol#71)\n",
- "markdown": "Reentrancy in [BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/BalMixin.sol#L25-L76):\n\tExternal calls:\n\t- [IERC20(_from).safeIncreaseAllowance(_vault,_amount - currentAllowance)](lib/vault-v2/src/mixins/BalMixin.sol#L59)\n\t- [tmpAmountOut = IBeetVault(_vault).swap(singleSwap,funds,_minAmountOut,_deadline)](lib/vault-v2/src/mixins/BalMixin.sol#L64-L72)\n\t- [IERC20(_from).safeApprove(_vault,0)](lib/vault-v2/src/mixins/BalMixin.sol#L69)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_vault,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/BalMixin.sol#L71)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L25-L76",
- "id": "77714ef1ffc67e587fe7e535481ee61f37a6029f67e7f2a1b6502b530a92b385",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_exercise",
- "source_mapping": {
- "start": 5470,
- "length": 847,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_exercise(uint256,address,address,bytes)"
- }
- },
- {
- "type": "node",
- "name": "(paymentAmount,data0,data1,data2) = IExercise(option).exercise(msg.sender,amount,recipient,params)",
- "source_mapping": {
- "start": 6108,
- "length": 104,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 148
- ],
- "starting_column": 9,
- "ending_column": 113
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_exercise",
- "source_mapping": {
- "start": 5470,
- "length": 847,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_exercise(uint256,address,address,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "Exercise(msg.sender,recipient,amount,data0,data1,data2)",
- "source_mapping": {
- "start": 6245,
- "length": 65,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 151
- ],
- "starting_column": 9,
- "ending_column": 74
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_exercise",
- "source_mapping": {
- "start": 5470,
- "length": 847,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_exercise(uint256,address,address,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in OptionsToken._exercise(uint256,address,address,bytes) (src/OptionsToken.sol#128-152):\n\tExternal calls:\n\t- (paymentAmount,data0,data1,data2) = IExercise(option).exercise(msg.sender,amount,recipient,params) (src/OptionsToken.sol#148)\n\tEvent emitted after the call(s):\n\t- Exercise(msg.sender,recipient,amount,data0,data1,data2) (src/OptionsToken.sol#151)\n",
- "markdown": "Reentrancy in [OptionsToken._exercise(uint256,address,address,bytes)](src/OptionsToken.sol#L128-L152):\n\tExternal calls:\n\t- [(paymentAmount,data0,data1,data2) = IExercise(option).exercise(msg.sender,amount,recipient,params)](src/OptionsToken.sol#L148)\n\tEvent emitted after the call(s):\n\t- [Exercise(msg.sender,recipient,amount,data0,data1,data2)](src/OptionsToken.sol#L151)\n",
- "first_markdown_element": "src/OptionsToken.sol#L128-L152",
- "id": "9647d6058a2a1f10ef7714d6f960ae5b85d86b4e1fcd2ffd512fd2031b5d6fe7",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeIncreaseAllowance(_router,_amount)",
- "source_mapping": {
- "start": 1488,
- "length": 53,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 42
- ],
- "starting_column": 9,
- "ending_column": 62
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)",
- "source_mapping": {
- "start": 1662,
- "length": 422,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "IERC20(_from).safeApprove(_router,0)",
- "source_mapping": {
- "start": 1954,
- "length": 37,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 51
- ],
- "starting_column": 17,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "SwapFailed(_router,_amount,_minAmountOut,_from,_to)",
- "source_mapping": {
- "start": 2009,
- "length": 60,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 52
- ],
- "starting_column": 17,
- "ending_column": 77
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in UniV2Mixin._swapUniV2(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/UniV2Mixin.sol#20-60):\n\tExternal calls:\n\t- IERC20(_from).safeIncreaseAllowance(_router,_amount) (lib/vault-v2/src/mixins/UniV2Mixin.sol#42)\n\t- IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline) (lib/vault-v2/src/mixins/UniV2Mixin.sol#46-53)\n\t- IERC20(_from).safeApprove(_router,0) (lib/vault-v2/src/mixins/UniV2Mixin.sol#51)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_router,_amount,_minAmountOut,_from,_to) (lib/vault-v2/src/mixins/UniV2Mixin.sol#52)\n",
- "markdown": "Reentrancy in [UniV2Mixin._swapUniV2(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L20-L60):\n\tExternal calls:\n\t- [IERC20(_from).safeIncreaseAllowance(_router,_amount)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L42)\n\t- [IUniswapV2Router02(_router).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount,_minAmountOut,path,address(this),_deadline)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L46-L53)\n\t- [IERC20(_from).safeApprove(_router,0)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L51)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_router,_amount,_minAmountOut,_from,_to)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L52)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV2Mixin.sol#L20-L60",
- "id": "b59ab902647dd201a6cd9aca4552dafa018066963efcc3219bd8955570f9b1e5",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransferFrom(from,feeRecipients[i],feeAmount)",
- "source_mapping": {
- "start": 3306,
- "length": 57,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 79
- ],
- "starting_column": 13,
- "ending_column": 70
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)",
- "source_mapping": {
- "start": 3419,
- "length": 80,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 82
- ],
- "starting_column": 9,
- "ending_column": 89
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "DistributeFees(feeRecipients,feeBPS,totalAmount)",
- "source_mapping": {
- "start": 3509,
- "length": 55,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 83
- ],
- "starting_column": 9,
- "ending_column": 64
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFeesFrom",
- "source_mapping": {
- "start": 3017,
- "length": 554,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFeesFrom(uint256,IERC20,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in BaseExercise.distributeFeesFrom(uint256,IERC20,address) (src/exercise/BaseExercise.sol#75-84):\n\tExternal calls:\n\t- token.safeTransferFrom(from,feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#79)\n\t- token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#82)\n\tEvent emitted after the call(s):\n\t- DistributeFees(feeRecipients,feeBPS,totalAmount) (src/exercise/BaseExercise.sol#83)\n",
- "markdown": "Reentrancy in [BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L75-L84):\n\tExternal calls:\n\t- [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L79)\n\t- [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L82)\n\tEvent emitted after the call(s):\n\t- [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L83)\n",
- "first_markdown_element": "src/exercise/BaseExercise.sol#L75-L84",
- "id": "bf1b099632b824aafcfad9a23ac98bf3dcb6b4fb4b4b5ae04e209e3b61acc42f",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransfer(feeRecipients[i],feeAmount)",
- "source_mapping": {
- "start": 4121,
- "length": 47,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 94
- ],
- "starting_column": 13,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)",
- "source_mapping": {
- "start": 4224,
- "length": 70,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 97
- ],
- "starting_column": 9,
- "ending_column": 79
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "DistributeFees(feeRecipients,feeBPS,totalAmount)",
- "source_mapping": {
- "start": 4304,
- "length": 55,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 98
- ],
- "starting_column": 9,
- "ending_column": 64
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in BaseExercise.distributeFees(uint256,IERC20) (src/exercise/BaseExercise.sol#88-99):\n\tExternal calls:\n\t- token.safeTransfer(feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#94)\n\t- token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#97)\n\tEvent emitted after the call(s):\n\t- DistributeFees(feeRecipients,feeBPS,totalAmount) (src/exercise/BaseExercise.sol#98)\n",
- "markdown": "Reentrancy in [BaseExercise.distributeFees(uint256,IERC20)](src/exercise/BaseExercise.sol#L88-L99):\n\tExternal calls:\n\t- [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L94)\n\t- [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L97)\n\tEvent emitted after the call(s):\n\t- [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L98)\n",
- "first_markdown_element": "src/exercise/BaseExercise.sol#L88-L99",
- "id": "cc6f76bc69057bc8d1566793027f78e4e33511dc9a9f9b389b45a7c32f934e73",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.approve(swapProps.swapper,feeAmount)",
- "source_mapping": {
- "start": 8058,
- "length": 53,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 213
- ],
- "starting_column": 13,
- "ending_column": 66
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)",
- "source_mapping": {
- "start": 8277,
- "length": 138,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 216
- ],
- "starting_column": 13,
- "ending_column": 151
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2488,
- "length": 80,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 75
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2631,
- "length": 78,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 77
- ],
- "starting_column": 13,
- "ending_column": 91
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2778,
- "length": 79,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 79
- ],
- "starting_column": 13,
- "ending_column": 92
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2922,
- "length": 80,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 81
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
- "source_mapping": {
- "start": 8593,
- "length": 67,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 220
- ],
- "starting_column": 13,
- "ending_column": 80
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4166,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3747,
- "length": 706,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20",
- "source_mapping": {
- "start": 707,
- "length": 3748,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransfer(feeRecipients[i],feeAmount)",
- "source_mapping": {
- "start": 4121,
- "length": 47,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 94
- ],
- "starting_column": 13,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)",
- "source_mapping": {
- "start": 4224,
- "length": 70,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 97
- ],
- "starting_column": 9,
- "ending_column": 79
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_pay(recipient,underlyingAmount)",
- "source_mapping": {
- "start": 9007,
- "length": 33,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 228
- ],
- "starting_column": 9,
- "ending_column": 42
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4166,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3747,
- "length": 706,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20",
- "source_mapping": {
- "start": 707,
- "length": 3748,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.safeTransfer(to,balance)",
- "source_mapping": {
- "start": 10112,
- "length": 41,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 256
- ],
- "starting_column": 13,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.safeTransfer(to,amount)",
- "source_mapping": {
- "start": 10232,
- "length": 40,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 259
- ],
- "starting_column": 13,
- "ending_column": 53
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_pay",
- "source_mapping": {
- "start": 9913,
- "length": 415,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_pay(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
- "source_mapping": {
- "start": 8593,
- "length": 67,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 220
- ],
- "starting_column": 13,
- "ending_column": 80
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_pay(recipient,underlyingAmount)",
- "source_mapping": {
- "start": 9007,
- "length": 33,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 228
- ],
- "starting_column": 9,
- "ending_column": 42
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "Exercised(from,recipient,underlyingAmount,paymentAmount)",
- "source_mapping": {
- "start": 9051,
- "length": 64,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 230
- ],
- "starting_column": 9,
- "ending_column": 73
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231):\n\tExternal calls:\n\t- underlyingToken.approve(swapProps.swapper,feeAmount) (src/exercise/DiscountExercise.sol#213)\n\t- _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress) (src/exercise/DiscountExercise.sol#216)\n\t\t- _swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#75)\n\t\t- _swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#77)\n\t\t- _swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#79)\n\t\t- _swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#81)\n\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- token.safeTransfer(feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#94)\n\t\t- token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#97)\n\t- _pay(recipient,underlyingAmount) (src/exercise/DiscountExercise.sol#228)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- underlyingToken.safeTransfer(to,balance) (src/exercise/DiscountExercise.sol#256)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- underlyingToken.safeTransfer(to,amount) (src/exercise/DiscountExercise.sol#259)\n\tExternal calls sending eth:\n\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t- _pay(recipient,underlyingAmount) (src/exercise/DiscountExercise.sol#228)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\tEvent emitted after the call(s):\n\t- Exercised(from,recipient,underlyingAmount,paymentAmount) (src/exercise/DiscountExercise.sol#230)\n",
- "markdown": "Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231):\n\tExternal calls:\n\t- [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L213)\n\t- [_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L216)\n\t\t- [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L75)\n\t\t- [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L77)\n\t\t- [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L79)\n\t\t- [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L81)\n\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L94)\n\t\t- [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L97)\n\t- [_pay(recipient,underlyingAmount)](src/exercise/DiscountExercise.sol#L228)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L256)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L259)\n\tExternal calls sending eth:\n\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t- [_pay(recipient,underlyingAmount)](src/exercise/DiscountExercise.sol#L228)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\tEvent emitted after the call(s):\n\t- [Exercised(from,recipient,underlyingAmount,paymentAmount)](src/exercise/DiscountExercise.sol#L230)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
- "id": "e13cadbb7879bfd546c8fbbad0a7fe265276aed28f548d1bc238ae613cc8ff47",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "_swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive))",
- "source_mapping": {
- "start": 8977,
- "length": 108,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 251
- ],
- "starting_column": 9,
- "ending_column": 117
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "(success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value))",
- "source_mapping": {
- "start": 1866,
- "length": 106,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 35
- ],
- "starting_column": 9,
- "ending_column": 115
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "safeApprove",
- "source_mapping": {
- "start": 1784,
- "length": 277,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 34,
- 35,
- 36,
- 37
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeApprove(address,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "TransferHelper.safeApprove(path[0],_params.router,_params.amount)",
- "source_mapping": {
- "start": 1708,
- "length": 67,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 49
- ],
- "starting_column": 9,
- "ending_column": 76
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "tmpAmountOut = ISwapRouter(_params.router).exactInput(params)",
- "source_mapping": {
- "start": 2186,
- "length": 346,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 60,
- 61,
- 62,
- 63,
- 64,
- 65
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "TransferHelper.safeApprove(path[0],_params.router,0)",
- "source_mapping": {
- "start": 2350,
- "length": 54,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 63
- ],
- "starting_column": 17,
- "ending_column": 71
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "amountOut = ISwapRouter(_params.router).exactInput(params)",
- "source_mapping": {
- "start": 2562,
- "length": 58,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 67
- ],
- "starting_column": 13,
- "ending_column": 71
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pullFromBefore(_from,_amount)",
- "source_mapping": {
- "start": 8792,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 249
- ],
- "starting_column": 14,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4298,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3868,
- "length": 717,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20Upgradeable",
- "source_mapping": {
- "start": 740,
- "length": 3847,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)",
- "source_mapping": {
- "start": 19490,
- "length": 85,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 485
- ],
- "starting_column": 9,
- "ending_column": 94
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pullFromBefore",
- "source_mapping": {
- "start": 19424,
- "length": 169,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 484,
- 485,
- 486,
- 487
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pullFromBefore(address,uint256)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pushFromAndToAfter(_from,_to)",
- "source_mapping": {
- "start": 8823,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 249
- ],
- "starting_column": 45,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4298,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3868,
- "length": 717,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20Upgradeable",
- "source_mapping": {
- "start": 740,
- "length": 3847,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20Upgradeable,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)",
- "source_mapping": {
- "start": 19793,
- "length": 66,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 493
- ],
- "starting_column": 13,
- "ending_column": 79
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pushFromAndToAfter",
- "source_mapping": {
- "start": 19599,
- "length": 470,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pushFromAndToAfter(address,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)",
- "source_mapping": {
- "start": 19990,
- "length": 62,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 497
- ],
- "starting_column": 13,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "pushFromAndToAfter",
- "source_mapping": {
- "start": 19599,
- "length": 470,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "pushFromAndToAfter(address,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pullFromBefore(_from,_amount)",
- "source_mapping": {
- "start": 8792,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 249
- ],
- "starting_column": 14,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "pushFromAndToAfter(_from,_to)",
- "source_mapping": {
- "start": 8823,
- "length": 30,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 249
- ],
- "starting_column": 45,
- "ending_column": 75
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to)",
- "source_mapping": {
- "start": 2422,
- "length": 95,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 64
- ],
- "starting_column": 17,
- "ending_column": 112
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV3",
- "source_mapping": {
- "start": 1138,
- "length": 1499,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV3(UniV3Mixin.Params__swapUniV3)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "_swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive))",
- "source_mapping": {
- "start": 8977,
- "length": 108,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 251
- ],
- "starting_column": 9,
- "ending_column": 117
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool) (lib/vault-v2/src/ReaperSwapper.sol#241-252):\n\tExternal calls:\n\t- _swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)) (lib/vault-v2/src/ReaperSwapper.sol#251)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value)) (lib/vault-v2/src/libraries/TransferHelper.sol#35)\n\t\t- TransferHelper.safeApprove(path[0],_params.router,_params.amount) (lib/vault-v2/src/mixins/UniV3Mixin.sol#49)\n\t\t- tmpAmountOut = ISwapRouter(_params.router).exactInput(params) (lib/vault-v2/src/mixins/UniV3Mixin.sol#60-65)\n\t\t- TransferHelper.safeApprove(path[0],_params.router,0) (lib/vault-v2/src/mixins/UniV3Mixin.sol#63)\n\t\t- amountOut = ISwapRouter(_params.router).exactInput(params) (lib/vault-v2/src/mixins/UniV3Mixin.sol#67)\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#249)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount) (lib/vault-v2/src/ReaperSwapper.sol#485)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#249)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#110)\n\t\t- IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal) (lib/vault-v2/src/ReaperSwapper.sol#493)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t\t- IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal) (lib/vault-v2/src/ReaperSwapper.sol#497)\n\tExternal calls sending eth:\n\t- pullFromBefore(_from,_amount) (lib/vault-v2/src/ReaperSwapper.sol#249)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\t- pushFromAndToAfter(_from,_to) (lib/vault-v2/src/ReaperSwapper.sol#249)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n\tEvent emitted after the call(s):\n\t- SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to) (lib/vault-v2/src/mixins/UniV3Mixin.sol#64)\n\t\t- _swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive)) (lib/vault-v2/src/ReaperSwapper.sol#251)\n",
- "markdown": "Reentrancy in [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)](lib/vault-v2/src/ReaperSwapper.sol#L241-L252):\n\tExternal calls:\n\t- [_swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive))](lib/vault-v2/src/ReaperSwapper.sol#L251)\n\t\t- [(success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value))](lib/vault-v2/src/libraries/TransferHelper.sol#L35)\n\t\t- [TransferHelper.safeApprove(path[0],_params.router,_params.amount)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L49)\n\t\t- [tmpAmountOut = ISwapRouter(_params.router).exactInput(params)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L60-L65)\n\t\t- [TransferHelper.safeApprove(path[0],_params.router,0)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L63)\n\t\t- [amountOut = ISwapRouter(_params.router).exactInput(params)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L67)\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L249)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransferFrom(msg.sender,address(this),_amount)](lib/vault-v2/src/ReaperSwapper.sol#L485)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L249)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L110)\n\t\t- [IERC20MetadataUpgradeable(_from).safeTransfer(msg.sender,fromBal)](lib/vault-v2/src/ReaperSwapper.sol#L493)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t\t- [IERC20MetadataUpgradeable(_to).safeTransfer(msg.sender,toBal)](lib/vault-v2/src/ReaperSwapper.sol#L497)\n\tExternal calls sending eth:\n\t- [pullFromBefore(_from,_amount)](lib/vault-v2/src/ReaperSwapper.sol#L249)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\t- [pushFromAndToAfter(_from,_to)](lib/vault-v2/src/ReaperSwapper.sol#L249)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n\tEvent emitted after the call(s):\n\t- [SwapFailed(_params.router,_params.amount,_params.minAmountOut,_params.from,_params.to)](lib/vault-v2/src/mixins/UniV3Mixin.sol#L64)\n\t\t- [_swapUniV3(Params__swapUniV3(_from,_to,_amount,minAmountOut,_router,_deadline,_tryCatchActive))](lib/vault-v2/src/ReaperSwapper.sol#L251)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L241-L252",
- "id": "e7ec4df5ce298c28fd7e1b953f526ffa840951ed878c7159f2eb300e06952fab",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- },
- {
- "type": "node",
- "name": "underlyingToken.approve(swapProps.swapper,feeAmount)",
- "source_mapping": {
- "start": 8058,
- "length": 53,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 213
- ],
- "starting_column": 13,
- "ending_column": 66
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)",
- "source_mapping": {
- "start": 8277,
- "length": 138,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 216
- ],
- "starting_column": 13,
- "ending_column": 151
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2488,
- "length": 80,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 75
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2631,
- "length": 78,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 77
- ],
- "starting_column": 13,
- "ending_column": 91
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2778,
- "length": 79,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 79
- ],
- "starting_column": 13,
- "ending_column": 92
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)",
- "source_mapping": {
- "start": 2922,
- "length": 80,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 81
- ],
- "starting_column": 13,
- "ending_column": 93
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_generalSwap",
- "source_mapping": {
- "start": 2091,
- "length": 1014,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_generalSwap(ExchangeType,address,address,uint256,uint256,address)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
- "source_mapping": {
- "start": 8593,
- "length": 67,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 220
- ],
- "starting_column": 13,
- "ending_column": 80
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls"
- }
- },
- {
- "type": "node",
- "name": "returndata = address(token).functionCall(data,SafeERC20: low-level call failed)",
- "source_mapping": {
- "start": 4166,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 110
- ],
- "starting_column": 9,
- "ending_column": 104
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_callOptionalReturn",
- "source_mapping": {
- "start": 3747,
- "length": 706,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SafeERC20",
- "source_mapping": {
- "start": 707,
- "length": 3748,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_callOptionalReturn(IERC20,bytes)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransfer(feeRecipients[i],feeAmount)",
- "source_mapping": {
- "start": 4121,
- "length": 47,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 94
- ],
- "starting_column": 13,
- "ending_column": 60
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)",
- "source_mapping": {
- "start": 4224,
- "length": 70,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 97
- ],
- "starting_column": 9,
- "ending_column": 79
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
- "source_mapping": {
- "start": 8593,
- "length": 67,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 220
- ],
- "starting_column": 13,
- "ending_column": 80
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "external_calls_sending_eth"
- }
- },
- {
- "type": "node",
- "name": "DistributeFees(feeRecipients,feeBPS,totalAmount)",
- "source_mapping": {
- "start": 4304,
- "length": 55,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 98
- ],
- "starting_column": 9,
- "ending_column": 64
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "distributeFees",
- "source_mapping": {
- "start": 3762,
- "length": 604,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "distributeFees(uint256,IERC20)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- },
- {
- "type": "node",
- "name": "distributeFees(paymentToken.balanceOf(address(this)),paymentToken)",
- "source_mapping": {
- "start": 8593,
- "length": 67,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 220
- ],
- "starting_column": 13,
- "ending_column": 80
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- },
- "additional_fields": {
- "underlying_type": "event"
- }
- }
- ],
- "description": "Reentrancy in DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231):\n\tExternal calls:\n\t- underlyingToken.approve(swapProps.swapper,feeAmount) (src/exercise/DiscountExercise.sol#213)\n\t- _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress) (src/exercise/DiscountExercise.sol#216)\n\t\t- _swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#75)\n\t\t- _swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#77)\n\t\t- _swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#79)\n\t\t- _swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress) (src/helpers/SwapHelper.sol#81)\n\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n\t\t- returndata = address(token).functionCall(data,SafeERC20: low-level call failed) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\t\t- token.safeTransfer(feeRecipients[i],feeAmount) (src/exercise/BaseExercise.sol#94)\n\t\t- token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining) (src/exercise/BaseExercise.sol#97)\n\tExternal calls sending eth:\n\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n\t\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n\tEvent emitted after the call(s):\n\t- DistributeFees(feeRecipients,feeBPS,totalAmount) (src/exercise/BaseExercise.sol#98)\n\t\t- distributeFees(paymentToken.balanceOf(address(this)),paymentToken) (src/exercise/DiscountExercise.sol#220)\n",
- "markdown": "Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231):\n\tExternal calls:\n\t- [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L213)\n\t- [_generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L216)\n\t\t- [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L75)\n\t\t- [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L77)\n\t\t- [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L79)\n\t\t- [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L81)\n\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n\t\t- [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\t\t- [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L94)\n\t\t- [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L97)\n\tExternal calls sending eth:\n\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n\t\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n\tEvent emitted after the call(s):\n\t- [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L98)\n\t\t- [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L220)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
- "id": "fac3c8628962c8c145b9cc713e68a80a082c54c497a1d117e7426d73343a5856",
- "check": "reentrancy-events",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "permit",
- "source_mapping": {
- "start": 3838,
- "length": 1483,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC20",
- "source_mapping": {
- "start": 474,
- "length": 6337,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"
- }
- },
- {
- "type": "node",
- "name": "require(bool,string)(deadline >= block.timestamp,PERMIT_DEADLINE_EXPIRED)",
- "source_mapping": {
- "start": 4037,
- "length": 63,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 125
- ],
- "starting_column": 9,
- "ending_column": 72
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "permit",
- "source_mapping": {
- "start": 3838,
- "length": 1483,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC20",
- "source_mapping": {
- "start": 474,
- "length": 6337,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"
- }
- }
- }
- }
- ],
- "description": "ERC20.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (lib/solmate/src/tokens/ERC20.sol#116-160) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(deadline >= block.timestamp,PERMIT_DEADLINE_EXPIRED) (lib/solmate/src/tokens/ERC20.sol#125)\n",
- "markdown": "[ERC20.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)](lib/solmate/src/tokens/ERC20.sol#L116-L160) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(deadline >= block.timestamp,PERMIT_DEADLINE_EXPIRED)](lib/solmate/src/tokens/ERC20.sol#L125)\n",
- "first_markdown_element": "lib/solmate/src/tokens/ERC20.sol#L116-L160",
- "id": "0fb9231dc121cc76860bb0687bd6cde7aeea76e6335fdfad5753810640c24c9b",
- "check": "timestamp",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_authorizeUpgrade",
- "source_mapping": {
- "start": 7489,
- "length": 338,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 186,
- 187,
- 188,
- 189,
- 190
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_authorizeUpgrade(address)"
- }
- },
- {
- "type": "node",
- "name": "require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)",
- "source_mapping": {
- "start": 7583,
- "length": 116,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 187
- ],
- "starting_column": 9,
- "ending_column": 125
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_authorizeUpgrade",
- "source_mapping": {
- "start": 7489,
- "length": 338,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 186,
- 187,
- 188,
- 189,
- 190
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_authorizeUpgrade(address)"
- }
- }
- }
- }
- ],
- "description": "OptionsToken._authorizeUpgrade(address) (src/OptionsToken.sol#186-190) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing) (src/OptionsToken.sol#187)\n",
- "markdown": "[OptionsToken._authorizeUpgrade(address)](src/OptionsToken.sol#L186-L190) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)](src/OptionsToken.sol#L187)\n",
- "first_markdown_element": "src/OptionsToken.sol#L186-L190",
- "id": "47d6ef328e4bec93ff731c772653d7d7d1461f9a46b96c65802f9b0b2081a72b",
- "check": "timestamp",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_chainlinkIsFrozen",
- "source_mapping": {
- "start": 17196,
- "length": 258,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 431,
- 432,
- 433,
- 434
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_chainlinkIsFrozen(ReaperSwapper.ChainlinkResponse,address)"
- }
- },
- {
- "type": "node",
- "name": "block.timestamp - _response.timestamp > aggregatorTimeout",
- "source_mapping": {
- "start": 17383,
- "length": 64,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 433
- ],
- "starting_column": 9,
- "ending_column": 73
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_chainlinkIsFrozen",
- "source_mapping": {
- "start": 17196,
- "length": 258,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 431,
- 432,
- 433,
- 434
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_chainlinkIsFrozen(ReaperSwapper.ChainlinkResponse,address)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper._chainlinkIsFrozen(ReaperSwapper.ChainlinkResponse,address) (lib/vault-v2/src/ReaperSwapper.sol#431-434) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp - _response.timestamp > aggregatorTimeout (lib/vault-v2/src/ReaperSwapper.sol#433)\n",
- "markdown": "[ReaperSwapper._chainlinkIsFrozen(ReaperSwapper.ChainlinkResponse,address)](lib/vault-v2/src/ReaperSwapper.sol#L431-L434) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp - _response.timestamp > aggregatorTimeout](lib/vault-v2/src/ReaperSwapper.sol#L433)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L431-L434",
- "id": "5b1d0ab9c3a7bcae71f7bd3a11a0caa71fd77c85af715f593d1fc00cf04614d3",
- "check": "timestamp",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_redeem",
- "source_mapping": {
- "start": 9155,
- "length": 752,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
- }
- },
- {
- "type": "node",
- "name": "block.timestamp > params.deadline",
- "source_mapping": {
- "start": 9377,
- "length": 33,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 239
- ],
- "starting_column": 13,
- "ending_column": 46
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_redeem",
- "source_mapping": {
- "start": 9155,
- "length": 752,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_redeem(address,uint256,address,DiscountExerciseParams)"
- }
- }
- }
- }
- ],
- "description": "DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#234-251) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > params.deadline (src/exercise/DiscountExercise.sol#239)\n",
- "markdown": "[DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L234-L251) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > params.deadline](src/exercise/DiscountExercise.sol#L239)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L234-L251",
- "id": "61a1c13c0eec30cef4d45e71eb68b2242a5ed6a3ec92629dbb2b00a5c05b5305",
- "check": "timestamp",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- },
- {
- "type": "node",
- "name": "block.timestamp > params.deadline",
- "source_mapping": {
- "start": 7049,
- "length": 33,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 197
- ],
- "starting_column": 13,
- "ending_column": 46
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_zap",
- "source_mapping": {
- "start": 6830,
- "length": 2292,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_zap(address,uint256,address,DiscountExerciseParams)"
- }
- }
- }
- }
- ],
- "description": "DiscountExercise._zap(address,uint256,address,DiscountExerciseParams) (src/exercise/DiscountExercise.sol#192-231) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > params.deadline (src/exercise/DiscountExercise.sol#197)\n",
- "markdown": "[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L192-L231) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > params.deadline](src/exercise/DiscountExercise.sol#L197)\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L192-L231",
- "id": "668585016ac0bae752c2577765c1c163cfc3144c0656d1fb189859db4c2d78b8",
- "check": "timestamp",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getChainlinkPriceTargetDigits",
- "source_mapping": {
- "start": 12574,
- "length": 693,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getChainlinkPriceTargetDigits(address)"
- }
- },
- {
- "type": "node",
- "name": "require(bool,string)(! _chainlinkIsBroken(chainlinkResponse,prevChainlinkResponse) && ! _chainlinkIsFrozen(chainlinkResponse,_token),ReaperSwapper: Chainlink must be working and current)",
- "source_mapping": {
- "start": 12925,
- "length": 226,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 337,
- 338,
- 339,
- 340,
- 341
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getChainlinkPriceTargetDigits",
- "source_mapping": {
- "start": 12574,
- "length": 693,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getChainlinkPriceTargetDigits(address)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper.getChainlinkPriceTargetDigits(address) (lib/vault-v2/src/ReaperSwapper.sol#333-343) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(! _chainlinkIsBroken(chainlinkResponse,prevChainlinkResponse) && ! _chainlinkIsFrozen(chainlinkResponse,_token),ReaperSwapper: Chainlink must be working and current) (lib/vault-v2/src/ReaperSwapper.sol#337-341)\n",
- "markdown": "[ReaperSwapper.getChainlinkPriceTargetDigits(address)](lib/vault-v2/src/ReaperSwapper.sol#L333-L343) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(! _chainlinkIsBroken(chainlinkResponse,prevChainlinkResponse) && ! _chainlinkIsFrozen(chainlinkResponse,_token),ReaperSwapper: Chainlink must be working and current)](lib/vault-v2/src/ReaperSwapper.sol#L337-L341)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L333-L343",
- "id": "8876dcb1ce9974595b01d633cfe62552129b63ca689be1b0815a3c19c88b3095",
- "check": "timestamp",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_badChainlinkResponse",
- "source_mapping": {
- "start": 16626,
- "length": 564,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_badChainlinkResponse(ReaperSwapper.ChainlinkResponse)"
- }
- },
- {
- "type": "node",
- "name": "_response.timestamp == 0 || _response.timestamp > block.timestamp",
- "source_mapping": {
- "start": 16994,
- "length": 65,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 424
- ],
- "starting_column": 13,
- "ending_column": 78
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_badChainlinkResponse",
- "source_mapping": {
- "start": 16626,
- "length": 564,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_badChainlinkResponse(ReaperSwapper.ChainlinkResponse)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper._badChainlinkResponse(ReaperSwapper.ChainlinkResponse) (lib/vault-v2/src/ReaperSwapper.sol#418-429) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _response.timestamp == 0 || _response.timestamp > block.timestamp (lib/vault-v2/src/ReaperSwapper.sol#424)\n",
- "markdown": "[ReaperSwapper._badChainlinkResponse(ReaperSwapper.ChainlinkResponse)](lib/vault-v2/src/ReaperSwapper.sol#L418-L429) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_response.timestamp == 0 || _response.timestamp > block.timestamp](lib/vault-v2/src/ReaperSwapper.sol#L424)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L418-L429",
- "id": "c9769fb3b49a0cb62289925e91879f5e539b1d1b11aa4df992552532f0fc1edb",
- "check": "timestamp",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_authorizeUpgrade",
- "source_mapping": {
- "start": 19135,
- "length": 283,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_authorizeUpgrade(address)"
- }
- },
- {
- "type": "node",
- "name": "require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)",
- "source_mapping": {
- "start": 19241,
- "length": 138,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 478,
- 479,
- 480
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_authorizeUpgrade",
- "source_mapping": {
- "start": 19135,
- "length": 283,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_authorizeUpgrade(address)"
- }
- }
- }
- }
- ],
- "description": "ReaperSwapper._authorizeUpgrade(address) (lib/vault-v2/src/ReaperSwapper.sol#476-482) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing) (lib/vault-v2/src/ReaperSwapper.sol#478-480)\n",
- "markdown": "[ReaperSwapper._authorizeUpgrade(address)](lib/vault-v2/src/ReaperSwapper.sol#L476-L482) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)](lib/vault-v2/src/ReaperSwapper.sol#L478-L480)\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L476-L482",
- "id": "f0962c61819abf294fef0372224298be1e0fde776b4031d7996ce34948836d89",
- "check": "timestamp",
- "impact": "Low",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "unsafeDiv",
- "source_mapping": {
- "start": 9436,
- "length": 285,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "unsafeDiv(uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 9564,
- "length": 151,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "unsafeDiv",
- "source_mapping": {
- "start": 9436,
- "length": 285,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "unsafeDiv(uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.unsafeDiv(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#238-245) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#240-244)\n",
- "markdown": "[FixedPointMathLib.unsafeDiv(uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L238-L245) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L240-L244)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L238-L245",
- "id": "0beed87682b0d9d1b5d62d5e0b9a3ea42569e26d73cc841baa517c84883f1df4",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 5000,
- "length": 164,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 77,
- 78,
- 79,
- 80,
- 81
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 5177,
- "length": 148,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 82,
- 83,
- 84,
- 85,
- 86
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 5338,
- "length": 140,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 87,
- 88,
- 89,
- 90,
- 91
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 5491,
- "length": 136,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 92,
- 93,
- 94,
- 95,
- 96
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 5640,
- "length": 134,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 5787,
- "length": 133,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 102,
- 103,
- 104,
- 105,
- 106
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 5933,
- "length": 133,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 107,
- 108,
- 109,
- 110,
- 111
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 6079,
- "length": 94,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 112,
- 113,
- 114,
- 115
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 6340,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 122,
- 123,
- 124,
- 125,
- 126,
- 127
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 6533,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 6726,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 134,
- 135,
- 136,
- 137,
- 138,
- 139
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 6919,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 140,
- 141,
- 142,
- 143,
- 144,
- 145
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 7112,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 146,
- 147,
- 148,
- 149,
- 150,
- 151
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 7305,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 152,
- 153,
- 154,
- 155,
- 156,
- 157
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 7498,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 158,
- 159,
- 160,
- 161,
- 162,
- 163
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 7691,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 7884,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 170,
- 171,
- 172,
- 173,
- 174,
- 175
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 8077,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 176,
- 177,
- 178,
- 179,
- 180,
- 181
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 8270,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 182,
- 183,
- 184,
- 185,
- 186,
- 187
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 8463,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 188,
- 189,
- 190,
- 191,
- 192,
- 193
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 8656,
- "length": 180,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 194,
- 195,
- 196,
- 197,
- 198,
- 199
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 8849,
- "length": 149,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 200,
- 201,
- 202,
- 203,
- 204
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getTickAtSqrtRatio",
- "source_mapping": {
- "start": 4563,
- "length": 4852,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getTickAtSqrtRatio(uint160)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getTickAtSqrtRatio(uint160) (lib/v3-core/contracts/libraries/TickMath.sol#68-213) uses assembly\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#77-81)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#82-86)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#87-91)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#92-96)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#97-101)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#102-106)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#107-111)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#112-115)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#122-127)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#128-133)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#134-139)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#140-145)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#146-151)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#152-157)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#158-163)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#164-169)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#170-175)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#176-181)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#182-187)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#188-193)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#194-199)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/TickMath.sol#200-204)\n",
- "markdown": "[TickMath.getTickAtSqrtRatio(uint160)](lib/v3-core/contracts/libraries/TickMath.sol#L68-L213) uses assembly\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L77-L81)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L82-L86)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L87-L91)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L92-L96)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L97-L101)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L102-L106)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L107-L111)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L112-L115)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L122-L127)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L128-L133)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L134-L139)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L140-L145)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L146-L151)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L152-L157)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L158-L163)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L164-L169)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L170-L175)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L176-L181)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L182-L187)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L188-L193)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L194-L199)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/TickMath.sol#L200-L204)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L68-L213",
- "id": "0def4f45d43eaf0b329bef30ef6af6d4f46fe19e1463c7b9ac4d362934eafeb6",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "unsafeMod",
- "source_mapping": {
- "start": 9148,
- "length": 282,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "unsafeMod(uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 9276,
- "length": 148,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 231,
- 232,
- 233,
- 234,
- 235
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "unsafeMod",
- "source_mapping": {
- "start": 9148,
- "length": 282,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "unsafeMod(uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.unsafeMod(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#229-236) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#231-235)\n",
- "markdown": "[FixedPointMathLib.unsafeMod(uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L229-L236) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L231-L235)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L229-L236",
- "id": "145fa339a2d24346a0d2f9a987ba904fefdb44045676d336d8c1454492437dd3",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_revert",
- "source_mapping": {
- "start": 8616,
- "length": 540,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_revert(bytes,string)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 8947,
- "length": 142,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 236,
- 237,
- 238,
- 239
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_revert",
- "source_mapping": {
- "start": 8616,
- "length": 540,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_revert(bytes,string)"
- }
- }
- }
- }
- ],
- "description": "Address._revert(bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#231-243) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Address.sol#236-239)\n",
- "markdown": "[Address._revert(bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L231-L243) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/Address.sol#L236-L239)\n",
- "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L231-L243",
- "id": "202587d026bc154cc0001a634101f20caa34ef114975710d739f5c8c36d92e7c",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "unsafeDivUp",
- "source_mapping": {
- "start": 9727,
- "length": 324,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "unsafeDivUp(uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 9857,
- "length": 188,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 249,
- 250,
- 251,
- 252,
- 253
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "unsafeDivUp",
- "source_mapping": {
- "start": 9727,
- "length": 324,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "unsafeDivUp(uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.unsafeDivUp(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#247-254) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#249-253)\n",
- "markdown": "[FixedPointMathLib.unsafeDivUp(uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L247-L254) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L249-L253)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L247-L254",
- "id": "293ee1efbea006e81513a50b1f3897ca47465d642f7873e0618752a9e931afdc",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 5858,
- "length": 3278,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#166-226)\n",
- "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L166-L226)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
- "id": "37818b71310ead61c2763f3a5f49d95d276ee9cb81a18a9e165d14c424a65602",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDivUp",
- "source_mapping": {
- "start": 2096,
- "length": 672,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDivUp(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2274,
- "length": 488,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDivUp",
- "source_mapping": {
- "start": 2096,
- "length": 672,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDivUp(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.mulDivUp(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#53-69) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#59-68)\n",
- "markdown": "[FixedPointMathLib.mulDivUp(uint256,uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L53-L69) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L59-L68)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L53-L69",
- "id": "39a7fec07e0fbe8e5782dbb16c4b965b00f8fb1054cd2855b1fe4b9234ea9403",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "values",
- "source_mapping": {
- "start": 10262,
- "length": 300,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "EnumerableSetUpgradeable",
- "source_mapping": {
- "start": 1321,
- "length": 11641,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "values(EnumerableSetUpgradeable.AddressSet)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 10484,
- "length": 48,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 298,
- 299,
- 300
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "values",
- "source_mapping": {
- "start": 10262,
- "length": 300,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "EnumerableSetUpgradeable",
- "source_mapping": {
- "start": 1321,
- "length": 11641,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "values(EnumerableSetUpgradeable.AddressSet)"
- }
- }
- }
- }
- ],
- "description": "EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.AddressSet) (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#293-303) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#298-300)\n",
- "markdown": "[EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.AddressSet)](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L293-L303) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L298-L300)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L293-L303",
- "id": "3b8aa13e9f50c73367d43257168b9f1a7a14154c5ff8bd884390007f08e0ae86",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "values",
- "source_mapping": {
- "start": 7768,
- "length": 300,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "EnumerableSetUpgradeable",
- "source_mapping": {
- "start": 1321,
- "length": 11641,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "values(EnumerableSetUpgradeable.Bytes32Set)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 7990,
- "length": 48,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 224,
- 225,
- 226
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "values",
- "source_mapping": {
- "start": 7768,
- "length": 300,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "EnumerableSetUpgradeable",
- "source_mapping": {
- "start": 1321,
- "length": 11641,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "values(EnumerableSetUpgradeable.Bytes32Set)"
- }
- }
- }
- }
- ],
- "description": "EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.Bytes32Set) (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#219-229) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#224-226)\n",
- "markdown": "[EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.Bytes32Set)](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L219-L229) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L224-L226)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L219-L229",
- "id": "56194aad9e39935cc05324a8414a026d136558b2fa7f7ab0735fd12cc739a479",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_sendLogPayload",
- "source_mapping": {
- "start": 181,
- "length": 376,
- "filename_relative": "lib/forge-std/src/console.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
- "filename_short": "lib/forge-std/src/console.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "console",
- "source_mapping": {
- "start": 66,
- "length": 66622,
- "filename_relative": "lib/forge-std/src/console.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
- "filename_short": "lib/forge-std/src/console.sol",
- "is_dependency": true,
- "lines": [
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- 756,
- 757,
- 758,
- 759,
- 760,
- 761,
- 762,
- 763,
- 764,
- 765,
- 766,
- 767,
- 768,
- 769,
- 770,
- 771,
- 772,
- 773,
- 774,
- 775,
- 776,
- 777,
- 778,
- 779,
- 780,
- 781,
- 782,
- 783,
- 784,
- 785,
- 786,
- 787,
- 788,
- 789,
- 790,
- 791,
- 792,
- 793,
- 794,
- 795,
- 796,
- 797,
- 798,
- 799,
- 800,
- 801,
- 802,
- 803,
- 804,
- 805,
- 806,
- 807,
- 808,
- 809,
- 810,
- 811,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 842,
- 843,
- 844,
- 845,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- 882,
- 883,
- 884,
- 885,
- 886,
- 887,
- 888,
- 889,
- 890,
- 891,
- 892,
- 893,
- 894,
- 895,
- 896,
- 897,
- 898,
- 899,
- 900,
- 901,
- 902,
- 903,
- 904,
- 905,
- 906,
- 907,
- 908,
- 909,
- 910,
- 911,
- 912,
- 913,
- 914,
- 915,
- 916,
- 917,
- 918,
- 919,
- 920,
- 921,
- 922,
- 923,
- 924,
- 925,
- 926,
- 927,
- 928,
- 929,
- 930,
- 931,
- 932,
- 933,
- 934,
- 935,
- 936,
- 937,
- 938,
- 939,
- 940,
- 941,
- 942,
- 943,
- 944,
- 945,
- 946,
- 947,
- 948,
- 949,
- 950,
- 951,
- 952,
- 953,
- 954,
- 955,
- 956,
- 957,
- 958,
- 959,
- 960,
- 961,
- 962,
- 963,
- 964,
- 965,
- 966,
- 967,
- 968,
- 969,
- 970,
- 971,
- 972,
- 973,
- 974,
- 975,
- 976,
- 977,
- 978,
- 979,
- 980,
- 981,
- 982,
- 983,
- 984,
- 985,
- 986,
- 987,
- 988,
- 989,
- 990,
- 991,
- 992,
- 993,
- 994,
- 995,
- 996,
- 997,
- 998,
- 999,
- 1000,
- 1001,
- 1002,
- 1003,
- 1004,
- 1005,
- 1006,
- 1007,
- 1008,
- 1009,
- 1010,
- 1011,
- 1012,
- 1013,
- 1014,
- 1015,
- 1016,
- 1017,
- 1018,
- 1019,
- 1020,
- 1021,
- 1022,
- 1023,
- 1024,
- 1025,
- 1026,
- 1027,
- 1028,
- 1029,
- 1030,
- 1031,
- 1032,
- 1033,
- 1034,
- 1035,
- 1036,
- 1037,
- 1038,
- 1039,
- 1040,
- 1041,
- 1042,
- 1043,
- 1044,
- 1045,
- 1046,
- 1047,
- 1048,
- 1049,
- 1050,
- 1051,
- 1052,
- 1053,
- 1054,
- 1055,
- 1056,
- 1057,
- 1058,
- 1059,
- 1060,
- 1061,
- 1062,
- 1063,
- 1064,
- 1065,
- 1066,
- 1067,
- 1068,
- 1069,
- 1070,
- 1071,
- 1072,
- 1073,
- 1074,
- 1075,
- 1076,
- 1077,
- 1078,
- 1079,
- 1080,
- 1081,
- 1082,
- 1083,
- 1084,
- 1085,
- 1086,
- 1087,
- 1088,
- 1089,
- 1090,
- 1091,
- 1092,
- 1093,
- 1094,
- 1095,
- 1096,
- 1097,
- 1098,
- 1099,
- 1100,
- 1101,
- 1102,
- 1103,
- 1104,
- 1105,
- 1106,
- 1107,
- 1108,
- 1109,
- 1110,
- 1111,
- 1112,
- 1113,
- 1114,
- 1115,
- 1116,
- 1117,
- 1118,
- 1119,
- 1120,
- 1121,
- 1122,
- 1123,
- 1124,
- 1125,
- 1126,
- 1127,
- 1128,
- 1129,
- 1130,
- 1131,
- 1132,
- 1133,
- 1134,
- 1135,
- 1136,
- 1137,
- 1138,
- 1139,
- 1140,
- 1141,
- 1142,
- 1143,
- 1144,
- 1145,
- 1146,
- 1147,
- 1148,
- 1149,
- 1150,
- 1151,
- 1152,
- 1153,
- 1154,
- 1155,
- 1156,
- 1157,
- 1158,
- 1159,
- 1160,
- 1161,
- 1162,
- 1163,
- 1164,
- 1165,
- 1166,
- 1167,
- 1168,
- 1169,
- 1170,
- 1171,
- 1172,
- 1173,
- 1174,
- 1175,
- 1176,
- 1177,
- 1178,
- 1179,
- 1180,
- 1181,
- 1182,
- 1183,
- 1184,
- 1185,
- 1186,
- 1187,
- 1188,
- 1189,
- 1190,
- 1191,
- 1192,
- 1193,
- 1194,
- 1195,
- 1196,
- 1197,
- 1198,
- 1199,
- 1200,
- 1201,
- 1202,
- 1203,
- 1204,
- 1205,
- 1206,
- 1207,
- 1208,
- 1209,
- 1210,
- 1211,
- 1212,
- 1213,
- 1214,
- 1215,
- 1216,
- 1217,
- 1218,
- 1219,
- 1220,
- 1221,
- 1222,
- 1223,
- 1224,
- 1225,
- 1226,
- 1227,
- 1228,
- 1229,
- 1230,
- 1231,
- 1232,
- 1233,
- 1234,
- 1235,
- 1236,
- 1237,
- 1238,
- 1239,
- 1240,
- 1241,
- 1242,
- 1243,
- 1244,
- 1245,
- 1246,
- 1247,
- 1248,
- 1249,
- 1250,
- 1251,
- 1252,
- 1253,
- 1254,
- 1255,
- 1256,
- 1257,
- 1258,
- 1259,
- 1260,
- 1261,
- 1262,
- 1263,
- 1264,
- 1265,
- 1266,
- 1267,
- 1268,
- 1269,
- 1270,
- 1271,
- 1272,
- 1273,
- 1274,
- 1275,
- 1276,
- 1277,
- 1278,
- 1279,
- 1280,
- 1281,
- 1282,
- 1283,
- 1284,
- 1285,
- 1286,
- 1287,
- 1288,
- 1289,
- 1290,
- 1291,
- 1292,
- 1293,
- 1294,
- 1295,
- 1296,
- 1297,
- 1298,
- 1299,
- 1300,
- 1301,
- 1302,
- 1303,
- 1304,
- 1305,
- 1306,
- 1307,
- 1308,
- 1309,
- 1310,
- 1311,
- 1312,
- 1313,
- 1314,
- 1315,
- 1316,
- 1317,
- 1318,
- 1319,
- 1320,
- 1321,
- 1322,
- 1323,
- 1324,
- 1325,
- 1326,
- 1327,
- 1328,
- 1329,
- 1330,
- 1331,
- 1332,
- 1333,
- 1334,
- 1335,
- 1336,
- 1337,
- 1338,
- 1339,
- 1340,
- 1341,
- 1342,
- 1343,
- 1344,
- 1345,
- 1346,
- 1347,
- 1348,
- 1349,
- 1350,
- 1351,
- 1352,
- 1353,
- 1354,
- 1355,
- 1356,
- 1357,
- 1358,
- 1359,
- 1360,
- 1361,
- 1362,
- 1363,
- 1364,
- 1365,
- 1366,
- 1367,
- 1368,
- 1369,
- 1370,
- 1371,
- 1372,
- 1373,
- 1374,
- 1375,
- 1376,
- 1377,
- 1378,
- 1379,
- 1380,
- 1381,
- 1382,
- 1383,
- 1384,
- 1385,
- 1386,
- 1387,
- 1388,
- 1389,
- 1390,
- 1391,
- 1392,
- 1393,
- 1394,
- 1395,
- 1396,
- 1397,
- 1398,
- 1399,
- 1400,
- 1401,
- 1402,
- 1403,
- 1404,
- 1405,
- 1406,
- 1407,
- 1408,
- 1409,
- 1410,
- 1411,
- 1412,
- 1413,
- 1414,
- 1415,
- 1416,
- 1417,
- 1418,
- 1419,
- 1420,
- 1421,
- 1422,
- 1423,
- 1424,
- 1425,
- 1426,
- 1427,
- 1428,
- 1429,
- 1430,
- 1431,
- 1432,
- 1433,
- 1434,
- 1435,
- 1436,
- 1437,
- 1438,
- 1439,
- 1440,
- 1441,
- 1442,
- 1443,
- 1444,
- 1445,
- 1446,
- 1447,
- 1448,
- 1449,
- 1450,
- 1451,
- 1452,
- 1453,
- 1454,
- 1455,
- 1456,
- 1457,
- 1458,
- 1459,
- 1460,
- 1461,
- 1462,
- 1463,
- 1464,
- 1465,
- 1466,
- 1467,
- 1468,
- 1469,
- 1470,
- 1471,
- 1472,
- 1473,
- 1474,
- 1475,
- 1476,
- 1477,
- 1478,
- 1479,
- 1480,
- 1481,
- 1482,
- 1483,
- 1484,
- 1485,
- 1486,
- 1487,
- 1488,
- 1489,
- 1490,
- 1491,
- 1492,
- 1493,
- 1494,
- 1495,
- 1496,
- 1497,
- 1498,
- 1499,
- 1500,
- 1501,
- 1502,
- 1503,
- 1504,
- 1505,
- 1506,
- 1507,
- 1508,
- 1509,
- 1510,
- 1511,
- 1512,
- 1513,
- 1514,
- 1515,
- 1516,
- 1517,
- 1518,
- 1519,
- 1520,
- 1521,
- 1522,
- 1523,
- 1524,
- 1525,
- 1526,
- 1527,
- 1528,
- 1529,
- 1530,
- 1531,
- 1532,
- 1533,
- 1534
- ],
- "starting_column": 1,
- "ending_column": 0
- }
- },
- "signature": "_sendLogPayload(bytes)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 392,
- "length": 159,
- "filename_relative": "lib/forge-std/src/console.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
- "filename_short": "lib/forge-std/src/console.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_sendLogPayload",
- "source_mapping": {
- "start": 181,
- "length": 376,
- "filename_relative": "lib/forge-std/src/console.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
- "filename_short": "lib/forge-std/src/console.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "console",
- "source_mapping": {
- "start": 66,
- "length": 66622,
- "filename_relative": "lib/forge-std/src/console.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
- "filename_short": "lib/forge-std/src/console.sol",
- "is_dependency": true,
- "lines": [
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- 756,
- 757,
- 758,
- 759,
- 760,
- 761,
- 762,
- 763,
- 764,
- 765,
- 766,
- 767,
- 768,
- 769,
- 770,
- 771,
- 772,
- 773,
- 774,
- 775,
- 776,
- 777,
- 778,
- 779,
- 780,
- 781,
- 782,
- 783,
- 784,
- 785,
- 786,
- 787,
- 788,
- 789,
- 790,
- 791,
- 792,
- 793,
- 794,
- 795,
- 796,
- 797,
- 798,
- 799,
- 800,
- 801,
- 802,
- 803,
- 804,
- 805,
- 806,
- 807,
- 808,
- 809,
- 810,
- 811,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 842,
- 843,
- 844,
- 845,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- 882,
- 883,
- 884,
- 885,
- 886,
- 887,
- 888,
- 889,
- 890,
- 891,
- 892,
- 893,
- 894,
- 895,
- 896,
- 897,
- 898,
- 899,
- 900,
- 901,
- 902,
- 903,
- 904,
- 905,
- 906,
- 907,
- 908,
- 909,
- 910,
- 911,
- 912,
- 913,
- 914,
- 915,
- 916,
- 917,
- 918,
- 919,
- 920,
- 921,
- 922,
- 923,
- 924,
- 925,
- 926,
- 927,
- 928,
- 929,
- 930,
- 931,
- 932,
- 933,
- 934,
- 935,
- 936,
- 937,
- 938,
- 939,
- 940,
- 941,
- 942,
- 943,
- 944,
- 945,
- 946,
- 947,
- 948,
- 949,
- 950,
- 951,
- 952,
- 953,
- 954,
- 955,
- 956,
- 957,
- 958,
- 959,
- 960,
- 961,
- 962,
- 963,
- 964,
- 965,
- 966,
- 967,
- 968,
- 969,
- 970,
- 971,
- 972,
- 973,
- 974,
- 975,
- 976,
- 977,
- 978,
- 979,
- 980,
- 981,
- 982,
- 983,
- 984,
- 985,
- 986,
- 987,
- 988,
- 989,
- 990,
- 991,
- 992,
- 993,
- 994,
- 995,
- 996,
- 997,
- 998,
- 999,
- 1000,
- 1001,
- 1002,
- 1003,
- 1004,
- 1005,
- 1006,
- 1007,
- 1008,
- 1009,
- 1010,
- 1011,
- 1012,
- 1013,
- 1014,
- 1015,
- 1016,
- 1017,
- 1018,
- 1019,
- 1020,
- 1021,
- 1022,
- 1023,
- 1024,
- 1025,
- 1026,
- 1027,
- 1028,
- 1029,
- 1030,
- 1031,
- 1032,
- 1033,
- 1034,
- 1035,
- 1036,
- 1037,
- 1038,
- 1039,
- 1040,
- 1041,
- 1042,
- 1043,
- 1044,
- 1045,
- 1046,
- 1047,
- 1048,
- 1049,
- 1050,
- 1051,
- 1052,
- 1053,
- 1054,
- 1055,
- 1056,
- 1057,
- 1058,
- 1059,
- 1060,
- 1061,
- 1062,
- 1063,
- 1064,
- 1065,
- 1066,
- 1067,
- 1068,
- 1069,
- 1070,
- 1071,
- 1072,
- 1073,
- 1074,
- 1075,
- 1076,
- 1077,
- 1078,
- 1079,
- 1080,
- 1081,
- 1082,
- 1083,
- 1084,
- 1085,
- 1086,
- 1087,
- 1088,
- 1089,
- 1090,
- 1091,
- 1092,
- 1093,
- 1094,
- 1095,
- 1096,
- 1097,
- 1098,
- 1099,
- 1100,
- 1101,
- 1102,
- 1103,
- 1104,
- 1105,
- 1106,
- 1107,
- 1108,
- 1109,
- 1110,
- 1111,
- 1112,
- 1113,
- 1114,
- 1115,
- 1116,
- 1117,
- 1118,
- 1119,
- 1120,
- 1121,
- 1122,
- 1123,
- 1124,
- 1125,
- 1126,
- 1127,
- 1128,
- 1129,
- 1130,
- 1131,
- 1132,
- 1133,
- 1134,
- 1135,
- 1136,
- 1137,
- 1138,
- 1139,
- 1140,
- 1141,
- 1142,
- 1143,
- 1144,
- 1145,
- 1146,
- 1147,
- 1148,
- 1149,
- 1150,
- 1151,
- 1152,
- 1153,
- 1154,
- 1155,
- 1156,
- 1157,
- 1158,
- 1159,
- 1160,
- 1161,
- 1162,
- 1163,
- 1164,
- 1165,
- 1166,
- 1167,
- 1168,
- 1169,
- 1170,
- 1171,
- 1172,
- 1173,
- 1174,
- 1175,
- 1176,
- 1177,
- 1178,
- 1179,
- 1180,
- 1181,
- 1182,
- 1183,
- 1184,
- 1185,
- 1186,
- 1187,
- 1188,
- 1189,
- 1190,
- 1191,
- 1192,
- 1193,
- 1194,
- 1195,
- 1196,
- 1197,
- 1198,
- 1199,
- 1200,
- 1201,
- 1202,
- 1203,
- 1204,
- 1205,
- 1206,
- 1207,
- 1208,
- 1209,
- 1210,
- 1211,
- 1212,
- 1213,
- 1214,
- 1215,
- 1216,
- 1217,
- 1218,
- 1219,
- 1220,
- 1221,
- 1222,
- 1223,
- 1224,
- 1225,
- 1226,
- 1227,
- 1228,
- 1229,
- 1230,
- 1231,
- 1232,
- 1233,
- 1234,
- 1235,
- 1236,
- 1237,
- 1238,
- 1239,
- 1240,
- 1241,
- 1242,
- 1243,
- 1244,
- 1245,
- 1246,
- 1247,
- 1248,
- 1249,
- 1250,
- 1251,
- 1252,
- 1253,
- 1254,
- 1255,
- 1256,
- 1257,
- 1258,
- 1259,
- 1260,
- 1261,
- 1262,
- 1263,
- 1264,
- 1265,
- 1266,
- 1267,
- 1268,
- 1269,
- 1270,
- 1271,
- 1272,
- 1273,
- 1274,
- 1275,
- 1276,
- 1277,
- 1278,
- 1279,
- 1280,
- 1281,
- 1282,
- 1283,
- 1284,
- 1285,
- 1286,
- 1287,
- 1288,
- 1289,
- 1290,
- 1291,
- 1292,
- 1293,
- 1294,
- 1295,
- 1296,
- 1297,
- 1298,
- 1299,
- 1300,
- 1301,
- 1302,
- 1303,
- 1304,
- 1305,
- 1306,
- 1307,
- 1308,
- 1309,
- 1310,
- 1311,
- 1312,
- 1313,
- 1314,
- 1315,
- 1316,
- 1317,
- 1318,
- 1319,
- 1320,
- 1321,
- 1322,
- 1323,
- 1324,
- 1325,
- 1326,
- 1327,
- 1328,
- 1329,
- 1330,
- 1331,
- 1332,
- 1333,
- 1334,
- 1335,
- 1336,
- 1337,
- 1338,
- 1339,
- 1340,
- 1341,
- 1342,
- 1343,
- 1344,
- 1345,
- 1346,
- 1347,
- 1348,
- 1349,
- 1350,
- 1351,
- 1352,
- 1353,
- 1354,
- 1355,
- 1356,
- 1357,
- 1358,
- 1359,
- 1360,
- 1361,
- 1362,
- 1363,
- 1364,
- 1365,
- 1366,
- 1367,
- 1368,
- 1369,
- 1370,
- 1371,
- 1372,
- 1373,
- 1374,
- 1375,
- 1376,
- 1377,
- 1378,
- 1379,
- 1380,
- 1381,
- 1382,
- 1383,
- 1384,
- 1385,
- 1386,
- 1387,
- 1388,
- 1389,
- 1390,
- 1391,
- 1392,
- 1393,
- 1394,
- 1395,
- 1396,
- 1397,
- 1398,
- 1399,
- 1400,
- 1401,
- 1402,
- 1403,
- 1404,
- 1405,
- 1406,
- 1407,
- 1408,
- 1409,
- 1410,
- 1411,
- 1412,
- 1413,
- 1414,
- 1415,
- 1416,
- 1417,
- 1418,
- 1419,
- 1420,
- 1421,
- 1422,
- 1423,
- 1424,
- 1425,
- 1426,
- 1427,
- 1428,
- 1429,
- 1430,
- 1431,
- 1432,
- 1433,
- 1434,
- 1435,
- 1436,
- 1437,
- 1438,
- 1439,
- 1440,
- 1441,
- 1442,
- 1443,
- 1444,
- 1445,
- 1446,
- 1447,
- 1448,
- 1449,
- 1450,
- 1451,
- 1452,
- 1453,
- 1454,
- 1455,
- 1456,
- 1457,
- 1458,
- 1459,
- 1460,
- 1461,
- 1462,
- 1463,
- 1464,
- 1465,
- 1466,
- 1467,
- 1468,
- 1469,
- 1470,
- 1471,
- 1472,
- 1473,
- 1474,
- 1475,
- 1476,
- 1477,
- 1478,
- 1479,
- 1480,
- 1481,
- 1482,
- 1483,
- 1484,
- 1485,
- 1486,
- 1487,
- 1488,
- 1489,
- 1490,
- 1491,
- 1492,
- 1493,
- 1494,
- 1495,
- 1496,
- 1497,
- 1498,
- 1499,
- 1500,
- 1501,
- 1502,
- 1503,
- 1504,
- 1505,
- 1506,
- 1507,
- 1508,
- 1509,
- 1510,
- 1511,
- 1512,
- 1513,
- 1514,
- 1515,
- 1516,
- 1517,
- 1518,
- 1519,
- 1520,
- 1521,
- 1522,
- 1523,
- 1524,
- 1525,
- 1526,
- 1527,
- 1528,
- 1529,
- 1530,
- 1531,
- 1532,
- 1533,
- 1534
- ],
- "starting_column": 1,
- "ending_column": 0
- }
- },
- "signature": "_sendLogPayload(bytes)"
- }
- }
- }
- }
- ],
- "description": "console._sendLogPayload(bytes) (lib/forge-std/src/console.sol#7-15) uses assembly\n\t- INLINE ASM (lib/forge-std/src/console.sol#11-14)\n",
- "markdown": "[console._sendLogPayload(bytes)](lib/forge-std/src/console.sol#L7-L15) uses assembly\n\t- [INLINE ASM](lib/forge-std/src/console.sol#L11-L14)\n",
- "first_markdown_element": "lib/forge-std/src/console.sol#L7-L15",
- "id": "5758c17df66f8816f5064e14ea7f15d5ee32aa62981846c608f5a746b6c72583",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getUint256Slot",
- "source_mapping": {
- "start": 2489,
- "length": 190,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 82,
- 83,
- 84,
- 85,
- 86,
- 87
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StorageSlotUpgradeable",
- "source_mapping": {
- "start": 1279,
- "length": 1402,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getUint256Slot(bytes32)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2626,
- "length": 47,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 84,
- 85,
- 86
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getUint256Slot",
- "source_mapping": {
- "start": 2489,
- "length": 190,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 82,
- 83,
- 84,
- 85,
- 86,
- 87
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StorageSlotUpgradeable",
- "source_mapping": {
- "start": 1279,
- "length": 1402,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getUint256Slot(bytes32)"
- }
- }
- }
- }
- ],
- "description": "StorageSlotUpgradeable.getUint256Slot(bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#82-87) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#84-86)\n",
- "markdown": "[StorageSlotUpgradeable.getUint256Slot(bytes32)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L82-L87) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L84-L86)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L82-L87",
- "id": "5da981982addb53aa1a484aa5b90b5edf14fff276b7d6100c546d2ff73004118",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "rpow",
- "source_mapping": {
- "start": 2774,
- "length": 2778,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "rpow(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2943,
- "length": 2603,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "rpow",
- "source_mapping": {
- "start": 2774,
- "length": 2778,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "rpow(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#71-158) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#77-157)\n",
- "markdown": "[FixedPointMathLib.rpow(uint256,uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L71-L158) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L77-L157)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L71-L158",
- "id": "689002e3bc5887c37efbbca861ab9ec47f766293178f650ae3d6f514b002c94c",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_revert",
- "source_mapping": {
- "start": 7739,
- "length": 540,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_revert(bytes,string)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 8070,
- "length": 142,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_revert",
- "source_mapping": {
- "start": 7739,
- "length": 540,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_revert(bytes,string)"
- }
- }
- }
- }
- ],
- "description": "AddressUpgradeable._revert(bytes,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#206-218) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#211-214)\n",
- "markdown": "[AddressUpgradeable._revert(bytes,string)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L206-L218) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L211-L214)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L206-L218",
- "id": "739c2c53d803e97b4475b0c59002e269bf280c020785e91d89e6f198833bfda0",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "values",
- "source_mapping": {
- "start": 12663,
- "length": 297,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "EnumerableSetUpgradeable",
- "source_mapping": {
- "start": 1321,
- "length": 11641,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "values(EnumerableSetUpgradeable.UintSet)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 12882,
- "length": 48,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 372,
- 373,
- 374
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "values",
- "source_mapping": {
- "start": 12663,
- "length": 297,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "EnumerableSetUpgradeable",
- "source_mapping": {
- "start": 1321,
- "length": 11641,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "values(EnumerableSetUpgradeable.UintSet)"
- }
- }
- }
- }
- ],
- "description": "EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.UintSet) (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#367-377) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#372-374)\n",
- "markdown": "[EnumerableSetUpgradeable.values(EnumerableSetUpgradeable.UintSet)](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L367-L377) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L372-L374)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L367-L377",
- "id": "7d56bbef68d3d28816c6f1db6f457a021f9e797b84e7c3d7dbcc61c9462f0d2f",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDivDown",
- "source_mapping": {
- "start": 1564,
- "length": 526,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDivDown(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 1744,
- "length": 340,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDivDown",
- "source_mapping": {
- "start": 1564,
- "length": 526,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDivDown(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.mulDivDown(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#36-51) uses assembly\n\t- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#42-50)\n",
- "markdown": "[FixedPointMathLib.mulDivDown(uint256,uint256,uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L36-L51) uses assembly\n\t- [INLINE ASM](lib/solmate/src/utils/FixedPointMathLib.sol#L42-L50)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L36-L51",
- "id": "9e144d907a30f66c9e2920440884a22c1725fb31d5d562c7fb53efa1509ea1b0",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "toString",
- "source_mapping": {
- "start": 437,
- "length": 707,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StringsUpgradeable",
- "source_mapping": {
- "start": 199,
- "length": 2098,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "toString(uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 732,
- "length": 76,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "toString",
- "source_mapping": {
- "start": 437,
- "length": 707,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StringsUpgradeable",
- "source_mapping": {
- "start": 199,
- "length": 2098,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "toString(uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 926,
- "length": 93,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 30,
- 31,
- 32
- ],
- "starting_column": 17,
- "ending_column": 18
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "toString",
- "source_mapping": {
- "start": 437,
- "length": 707,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StringsUpgradeable",
- "source_mapping": {
- "start": 199,
- "length": 2098,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "toString(uint256)"
- }
- }
- }
- }
- ],
- "description": "StringsUpgradeable.toString(uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#18-38) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#24-26)\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#30-32)\n",
- "markdown": "[StringsUpgradeable.toString(uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L18-L38) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L24-L26)\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L30-L32)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L18-L38",
- "id": "a992fcb04beb4b522d466219687aab5caf1862079a86d0a72ff29083031b1b83",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getBooleanSlot",
- "source_mapping": {
- "start": 1913,
- "length": 190,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 62,
- 63,
- 64,
- 65,
- 66,
- 67
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StorageSlotUpgradeable",
- "source_mapping": {
- "start": 1279,
- "length": 1402,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getBooleanSlot(bytes32)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2050,
- "length": 47,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 64,
- 65,
- 66
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getBooleanSlot",
- "source_mapping": {
- "start": 1913,
- "length": 190,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 62,
- 63,
- 64,
- 65,
- 66,
- 67
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StorageSlotUpgradeable",
- "source_mapping": {
- "start": 1279,
- "length": 1402,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getBooleanSlot(bytes32)"
- }
- }
- }
- }
- ],
- "description": "StorageSlotUpgradeable.getBooleanSlot(bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#62-67) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#64-66)\n",
- "markdown": "[StorageSlotUpgradeable.getBooleanSlot(bytes32)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L62-L67) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L64-L66)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L62-L67",
- "id": "abed8f4ef4fa2e3da0dfadfbc2db35dab5f0cddac1132ccf3de6ff9dfd330e08",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 1369,
- "length": 166,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 27,
- 28,
- 29,
- 30,
- 31
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 1687,
- "length": 82,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 36,
- 37,
- 38
- ],
- "starting_column": 17,
- "ending_column": 18
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2291,
- "length": 79,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 53,
- 54,
- 55
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2442,
- "length": 129,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2846,
- "length": 78,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 67,
- 68,
- 69
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2996,
- "length": 66,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 72,
- 73,
- 74
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 3257,
- "length": 80,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 78,
- 79,
- 80
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 741,
- "length": 4127,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FullMath",
- "source_mapping": {
- "start": 354,
- "length": 5163,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "FullMath.mulDiv(uint256,uint256,uint256) (lib/v3-core/contracts/libraries/FullMath.sol#14-108) uses assembly\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#27-31)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#36-38)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#53-55)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#57-60)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#67-69)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#72-74)\n\t- INLINE ASM (lib/v3-core/contracts/libraries/FullMath.sol#78-80)\n",
- "markdown": "[FullMath.mulDiv(uint256,uint256,uint256)](lib/v3-core/contracts/libraries/FullMath.sol#L14-L108) uses assembly\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L27-L31)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L36-L38)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L53-L55)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L57-L60)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L67-L69)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L72-L74)\n\t- [INLINE ASM](lib/v3-core/contracts/libraries/FullMath.sol#L78-L80)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/FullMath.sol#L14-L108",
- "id": "cd4781abcd1d41fa749dcf4cc7a4749057c50a313df29ef331b4bb2d83971a0c",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2280,
- "length": 166,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 66,
- 67,
- 68,
- 69,
- 70
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 3015,
- "length": 300,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 3683,
- "length": 371,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "mulDiv",
- "source_mapping": {
- "start": 1678,
- "length": 3925,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "MathUpgradeable",
- "source_mapping": {
- "start": 202,
- "length": 12313,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "mulDiv(uint256,uint256,uint256)"
- }
- }
- }
- }
- ],
- "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#55-135) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#66-70)\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#86-93)\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#100-109)\n",
- "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L66-L70)\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L86-L93)\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L100-L109)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L55-L135",
- "id": "eb7fc1d015df84fd39e386d4f4360b409e4375b3501e52d9825a5f98ce00bbbe",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getBytes32Slot",
- "source_mapping": {
- "start": 2201,
- "length": 190,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StorageSlotUpgradeable",
- "source_mapping": {
- "start": 1279,
- "length": 1402,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getBytes32Slot(bytes32)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 2338,
- "length": 47,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 74,
- 75,
- 76
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getBytes32Slot",
- "source_mapping": {
- "start": 2201,
- "length": 190,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StorageSlotUpgradeable",
- "source_mapping": {
- "start": 1279,
- "length": 1402,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getBytes32Slot(bytes32)"
- }
- }
- }
- }
- ],
- "description": "StorageSlotUpgradeable.getBytes32Slot(bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#72-77) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#74-76)\n",
- "markdown": "[StorageSlotUpgradeable.getBytes32Slot(bytes32)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L72-L77) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L74-L76)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L72-L77",
- "id": "f1477136301f065a939603e66af2ce9966e69e30be386b8261bade5d7a7d25f1",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getAddressSlot",
- "source_mapping": {
- "start": 1625,
- "length": 190,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 52,
- 53,
- 54,
- 55,
- 56,
- 57
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StorageSlotUpgradeable",
- "source_mapping": {
- "start": 1279,
- "length": 1402,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getAddressSlot(bytes32)"
- }
- },
- {
- "type": "node",
- "name": "",
- "source_mapping": {
- "start": 1762,
- "length": 47,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 54,
- 55,
- 56
- ],
- "starting_column": 9,
- "ending_column": 10
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getAddressSlot",
- "source_mapping": {
- "start": 1625,
- "length": 190,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 52,
- 53,
- 54,
- 55,
- 56,
- 57
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "StorageSlotUpgradeable",
- "source_mapping": {
- "start": 1279,
- "length": 1402,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getAddressSlot(bytes32)"
- }
- }
- }
- }
- ],
- "description": "StorageSlotUpgradeable.getAddressSlot(bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#52-57) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#54-56)\n",
- "markdown": "[StorageSlotUpgradeable.getAddressSlot(bytes32)](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L52-L57) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L54-L56)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L52-L57",
- "id": "fcaccdf637e880c618f6f15622fb469dee912b1a036bb71ad6b383881b62ae17",
- "check": "assembly",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "_tryCatchActive != false",
- "source_mapping": {
- "start": 1850,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 51
- ],
- "starting_column": 12,
- "ending_column": 36
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapVelo",
- "source_mapping": {
- "start": 862,
- "length": 1768,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "VeloSolidMixin",
- "source_mapping": {
- "start": 313,
- "length": 4635,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapVelo(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- }
- }
- ],
- "description": "VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/VeloSolidMixin.sol#24-71) compares to a boolean constant:\n\t-_tryCatchActive != false (lib/vault-v2/src/mixins/VeloSolidMixin.sol#51)\n",
- "markdown": "[VeloSolidMixin._swapVelo(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L24-L71) compares to a boolean constant:\n\t-[_tryCatchActive != false](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L51)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/VeloSolidMixin.sol#L24-L71",
- "id": "3468c3b56c70dc328b6ce16a2e884a49779787f33d95ed13986ee13303b673fb",
- "check": "boolean-equal",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "_tryCatchActive != false",
- "source_mapping": {
- "start": 1622,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 45
- ],
- "starting_column": 13,
- "ending_column": 37
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapUniV2",
- "source_mapping": {
- "start": 748,
- "length": 1626,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV2Mixin",
- "source_mapping": {
- "start": 234,
- "length": 4634,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapUniV2(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- }
- }
- ],
- "description": "UniV2Mixin._swapUniV2(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/UniV2Mixin.sol#20-60) compares to a boolean constant:\n\t-_tryCatchActive != false (lib/vault-v2/src/mixins/UniV2Mixin.sol#45)\n",
- "markdown": "[UniV2Mixin._swapUniV2(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/UniV2Mixin.sol#L20-L60) compares to a boolean constant:\n\t-[_tryCatchActive != false](lib/vault-v2/src/mixins/UniV2Mixin.sol#L45)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV2Mixin.sol#L20-L60",
- "id": "4d722cef03d795c4c7527723911fc2803c15560ae0f19f483e776f19951c36e6",
- "check": "boolean-equal",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- },
- {
- "type": "node",
- "name": "_tryCatchActive != false",
- "source_mapping": {
- "start": 2254,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 63
- ],
- "starting_column": 13,
- "ending_column": 37
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_swapBal",
- "source_mapping": {
- "start": 895,
- "length": 1974,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BalMixin",
- "source_mapping": {
- "start": 307,
- "length": 3662,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_swapBal(address,address,uint256,uint256,address,uint256,bool)"
- }
- }
- }
- }
- ],
- "description": "BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool) (lib/vault-v2/src/mixins/BalMixin.sol#25-76) compares to a boolean constant:\n\t-_tryCatchActive != false (lib/vault-v2/src/mixins/BalMixin.sol#63)\n",
- "markdown": "[BalMixin._swapBal(address,address,uint256,uint256,address,uint256,bool)](lib/vault-v2/src/mixins/BalMixin.sol#L25-L76) compares to a boolean constant:\n\t-[_tryCatchActive != false](lib/vault-v2/src/mixins/BalMixin.sol#L63)\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/BalMixin.sol#L25-L76",
- "id": "7bfc25a8f3bd571f220c04ccf03c188600dbeeb995e1e600bb2cb95af4059ff2",
- "check": "boolean-equal",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.4.22<0.9.0",
- "source_mapping": {
- "start": 32,
- "length": 32,
- "filename_relative": "lib/forge-std/src/console.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
- "filename_short": "lib/forge-std/src/console.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 33
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.4",
- ".22",
- "<",
- "0.9",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 118,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 108,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 104,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 94,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 102,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 107,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 113,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 93,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 115,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 105,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 106,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 110,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 114,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 115,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 86,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 105,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 101,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 99,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 100,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 103,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 205,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 5
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 105,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/security/Pausable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/security/Pausable.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/security/Pausable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 106,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 114,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 115,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 86,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Context.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 32,
- "length": 23,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 45,
- "length": 23,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 169,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
- "filename_short": "lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IAsset.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IAsset.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IAsset.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IAuthorizer.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IAuthorizer.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IAuthorizer.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IBasePool.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBasePool.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IBasePool.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IBeetVault.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBeetVault.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IBeetVault.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ISwapErrors.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapErrors.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISwapErrors.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ISwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapper.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISwapper.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 36,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IVeloPair.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloPair.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IVeloPair.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 32,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 82,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/ReaperAccessControl.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/ReaperAccessControl.sol",
- "filename_short": "lib/vault-v2/src/mixins/ReaperAccessControl.sol",
- "is_dependency": true,
- "lines": [
- 5
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 679,
- "length": 23,
- "filename_relative": "src/interfaces/IBalancerTwapOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancerTwapOracle.sol",
- "filename_short": "src/interfaces/IBalancerTwapOracle.sol",
- "is_dependency": false,
- "lines": [
- 15
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "src/interfaces/ISwapperSwaps.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/ISwapperSwaps.sol",
- "filename_short": "src/interfaces/ISwapperSwaps.sol",
- "is_dependency": false,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.2",
- "source_mapping": {
- "start": 116,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".2"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.2",
- "source_mapping": {
- "start": 113,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".2"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.1",
- "source_mapping": {
- "start": 101,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".1"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.1",
- "source_mapping": {
- "start": 101,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".1"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.8.0",
- "source_mapping": {
- "start": 42,
- "length": 24,
- "filename_relative": "lib/solmate/src/auth/Owned.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
- "filename_short": "lib/solmate/src/auth/Owned.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.8.0",
- "source_mapping": {
- "start": 42,
- "length": 24,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.8.0",
- "source_mapping": {
- "start": 42,
- "length": 24,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.7.5",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/ISwapRouter.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapRouter.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISwapRouter.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.7",
- ".5"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.6.2",
- "source_mapping": {
- "start": 36,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.6",
- ".2"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.6.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.6",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/interfaces/IBalancer2TokensPool.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancer2TokensPool.sol",
- "filename_short": "src/interfaces/IBalancer2TokensPool.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/interfaces/IExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IExercise.sol",
- "filename_short": "src/interfaces/IExercise.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/interfaces/IOptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IOptionsToken.sol",
- "filename_short": "src/interfaces/IOptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/oracles/ThenaOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/ThenaOracle.sol",
- "filename_short": "src/oracles/ThenaOracle.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.7.0<0.9.0",
- "source_mapping": {
- "start": 723,
- "length": 31,
- "filename_relative": "src/interfaces/IBalancerVault.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancerVault.sol",
- "filename_short": "src/interfaces/IBalancerVault.sol",
- "is_dependency": false,
- "lines": [
- 17
- ],
- "starting_column": 1,
- "ending_column": 32
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.7",
- ".0",
- "<",
- "0.9",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.7.0<0.9.0",
- "source_mapping": {
- "start": 38,
- "length": 31,
- "filename_relative": "src/interfaces/IERC20Mintable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IERC20Mintable.sol",
- "filename_short": "src/interfaces/IERC20Mintable.sol",
- "is_dependency": false,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 32
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.7",
- ".0",
- "<",
- "0.9",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.7.0<0.9.0",
- "source_mapping": {
- "start": 38,
- "length": 31,
- "filename_relative": "src/interfaces/IOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IOracle.sol",
- "filename_short": "src/interfaces/IOracle.sol",
- "is_dependency": false,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 32
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.7",
- ".0",
- "<",
- "0.9",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5",
- "source_mapping": {
- "start": 0,
- "length": 22,
- "filename_relative": "src/interfaces/IThenaPair.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IThenaPair.sol",
- "filename_short": "src/interfaces/IThenaPair.sol",
- "is_dependency": false,
- "lines": [
- 1
- ],
- "starting_column": 1,
- "ending_column": 23
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5"
- ]
- }
- }
- ],
- "description": "12 different versions of Solidity are used:\n\t- Version constraint >=0.4.22<0.9.0 is used by:\n\t\t->=0.4.22<0.9.0 (lib/forge-std/src/console.sol#2)\n\t- Version constraint ^0.8.0 is used by:\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#5)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/security/Pausable.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)\n\t\t-^0.8.0 (lib/v3-core/contracts/libraries/FullMath.sol#2)\n\t\t-^0.8.0 (lib/v3-core/contracts/libraries/TickMath.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/ReaperSwapper.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#4)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IAsset.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IAuthorizer.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IBasePool.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IBeetVault.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ISignaturesValidator.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ISwapErrors.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ISwapper.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ISwapperSwaps.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IVeloPair.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IVeloRouter.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#2)\n\t\t-^0.8.0 (lib/vault-v2/src/libraries/Babylonian.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/libraries/ReaperMathUtils.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/BalMixin.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/ReaperAccessControl.sol#5)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/UniV2Mixin.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/UniV3Mixin.sol#3)\n\t\t-^0.8.0 (lib/vault-v2/src/mixins/VeloSolidMixin.sol#3)\n\t\t-^0.8.0 (src/helpers/SwapHelper.sol#3)\n\t\t-^0.8.0 (src/interfaces/IBalancerTwapOracle.sol#15)\n\t\t-^0.8.0 (src/interfaces/ISwapperSwaps.sol#3)\n\t- Version constraint ^0.8.2 is used by:\n\t\t-^0.8.2 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#4)\n\t\t-^0.8.2 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n\t- Version constraint ^0.8.1 is used by:\n\t\t-^0.8.1 (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#4)\n\t\t-^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n\t- Version constraint >=0.8.0 is used by:\n\t\t->=0.8.0 (lib/solmate/src/auth/Owned.sol#2)\n\t\t->=0.8.0 (lib/solmate/src/tokens/ERC20.sol#2)\n\t\t->=0.8.0 (lib/solmate/src/utils/FixedPointMathLib.sol#2)\n\t- Version constraint >=0.5.0 is used by:\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#2)\n\t\t->=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#2)\n\t\t->=0.5.0 (lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#2)\n\t\t->=0.5.0 (lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#2)\n\t\t->=0.5.0 (lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#2)\n\t- Version constraint >=0.7.5 is used by:\n\t\t->=0.7.5 (lib/vault-v2/src/interfaces/ISwapRouter.sol#2)\n\t- Version constraint >=0.6.2 is used by:\n\t\t->=0.6.2 (lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#2)\n\t- Version constraint >=0.6.0 is used by:\n\t\t->=0.6.0 (lib/vault-v2/src/libraries/TransferHelper.sol#2)\n\t- Version constraint ^0.8.13 is used by:\n\t\t-^0.8.13 (src/OptionsToken.sol#2)\n\t\t-^0.8.13 (src/exercise/BaseExercise.sol#2)\n\t\t-^0.8.13 (src/exercise/DiscountExercise.sol#2)\n\t\t-^0.8.13 (src/interfaces/IBalancer2TokensPool.sol#2)\n\t\t-^0.8.13 (src/interfaces/IExercise.sol#2)\n\t\t-^0.8.13 (src/interfaces/IOptionsToken.sol#2)\n\t\t-^0.8.13 (src/oracles/BalancerOracle.sol#2)\n\t\t-^0.8.13 (src/oracles/ThenaOracle.sol#2)\n\t\t-^0.8.13 (src/oracles/UniswapV3Oracle.sol#2)\n\t- Version constraint >=0.7.0<0.9.0 is used by:\n\t\t->=0.7.0<0.9.0 (src/interfaces/IBalancerVault.sol#17)\n\t\t->=0.7.0<0.9.0 (src/interfaces/IERC20Mintable.sol#3)\n\t\t->=0.7.0<0.9.0 (src/interfaces/IOracle.sol#3)\n\t- Version constraint >=0.5 is used by:\n\t\t->=0.5 (src/interfaces/IThenaPair.sol#1)\n",
- "markdown": "12 different versions of Solidity are used:\n\t- Version constraint >=0.4.22<0.9.0 is used by:\n\t\t-[>=0.4.22<0.9.0](lib/forge-std/src/console.sol#L2)\n\t- Version constraint ^0.8.0 is used by:\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)\n\t\t-[^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)\n\t\t-[^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)\n\t\t-[^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)\n\t\t-[^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)\n\t\t-[^0.8.0](src/helpers/SwapHelper.sol#L3)\n\t\t-[^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)\n\t\t-[^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)\n\t- Version constraint ^0.8.2 is used by:\n\t\t-[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)\n\t\t-[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n\t- Version constraint ^0.8.1 is used by:\n\t\t-[^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)\n\t\t-[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n\t- Version constraint >=0.8.0 is used by:\n\t\t-[>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)\n\t\t-[>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)\n\t\t-[>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)\n\t- Version constraint >=0.5.0 is used by:\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)\n\t\t-[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)\n\t\t-[>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)\n\t\t-[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)\n\t\t-[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)\n\t- Version constraint >=0.7.5 is used by:\n\t\t-[>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)\n\t- Version constraint >=0.6.2 is used by:\n\t\t-[>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)\n\t- Version constraint >=0.6.0 is used by:\n\t\t-[>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)\n\t- Version constraint ^0.8.13 is used by:\n\t\t-[^0.8.13](src/OptionsToken.sol#L2)\n\t\t-[^0.8.13](src/exercise/BaseExercise.sol#L2)\n\t\t-[^0.8.13](src/exercise/DiscountExercise.sol#L2)\n\t\t-[^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)\n\t\t-[^0.8.13](src/interfaces/IExercise.sol#L2)\n\t\t-[^0.8.13](src/interfaces/IOptionsToken.sol#L2)\n\t\t-[^0.8.13](src/oracles/BalancerOracle.sol#L2)\n\t\t-[^0.8.13](src/oracles/ThenaOracle.sol#L2)\n\t\t-[^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)\n\t- Version constraint >=0.7.0<0.9.0 is used by:\n\t\t-[>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)\n\t\t-[>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)\n\t\t-[>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)\n\t- Version constraint >=0.5 is used by:\n\t\t-[>=0.5](src/interfaces/IThenaPair.sol#L1)\n",
- "first_markdown_element": "lib/forge-std/src/console.sol#L2",
- "id": "85edfa625830fd6d39749390d8a28c826b7e0471c23044a55a1d99f92b7f5482",
- "check": "pragma",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) has a high cyclomatic complexity (25).\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) has a high cyclomatic complexity (25).\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "7dc850151568c0ccbadfaf18e5baa7aba58df9a7be7ede854c7801abedfda59a",
- "check": "cyclomatic-complexity",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": "^0.8.2",
- "source_mapping": {
- "start": 116,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".2"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.2",
- "source_mapping": {
- "start": 113,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".2"
- ]
- }
- }
- ],
- "description": "Version constraint ^0.8.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.2 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#4)\n\t- ^0.8.2 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n",
- "markdown": "Version constraint ^0.8.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)\n\t- [^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4",
- "id": "23c567b20d0424f0b9fdc3bc9515dded7c47d0f2c92a6223ce773baf018abb20",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.6.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.6",
- ".0"
- ]
- }
- }
- ],
- "description": "Version constraint >=0.6.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- MissingEscapingInFormatting\n\t- ArraySliceDynamicallyEncodedBaseType\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow\n\t- YulOptimizerRedundantAssignmentBreakContinue.\nIt is used by:\n\t- >=0.6.0 (lib/vault-v2/src/libraries/TransferHelper.sol#2)\n",
- "markdown": "Version constraint >=0.6.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- MissingEscapingInFormatting\n\t- ArraySliceDynamicallyEncodedBaseType\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow\n\t- YulOptimizerRedundantAssignmentBreakContinue.\nIt is used by:\n\t- [>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L2",
- "id": "2ad22408bbd50c54342714ef4d73fdcb7de70fc26f2f719e2d94e74975873eb7",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.5",
- "source_mapping": {
- "start": 0,
- "length": 22,
- "filename_relative": "src/interfaces/IThenaPair.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IThenaPair.sol",
- "filename_short": "src/interfaces/IThenaPair.sol",
- "is_dependency": false,
- "lines": [
- 1
- ],
- "starting_column": 1,
- "ending_column": 23
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5"
- ]
- }
- }
- ],
- "description": "Version constraint >=0.5 is too complex.\nIt is used by:\n\t- >=0.5 (src/interfaces/IThenaPair.sol#1)\n",
- "markdown": "Version constraint >=0.5 is too complex.\nIt is used by:\n\t- [>=0.5](src/interfaces/IThenaPair.sol#L1)\n",
- "first_markdown_element": "src/interfaces/IThenaPair.sol#L1",
- "id": "2ad70665f7cd347f547e5a92ff885c19999dbf2fae965bf1a9e88ae34d4842da",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": "^0.8.1",
- "source_mapping": {
- "start": 101,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".1"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.1",
- "source_mapping": {
- "start": 101,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".1"
- ]
- }
- }
- ],
- "description": "Version constraint ^0.8.1 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.1 (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#4)\n\t- ^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n",
- "markdown": "Version constraint ^0.8.1 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)\n\t- [^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4",
- "id": "5b4c66a1bb40ec6a66dbf52a4cf24f6a91614ede5bb20cae9a049c071c3b9be2",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.8.0",
- "source_mapping": {
- "start": 42,
- "length": 24,
- "filename_relative": "lib/solmate/src/auth/Owned.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/auth/Owned.sol",
- "filename_short": "lib/solmate/src/auth/Owned.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.8.0",
- "source_mapping": {
- "start": 42,
- "length": 24,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.8.0",
- "source_mapping": {
- "start": 42,
- "length": 24,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.8",
- ".0"
- ]
- }
- }
- ],
- "description": "Version constraint >=0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- >=0.8.0 (lib/solmate/src/auth/Owned.sol#2)\n\t- >=0.8.0 (lib/solmate/src/tokens/ERC20.sol#2)\n\t- >=0.8.0 (lib/solmate/src/utils/FixedPointMathLib.sol#2)\n",
- "markdown": "Version constraint >=0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)\n\t- [>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)\n\t- [>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)\n",
- "first_markdown_element": "lib/solmate/src/auth/Owned.sol#L2",
- "id": "608762324767ce76c3af44990a7836a9dfdba566defdc7b70d6131bf689edff6",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.4.22<0.9.0",
- "source_mapping": {
- "start": 32,
- "length": 32,
- "filename_relative": "lib/forge-std/src/console.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
- "filename_short": "lib/forge-std/src/console.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 33
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.4",
- ".22",
- "<",
- "0.9",
- ".0"
- ]
- }
- }
- ],
- "description": "Version constraint >=0.4.22<0.9.0 is too complex.\nIt is used by:\n\t- >=0.4.22<0.9.0 (lib/forge-std/src/console.sol#2)\n",
- "markdown": "Version constraint >=0.4.22<0.9.0 is too complex.\nIt is used by:\n\t- [>=0.4.22<0.9.0](lib/forge-std/src/console.sol#L2)\n",
- "first_markdown_element": "lib/forge-std/src/console.sol#L2",
- "id": "6c8ea62efd4799f5b24c03f450a6e012ab55c2446251d81bfa3eca7df3593083",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.7.0<0.9.0",
- "source_mapping": {
- "start": 723,
- "length": 31,
- "filename_relative": "src/interfaces/IBalancerVault.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancerVault.sol",
- "filename_short": "src/interfaces/IBalancerVault.sol",
- "is_dependency": false,
- "lines": [
- 17
- ],
- "starting_column": 1,
- "ending_column": 32
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.7",
- ".0",
- "<",
- "0.9",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.7.0<0.9.0",
- "source_mapping": {
- "start": 38,
- "length": 31,
- "filename_relative": "src/interfaces/IERC20Mintable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IERC20Mintable.sol",
- "filename_short": "src/interfaces/IERC20Mintable.sol",
- "is_dependency": false,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 32
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.7",
- ".0",
- "<",
- "0.9",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.7.0<0.9.0",
- "source_mapping": {
- "start": 38,
- "length": 31,
- "filename_relative": "src/interfaces/IOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IOracle.sol",
- "filename_short": "src/interfaces/IOracle.sol",
- "is_dependency": false,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 32
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.7",
- ".0",
- "<",
- "0.9",
- ".0"
- ]
- }
- }
- ],
- "description": "Version constraint >=0.7.0<0.9.0 is too complex.\nIt is used by:\n\t- >=0.7.0<0.9.0 (src/interfaces/IBalancerVault.sol#17)\n\t- >=0.7.0<0.9.0 (src/interfaces/IERC20Mintable.sol#3)\n\t- >=0.7.0<0.9.0 (src/interfaces/IOracle.sol#3)\n",
- "markdown": "Version constraint >=0.7.0<0.9.0 is too complex.\nIt is used by:\n\t- [>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)\n\t- [>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)\n\t- [>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)\n",
- "first_markdown_element": "src/interfaces/IBalancerVault.sol#L17",
- "id": "76329079d414df38af98aae17d79222e359e9f99d2775292b8f625e9c4ee13d0",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 118,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 108,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 104,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 94,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 102,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 107,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 113,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 93,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 115,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 105,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 106,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 110,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 114,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 115,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 86,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 105,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 101,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 99,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 100,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 103,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 205,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 5
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 105,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/security/Pausable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/security/Pausable.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/security/Pausable.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 106,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 114,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 115,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 86,
- "length": 23,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Context.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 32,
- "length": 23,
- "filename_relative": "lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/FullMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/FullMath.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 45,
- "length": 23,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 169,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
- "filename_short": "lib/vault-v2/src/interfaces/AggregatorV3Interface.sol",
- "is_dependency": true,
- "lines": [
- 4
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IAsset.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IAsset.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IAsset.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IAuthorizer.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IAuthorizer.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IAuthorizer.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IBasePool.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBasePool.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IBasePool.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IBaseWeightedPool.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IBeetVault.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IBeetVault.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IBeetVault.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IPoolSwapStructs.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISignaturesValidator.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ISwapErrors.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapErrors.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISwapErrors.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ISwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapper.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISwapper.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISwapperSwaps.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ITemporarilyPausable.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 36,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IVeloPair.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloPair.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IVeloPair.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 32,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/BalMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/BalMixin.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 82,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/ReaperAccessControl.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/ReaperAccessControl.sol",
- "filename_short": "lib/vault-v2/src/mixins/ReaperAccessControl.sol",
- "is_dependency": true,
- "lines": [
- 5
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV2Mixin.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/VeloSolidMixin.sol",
- "is_dependency": true,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 38,
- "length": 23,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 679,
- "length": 23,
- "filename_relative": "src/interfaces/IBalancerTwapOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancerTwapOracle.sol",
- "filename_short": "src/interfaces/IBalancerTwapOracle.sol",
- "is_dependency": false,
- "lines": [
- 15
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.0",
- "source_mapping": {
- "start": 37,
- "length": 23,
- "filename_relative": "src/interfaces/ISwapperSwaps.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/ISwapperSwaps.sol",
- "filename_short": "src/interfaces/ISwapperSwaps.sol",
- "is_dependency": false,
- "lines": [
- 3
- ],
- "starting_column": 1,
- "ending_column": 24
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".0"
- ]
- }
- }
- ],
- "description": "Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#5)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/security/Pausable.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)\n\t- ^0.8.0 (lib/v3-core/contracts/libraries/FullMath.sol#2)\n\t- ^0.8.0 (lib/v3-core/contracts/libraries/TickMath.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/ReaperSwapper.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#4)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IAsset.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IAuthorizer.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IBasePool.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IBeetVault.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ISignaturesValidator.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ISwapErrors.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ISwapper.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ISwapperSwaps.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IVeloPair.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IVeloRouter.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#2)\n\t- ^0.8.0 (lib/vault-v2/src/libraries/Babylonian.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/libraries/ReaperMathUtils.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/BalMixin.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/ReaperAccessControl.sol#5)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/UniV2Mixin.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/UniV3Mixin.sol#3)\n\t- ^0.8.0 (lib/vault-v2/src/mixins/VeloSolidMixin.sol#3)\n\t- ^0.8.0 (src/helpers/SwapHelper.sol#3)\n\t- ^0.8.0 (src/interfaces/IBalancerTwapOracle.sol#15)\n\t- ^0.8.0 (src/interfaces/ISwapperSwaps.sol#3)\n",
- "markdown": "Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)\n\t- [^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)\n\t- [^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)\n\t- [^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)\n\t- [^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)\n\t- [^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)\n\t- [^0.8.0](src/helpers/SwapHelper.sol#L3)\n\t- [^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)\n\t- [^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4",
- "id": "7bba08adf487efdfae92c045cfb77dbad46ee58270f68522c853dc82c1e990d1",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.7.5",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/ISwapRouter.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/ISwapRouter.sol",
- "filename_short": "lib/vault-v2/src/interfaces/ISwapRouter.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.7",
- ".5"
- ]
- }
- }
- ],
- "description": "Version constraint >=0.7.5 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- >=0.7.5 (lib/vault-v2/src/interfaces/ISwapRouter.sol#2)\n",
- "markdown": "Version constraint >=0.7.5 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)\n",
- "first_markdown_element": "lib/vault-v2/src/interfaces/ISwapRouter.sol#L2",
- "id": "9c890bf1b0570a6ad5a5771e5200b17d26d14d586d8c631f6f0a188594d81fe9",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.6.2",
- "source_mapping": {
- "start": 36,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.6",
- ".2"
- ]
- }
- }
- ],
- "description": "Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- MissingEscapingInFormatting\n\t- ArraySliceDynamicallyEncodedBaseType\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow.\nIt is used by:\n\t- >=0.6.2 (lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#2)\n",
- "markdown": "Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- MissingEscapingInFormatting\n\t- ArraySliceDynamicallyEncodedBaseType\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow.\nIt is used by:\n\t- [>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)\n",
- "first_markdown_element": "lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2",
- "id": "bb0533356ecafe8099cc0d63ad30c4f7a6c44a4cbc4b5ed69e728fc32e446f1f",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/interfaces/IBalancer2TokensPool.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IBalancer2TokensPool.sol",
- "filename_short": "src/interfaces/IBalancer2TokensPool.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/interfaces/IExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IExercise.sol",
- "filename_short": "src/interfaces/IExercise.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/interfaces/IOptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/interfaces/IOptionsToken.sol",
- "filename_short": "src/interfaces/IOptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/oracles/BalancerOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/BalancerOracle.sol",
- "filename_short": "src/oracles/BalancerOracle.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/oracles/ThenaOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/ThenaOracle.sol",
- "filename_short": "src/oracles/ThenaOracle.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- },
- {
- "type": "pragma",
- "name": "^0.8.13",
- "source_mapping": {
- "start": 37,
- "length": 24,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- "^",
- "0.8",
- ".13"
- ]
- }
- }
- ],
- "description": "Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- StorageWriteRemovalBeforeConditionalTermination\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- InlineAssemblyMemorySideEffects\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation.\nIt is used by:\n\t- ^0.8.13 (src/OptionsToken.sol#2)\n\t- ^0.8.13 (src/exercise/BaseExercise.sol#2)\n\t- ^0.8.13 (src/exercise/DiscountExercise.sol#2)\n\t- ^0.8.13 (src/interfaces/IBalancer2TokensPool.sol#2)\n\t- ^0.8.13 (src/interfaces/IExercise.sol#2)\n\t- ^0.8.13 (src/interfaces/IOptionsToken.sol#2)\n\t- ^0.8.13 (src/oracles/BalancerOracle.sol#2)\n\t- ^0.8.13 (src/oracles/ThenaOracle.sol#2)\n\t- ^0.8.13 (src/oracles/UniswapV3Oracle.sol#2)\n",
- "markdown": "Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- StorageWriteRemovalBeforeConditionalTermination\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- InlineAssemblyMemorySideEffects\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation.\nIt is used by:\n\t- [^0.8.13](src/OptionsToken.sol#L2)\n\t- [^0.8.13](src/exercise/BaseExercise.sol#L2)\n\t- [^0.8.13](src/exercise/DiscountExercise.sol#L2)\n\t- [^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)\n\t- [^0.8.13](src/interfaces/IExercise.sol#L2)\n\t- [^0.8.13](src/interfaces/IOptionsToken.sol#L2)\n\t- [^0.8.13](src/oracles/BalancerOracle.sol#L2)\n\t- [^0.8.13](src/oracles/ThenaOracle.sol#L2)\n\t- [^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)\n",
- "first_markdown_element": "src/OptionsToken.sol#L2",
- "id": "d77d9a4f3322696453d48caf7374c78bcac298207384a6493c0203cab485063e",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "filename_short": "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV3Factory.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- },
- {
- "type": "pragma",
- "name": ">=0.5.0",
- "source_mapping": {
- "start": 45,
- "length": 24,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol",
- "is_dependency": true,
- "lines": [
- 2
- ],
- "starting_column": 1,
- "ending_column": 25
- },
- "type_specific_fields": {
- "directive": [
- "solidity",
- ">=",
- "0.5",
- ".0"
- ]
- }
- }
- ],
- "description": "Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- DirtyBytesArrayToStorage\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow\n\t- privateCanBeOverridden\n\t- SignedArrayStorageCopy\n\t- ABIEncoderV2StorageArrayWithMultiSlotElement\n\t- DynamicConstructorArgumentsClippedABIV2\n\t- UninitializedFunctionPointerInConstructor\n\t- IncorrectEventSignatureInLibraries\n\t- ABIEncoderV2PackedStorage.\nIt is used by:\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#2)\n\t- >=0.5.0 (lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#2)\n\t- >=0.5.0 (lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#2)\n\t- >=0.5.0 (lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#2)\n\t- >=0.5.0 (lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#2)\n",
- "markdown": "Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- DirtyBytesArrayToStorage\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching\n\t- EmptyByteArrayCopy\n\t- DynamicArrayCleanup\n\t- ImplicitConstructorCallvalueCheck\n\t- TupleAssignmentMultiStackSlotComponents\n\t- MemoryArrayCreationOverflow\n\t- privateCanBeOverridden\n\t- SignedArrayStorageCopy\n\t- ABIEncoderV2StorageArrayWithMultiSlotElement\n\t- DynamicConstructorArgumentsClippedABIV2\n\t- UninitializedFunctionPointerInConstructor\n\t- IncorrectEventSignatureInLibraries\n\t- ABIEncoderV2PackedStorage.\nIt is used by:\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)\n\t- [>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)\n\t- [>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)\n\t- [>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)\n\t- [>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)\n",
- "first_markdown_element": "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2",
- "id": "e84a495d364105fdd86e3c7f8f77d282f0048ce3bd2dd58f1ffef9abeb868a29",
- "check": "solc-version",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5240,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4960,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- }
- }
- ],
- "description": "Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#128-137):\n\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n",
- "markdown": "Low level call in [Address.functionCallWithValue(address,bytes,uint256,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L128-L137):\n\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n",
- "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L128-L137",
- "id": "117f0e40fe1352d1526a3c30c36971a0228cffa749da9528fa1d65423334e755",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "safeTransfer",
- "source_mapping": {
- "start": 1152,
- "length": 279,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeTransfer(address,address,uint256)"
- }
- },
- {
- "type": "node",
- "name": "(success,data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector,to,value))",
- "source_mapping": {
- "start": 1235,
- "length": 107,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 25
- ],
- "starting_column": 9,
- "ending_column": 116
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "safeTransfer",
- "source_mapping": {
- "start": 1152,
- "length": 279,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25,
- 26,
- 27
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeTransfer(address,address,uint256)"
- }
- }
- }
- }
- ],
- "description": "Low level call in TransferHelper.safeTransfer(address,address,uint256) (lib/vault-v2/src/libraries/TransferHelper.sol#24-27):\n\t- (success,data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector,to,value)) (lib/vault-v2/src/libraries/TransferHelper.sol#25)\n",
- "markdown": "Low level call in [TransferHelper.safeTransfer(address,address,uint256)](lib/vault-v2/src/libraries/TransferHelper.sol#L24-L27):\n\t- [(success,data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector,to,value))](lib/vault-v2/src/libraries/TransferHelper.sol#L25)\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L24-L27",
- "id": "25ed2c6c6c60a5ffbabebdd4d6f7bfd18fd58359a16acbf51f11d083bbc5b7a6",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "safeTransferFrom",
- "source_mapping": {
- "start": 540,
- "length": 320,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeTransferFrom(address,address,address,uint256)"
- }
- },
- {
- "type": "node",
- "name": "(success,data) = token.call(abi.encodeWithSelector(IERC20.transferFrom.selector,from,to,value))",
- "source_mapping": {
- "start": 641,
- "length": 129,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15
- ],
- "starting_column": 9,
- "ending_column": 94
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "safeTransferFrom",
- "source_mapping": {
- "start": 540,
- "length": 320,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeTransferFrom(address,address,address,uint256)"
- }
- }
- }
- }
- ],
- "description": "Low level call in TransferHelper.safeTransferFrom(address,address,address,uint256) (lib/vault-v2/src/libraries/TransferHelper.sol#13-17):\n\t- (success,data) = token.call(abi.encodeWithSelector(IERC20.transferFrom.selector,from,to,value)) (lib/vault-v2/src/libraries/TransferHelper.sol#14-15)\n",
- "markdown": "Low level call in [TransferHelper.safeTransferFrom(address,address,address,uint256)](lib/vault-v2/src/libraries/TransferHelper.sol#L13-L17):\n\t- [(success,data) = token.call(abi.encodeWithSelector(IERC20.transferFrom.selector,from,to,value))](lib/vault-v2/src/libraries/TransferHelper.sol#L14-L15)\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L13-L17",
- "id": "4106472e91e5e4243fd3d3b66b2a8990e1c95c0a5bf0a286b8e1e6597c12ebb6",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "_functionDelegateCall",
- "source_mapping": {
- "start": 6780,
- "length": 455,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC1967UpgradeUpgradeable",
- "source_mapping": {
- "start": 661,
- "length": 6867,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_functionDelegateCall(address,bytes)"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.delegatecall(data)",
- "source_mapping": {
- "start": 7045,
- "length": 67,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 188
- ],
- "starting_column": 9,
- "ending_column": 76
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "_functionDelegateCall",
- "source_mapping": {
- "start": 6780,
- "length": 455,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC1967UpgradeUpgradeable",
- "source_mapping": {
- "start": 661,
- "length": 6867,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "_functionDelegateCall(address,bytes)"
- }
- }
- }
- }
- ],
- "description": "Low level call in ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#184-190):\n\t- (success,returndata) = target.delegatecall(data) (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#188)\n",
- "markdown": "Low level call in [ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes)](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L184-L190):\n\t- [(success,returndata) = target.delegatecall(data)](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L188)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L184-L190",
- "id": "68c54f03456c9af14bc78976aaac6bce102000001fe91323e0ffc2d36d3acd64",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sendValue",
- "source_mapping": {
- "start": 2412,
- "length": 312,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 60,
- 61,
- 62,
- 63,
- 64,
- 65
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sendValue(address,uint256)"
- }
- },
- {
- "type": "node",
- "name": "(success,None) = recipient.call{value: amount}()",
- "source_mapping": {
- "start": 2577,
- "length": 52,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 63
- ],
- "starting_column": 9,
- "ending_column": 61
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sendValue",
- "source_mapping": {
- "start": 2412,
- "length": 312,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 60,
- 61,
- 62,
- 63,
- 64,
- 65
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sendValue(address,uint256)"
- }
- }
- }
- }
- ],
- "description": "Low level call in Address.sendValue(address,uint256) (lib/openzeppelin-contracts/contracts/utils/Address.sol#60-65):\n\t- (success,None) = recipient.call{value: amount}() (lib/openzeppelin-contracts/contracts/utils/Address.sol#63)\n",
- "markdown": "Low level call in [Address.sendValue(address,uint256)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L60-L65):\n\t- [(success,None) = recipient.call{value: amount}()](lib/openzeppelin-contracts/contracts/utils/Address.sol#L63)\n",
- "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L60-L65",
- "id": "71a3a6ee368d2284f3a1f62a49cfd8cdecd854d6c9799bb82199830989d7fb6c",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sendValue",
- "source_mapping": {
- "start": 2423,
- "length": 312,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 60,
- 61,
- 62,
- 63,
- 64,
- 65
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sendValue(address,uint256)"
- }
- },
- {
- "type": "node",
- "name": "(success,None) = recipient.call{value: amount}()",
- "source_mapping": {
- "start": 2588,
- "length": 52,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 63
- ],
- "starting_column": 9,
- "ending_column": 61
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sendValue",
- "source_mapping": {
- "start": 2423,
- "length": 312,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 60,
- 61,
- 62,
- 63,
- 64,
- 65
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sendValue(address,uint256)"
- }
- }
- }
- }
- ],
- "description": "Low level call in AddressUpgradeable.sendValue(address,uint256) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#60-65):\n\t- (success,None) = recipient.call{value: amount}() (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#63)\n",
- "markdown": "Low level call in [AddressUpgradeable.sendValue(address,uint256)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L60-L65):\n\t- [(success,None) = recipient.call{value: amount}()](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L63)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L60-L65",
- "id": "89d29e5a468e08c404fcc98bf6872b9e33ca2f30eaea1879f1d6a95c9faca274",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "functionStaticCall",
- "source_mapping": {
- "start": 5975,
- "length": 326,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionStaticCall(address,bytes,string)"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.staticcall(data)",
- "source_mapping": {
- "start": 6143,
- "length": 65,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 160
- ],
- "starting_column": 9,
- "ending_column": 74
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionStaticCall",
- "source_mapping": {
- "start": 5975,
- "length": 326,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionStaticCall(address,bytes,string)"
- }
- }
- }
- }
- ],
- "description": "Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#155-162):\n\t- (success,returndata) = target.staticcall(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#160)\n",
- "markdown": "Low level call in [AddressUpgradeable.functionStaticCall(address,bytes,string)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L155-L162):\n\t- [(success,returndata) = target.staticcall(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L160)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L155-L162",
- "id": "930ee0ffde6f0923876c4bc0067edc13707a3214f1d8d8954a2ef16471f1ee87",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "functionStaticCall",
- "source_mapping": {
- "start": 5964,
- "length": 326,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionStaticCall(address,bytes,string)"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.staticcall(data)",
- "source_mapping": {
- "start": 6132,
- "length": 65,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 160
- ],
- "starting_column": 9,
- "ending_column": 74
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionStaticCall",
- "source_mapping": {
- "start": 5964,
- "length": 326,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionStaticCall(address,bytes,string)"
- }
- }
- }
- }
- ],
- "description": "Low level call in Address.functionStaticCall(address,bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#155-162):\n\t- (success,returndata) = target.staticcall(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#160)\n",
- "markdown": "Low level call in [Address.functionStaticCall(address,bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L155-L162):\n\t- [(success,returndata) = target.staticcall(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L160)\n",
- "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L155-L162",
- "id": "93eb0561ad76cb924a6646e71a8388be0f653be8a9cd37bdb60e25805d8be051",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "safeTransferETH",
- "source_mapping": {
- "start": 2251,
- "length": 164,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 43,
- 44,
- 45,
- 46
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeTransferETH(address,uint256)"
- }
- },
- {
- "type": "node",
- "name": "(success,None) = to.call{value: value}(new bytes(0))",
- "source_mapping": {
- "start": 2322,
- "length": 53,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 44
- ],
- "starting_column": 9,
- "ending_column": 62
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "safeTransferETH",
- "source_mapping": {
- "start": 2251,
- "length": 164,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 43,
- 44,
- 45,
- 46
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeTransferETH(address,uint256)"
- }
- }
- }
- }
- ],
- "description": "Low level call in TransferHelper.safeTransferETH(address,uint256) (lib/vault-v2/src/libraries/TransferHelper.sol#43-46):\n\t- (success,None) = to.call{value: value}(new bytes(0)) (lib/vault-v2/src/libraries/TransferHelper.sol#44)\n",
- "markdown": "Low level call in [TransferHelper.safeTransferETH(address,uint256)](lib/vault-v2/src/libraries/TransferHelper.sol#L43-L46):\n\t- [(success,None) = to.call{value: value}(new bytes(0))](lib/vault-v2/src/libraries/TransferHelper.sol#L44)\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L43-L46",
- "id": "a7ee1b8ee08e673c81b6be63d50aa8273a86fb1be76e38aa60b066b6cb985739",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "safeApprove",
- "source_mapping": {
- "start": 1784,
- "length": 277,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 34,
- 35,
- 36,
- 37
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeApprove(address,address,uint256)"
- }
- },
- {
- "type": "node",
- "name": "(success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value))",
- "source_mapping": {
- "start": 1866,
- "length": 106,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 35
- ],
- "starting_column": 9,
- "ending_column": 115
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "safeApprove",
- "source_mapping": {
- "start": 1784,
- "length": 277,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 34,
- 35,
- 36,
- 37
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TransferHelper",
- "source_mapping": {
- "start": 108,
- "length": 2309,
- "filename_relative": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/TransferHelper.sol",
- "filename_short": "lib/vault-v2/src/libraries/TransferHelper.sol",
- "is_dependency": true,
- "lines": [
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "safeApprove(address,address,uint256)"
- }
- }
- }
- }
- ],
- "description": "Low level call in TransferHelper.safeApprove(address,address,uint256) (lib/vault-v2/src/libraries/TransferHelper.sol#34-37):\n\t- (success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value)) (lib/vault-v2/src/libraries/TransferHelper.sol#35)\n",
- "markdown": "Low level call in [TransferHelper.safeApprove(address,address,uint256)](lib/vault-v2/src/libraries/TransferHelper.sol#L34-L37):\n\t- [(success,data) = token.call(abi.encodeWithSelector(IERC20.approve.selector,to,value))](lib/vault-v2/src/libraries/TransferHelper.sol#L35)\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/TransferHelper.sol#L34-L37",
- "id": "c7fac630cfc9b967d8af50ae5e1c350df9a222c8c9e8ef56e33726ed42bf6bfd",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.call{value: value}(data)",
- "source_mapping": {
- "start": 5251,
- "length": 73,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 135
- ],
- "starting_column": 9,
- "ending_column": 82
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionCallWithValue",
- "source_mapping": {
- "start": 4971,
- "length": 446,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AddressUpgradeable",
- "source_mapping": {
- "start": 194,
- "length": 8087,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionCallWithValue(address,bytes,uint256,string)"
- }
- }
- }
- }
- ],
- "description": "Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#128-137):\n\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#135)\n",
- "markdown": "Low level call in [AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L128-L137):\n\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L135)\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L128-L137",
- "id": "c89bbc1f4bb1262a39f9090cc1b9e7447b4593134afdcf6677ccbd6a394243ae",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "functionDelegateCall",
- "source_mapping": {
- "start": 6853,
- "length": 325,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionDelegateCall(address,bytes,string)"
- }
- },
- {
- "type": "node",
- "name": "(success,returndata) = target.delegatecall(data)",
- "source_mapping": {
- "start": 7018,
- "length": 67,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 185
- ],
- "starting_column": 9,
- "ending_column": 76
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "functionDelegateCall",
- "source_mapping": {
- "start": 6853,
- "length": 325,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Address",
- "source_mapping": {
- "start": 194,
- "length": 8964,
- "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol",
- "is_dependency": true,
- "lines": [
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "functionDelegateCall(address,bytes,string)"
- }
- }
- }
- }
- ],
- "description": "Low level call in Address.functionDelegateCall(address,bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#180-187):\n\t- (success,returndata) = target.delegatecall(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#185)\n",
- "markdown": "Low level call in [Address.functionDelegateCall(address,bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L180-L187):\n\t- [(success,returndata) = target.delegatecall(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L185)\n",
- "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L180-L187",
- "id": "d195a90c4848e59b62bdf1e5bf577abf5a3a0d92ac7dad04aef4ca0c978598bb",
- "check": "low-level-calls",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 3672,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 97
- ],
- "starting_column": 71,
- "ending_column": 86
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateUniV2SwapPath",
- "source_mapping": {
- "start": 3606,
- "length": 253,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateUniV2SwapPath(address,address,address,address[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._router (lib/vault-v2/src/ReaperSwapper.sol#97) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._router](lib/vault-v2/src/ReaperSwapper.sol#L97) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L97",
- "id": "045fb660d1db15a01f9c99a6b5f6fb1408a8fd0d9c8a18d9df6c0ba49a374583",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 9195,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 258
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9098,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#258) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L258) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L258",
- "id": "056e10de3ceb71ae24ecfcaa44f6c9ca1e39f54e0a350667ed239b6dc8076db7",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 5256,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 144
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._router (lib/vault-v2/src/ReaperSwapper.sol#144) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._router](lib/vault-v2/src/ReaperSwapper.sol#L144) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L144",
- "id": "0787751791a4c77b7495d89adc97395e4ffcf397cb1818fdb17614015b8de9dc",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 8323,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 234
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 8252,
- "length": 300,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._amount (lib/vault-v2/src/ReaperSwapper.sol#234) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._amount](lib/vault-v2/src/ReaperSwapper.sol#L234) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L234",
- "id": "08b84b7756b996f86a47f6056fbae30a072defadc58214f35cfc7d507bbbf801",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_deadline",
- "source_mapping": {
- "start": 8731,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 247
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline (lib/vault-v2/src/ReaperSwapper.sol#247) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L247) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L247",
- "id": "08efa8121ff57e30ff0150c964c8970a993a0edcaca089059974cbfcc6366943",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenIn",
- "source_mapping": {
- "start": 3635,
- "length": 16,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 97
- ],
- "starting_column": 34,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateUniV2SwapPath",
- "source_mapping": {
- "start": 3606,
- "length": 253,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateUniV2SwapPath(address,address,address,address[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._tokenIn (lib/vault-v2/src/ReaperSwapper.sol#97) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._tokenIn](lib/vault-v2/src/ReaperSwapper.sol#L97) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L97",
- "id": "0b27fda3861b3fe8e55b99783814bc1cee3e0c23c1f343feb33c325f4501d68c",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 9149,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 256
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9098,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._to (lib/vault-v2/src/ReaperSwapper.sol#256) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._to](lib/vault-v2/src/ReaperSwapper.sol#L256) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L256",
- "id": "0b4fd12a14dd7d67ae408415c747efa419594368b633030ff52d6c977203874c",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_deadline",
- "source_mapping": {
- "start": 8097,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 226
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7925,
- "length": 321,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._deadline (lib/vault-v2/src/ReaperSwapper.sol#226) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L226) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L226",
- "id": "0cdc556021475f0af1abd7fd72e843e33927c369b1e1c0ffaae3798048a0c1ae",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_swapPathAndFees",
- "source_mapping": {
- "start": 4500,
- "length": 37,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 125
- ],
- "starting_column": 9,
- "ending_column": 46
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateUniV3SwapPath",
- "source_mapping": {
- "start": 4384,
- "length": 297,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateUniV3SwapPath(address,address,address,UniV3SwapData)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._swapPathAndFees (lib/vault-v2/src/ReaperSwapper.sol#125) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._swapPathAndFees](lib/vault-v2/src/ReaperSwapper.sol#L125) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L125",
- "id": "0e642fe8b87d792e6c6d36b518053207216f97f0fef498badb6a7874ed3df69a",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 9524,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 269
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9427,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#269) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L269) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L269",
- "id": "10054eaf2fa911a848a5fad5a0dda5b107dcf5deb8cb4f17cbb21eed25bfe193",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "DOMAIN_SEPARATOR",
- "source_mapping": {
- "start": 2200,
- "length": 60,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 59
- ],
- "starting_column": 5,
- "ending_column": 65
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "IERC20PermitUpgradeable",
- "source_mapping": {
- "start": 620,
- "length": 1642,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "DOMAIN_SEPARATOR()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function IERC20PermitUpgradeable.DOMAIN_SEPARATOR() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#59) is not in mixedCase\n",
- "markdown": "Function [IERC20PermitUpgradeable.DOMAIN_SEPARATOR()](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L59) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L59",
- "id": "125dfc7c7f2b3906a5391a5c33308280a9b2578cf6bba9c9acfe0f81566a4a45",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 6009,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 165
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5958,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._to (lib/vault-v2/src/ReaperSwapper.sol#165) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._to](lib/vault-v2/src/ReaperSwapper.sol#L165) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L165",
- "id": "13386020056a24202ba7c82b9d72db8fadd9fc2dd25e8f0619ad4ee353fa6be8",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tryCatchActive",
- "source_mapping": {
- "start": 5308,
- "length": 20,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 146
- ],
- "starting_column": 9,
- "ending_column": 29
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive (lib/vault-v2/src/ReaperSwapper.sol#146) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive](lib/vault-v2/src/ReaperSwapper.sol#L146) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L146",
- "id": "1413c8e43afe2c3bb270b1d87658ac7a5460b58ea2c4207eff0b7f20572e3487",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 5657,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 153
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5629,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._from (lib/vault-v2/src/ReaperSwapper.sol#153) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._from](lib/vault-v2/src/ReaperSwapper.sol#L153) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L153",
- "id": "167f6e358e928549089ddd67ae14cacf28a7b6b3d2ba49ecde0d95bbdf59a712",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_token",
- "source_mapping": {
- "start": 4718,
- "length": 14,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 131
- ],
- "starting_column": 36,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateTokenAggregator",
- "source_mapping": {
- "start": 4687,
- "length": 415,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateTokenAggregator(address,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateTokenAggregator(address,address,uint256)._token (lib/vault-v2/src/ReaperSwapper.sol#131) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateTokenAggregator(address,address,uint256)._token](lib/vault-v2/src/ReaperSwapper.sol#L131) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L131",
- "id": "16896e5595b8f444a953b0b29208119da1d296a34ca6563be4c53b709cc64eec",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 5180,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 142
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount (lib/vault-v2/src/ReaperSwapper.sol#142) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount](lib/vault-v2/src/ReaperSwapper.sol#L142) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L142",
- "id": "17950f73fc7894890b97248a7fa127919e88cf0d7f1253e8140b803d31fe376d",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 7553,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 212
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._router (lib/vault-v2/src/ReaperSwapper.sol#212) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._router](lib/vault-v2/src/ReaperSwapper.sol#L212) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L212",
- "id": "2071ae182e04da551e03610f93d5f1c8cbd402de79ade41335d807e0c8f9ca2d",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 9246,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 259
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9098,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._router (lib/vault-v2/src/ReaperSwapper.sol#259) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._router](lib/vault-v2/src/ReaperSwapper.sol#L259) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L259",
- "id": "21aa1ba8369fb7a559e4c0fc1bf22fe287113c68f962299287db1014485354ae",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__AccessControl_init_unchained",
- "source_mapping": {
- "start": 2096,
- "length": 75,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 54,
- 55
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlUpgradeable",
- "source_mapping": {
- "start": 1893,
- "length": 6829,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__AccessControl_init_unchained()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function AccessControlUpgradeable.__AccessControl_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#54-55) is not in mixedCase\n",
- "markdown": "Function [AccessControlUpgradeable.__AccessControl_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L54-L55) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L54-L55",
- "id": "226e7d5af64c132f41abf0df79c0723e2a9ee53e2961f745732ce61ab1360dbe",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_deadline",
- "source_mapping": {
- "start": 7578,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 213
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline (lib/vault-v2/src/ReaperSwapper.sol#213) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L213) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L213",
- "id": "240474b72d2cdc4bd8b66ec268a242cf52bd88a0bd41e774e65b9f185e61fbbe",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__ERC1967Upgrade_init_unchained",
- "source_mapping": {
- "start": 821,
- "length": 76,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 25,
- 26
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC1967UpgradeUpgradeable",
- "source_mapping": {
- "start": 661,
- "length": 6867,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__ERC1967Upgrade_init_unchained()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#25-26) is not in mixedCase\n",
- "markdown": "Function [ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L25-L26) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L25-L26",
- "id": "29c5a9e0594a34ab55098292b0786be5a1f49f1e651ab7af2a669ca40aceb7cb",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 7199,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 201
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 7104,
- "length": 296,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#201) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L201) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L201",
- "id": "2be2dfb84a1a47a1fe2c701f27b43bdd31cbf35e78f89cc8ed3ef46fb5072bca",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 8655,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 245
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#245) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L245) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L245",
- "id": "2c2e8431129b1c52325a318d5db8219a891248cfc55c1a5cf2b2920f2c9fa9f8",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenOut",
- "source_mapping": {
- "start": 3653,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 97
- ],
- "starting_column": 52,
- "ending_column": 69
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateUniV2SwapPath",
- "source_mapping": {
- "start": 3606,
- "length": 253,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateUniV2SwapPath(address,address,address,address[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._tokenOut (lib/vault-v2/src/ReaperSwapper.sol#97) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._tokenOut](lib/vault-v2/src/ReaperSwapper.sol#L97) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L97",
- "id": "2c8a8bc61df4a18b388999061d6fa5010feaf9562fd8d62b188e468e456a7153",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "INITIAL_CHAIN_ID",
- "source_mapping": {
- "start": 1643,
- "length": 43,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 41
- ],
- "starting_column": 5,
- "ending_column": 48
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC20",
- "source_mapping": {
- "start": 474,
- "length": 6337,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable ERC20.INITIAL_CHAIN_ID (lib/solmate/src/tokens/ERC20.sol#41) is not in mixedCase\n",
- "markdown": "Variable [ERC20.INITIAL_CHAIN_ID](lib/solmate/src/tokens/ERC20.sol#L41) is not in mixedCase\n",
- "first_markdown_element": "lib/solmate/src/tokens/ERC20.sol#L41",
- "id": "2e819ac97dab8ee9a559c975cd452228b363b633f4622a8c32d0502767b91e40",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 9455,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 266
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9427,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._from (lib/vault-v2/src/ReaperSwapper.sol#266) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._from](lib/vault-v2/src/ReaperSwapper.sol#L266) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L266",
- "id": "3018788d12fc4b75ffed237e40bf2d933f3f102f422ca4e6f6ec99588852c88a",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 6336,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 176
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount (lib/vault-v2/src/ReaperSwapper.sol#176) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount](lib/vault-v2/src/ReaperSwapper.sol#L176) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L176",
- "id": "30afd9ece480d36302713f1423a92fdac5775d35d8e9084b6744f69d41cb35e5",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_nextImplementation",
- "source_mapping": {
- "start": 6725,
- "length": 27,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 162
- ],
- "starting_column": 38,
- "ending_column": 65
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "initiateUpgradeCooldown",
- "source_mapping": {
- "start": 6692,
- "length": 185,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 162,
- 163,
- 164,
- 165
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "initiateUpgradeCooldown(address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter OptionsToken.initiateUpgradeCooldown(address)._nextImplementation (src/OptionsToken.sol#162) is not in mixedCase\n",
- "markdown": "Parameter [OptionsToken.initiateUpgradeCooldown(address)._nextImplementation](src/OptionsToken.sol#L162) is not in mixedCase\n",
- "first_markdown_element": "src/OptionsToken.sol#L162",
- "id": "33e53f10ff3f49b18813d9dac0930ba1348d308496c90d9c1a00c0497f5c3cee",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_path",
- "source_mapping": {
- "start": 3689,
- "length": 22,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 97
- ],
- "starting_column": 88,
- "ending_column": 110
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateUniV2SwapPath",
- "source_mapping": {
- "start": 3606,
- "length": 253,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateUniV2SwapPath(address,address,address,address[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._path (lib/vault-v2/src/ReaperSwapper.sol#97) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateUniV2SwapPath(address,address,address,address[])._path](lib/vault-v2/src/ReaperSwapper.sol#L97) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L97",
- "id": "3421d80536152c860bba400d09dfde114340f7d38d4da09d6edfbf1adb890352",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenB",
- "source_mapping": {
- "start": 746,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20
- ],
- "starting_column": 46,
- "ending_column": 61
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "uniV3SwapPaths",
- "source_mapping": {
- "start": 705,
- "length": 214,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "uniV3SwapPaths(address,address,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter UniV3Mixin.uniV3SwapPaths(address,address,address)._tokenB (lib/vault-v2/src/mixins/UniV3Mixin.sol#20) is not in mixedCase\n",
- "markdown": "Parameter [UniV3Mixin.uniV3SwapPaths(address,address,address)._tokenB](lib/vault-v2/src/mixins/UniV3Mixin.sol#L20) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L20",
- "id": "348fbebd40a224260ed0a3f0410ab794e4cdc194d7609d7c57ecede5098d527e",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tryCatchActive",
- "source_mapping": {
- "start": 8758,
- "length": 20,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 248
- ],
- "starting_column": 9,
- "ending_column": 29
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive (lib/vault-v2/src/ReaperSwapper.sol#248) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive](lib/vault-v2/src/ReaperSwapper.sol#L248) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L248",
- "id": "34c29ba73612384447f21b695bb026ad188d469ca5f98fa472e6aa3a356a605c",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 5159,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 141
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._to (lib/vault-v2/src/ReaperSwapper.sol#141) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._to](lib/vault-v2/src/ReaperSwapper.sol#L141) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L141",
- "id": "3527544cbdfbf1bebedc91e97603769f33a1dc4a2222084fe3f4bd86a36f9ae4",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 9478,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 267
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9427,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._to (lib/vault-v2/src/ReaperSwapper.sol#267) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._to](lib/vault-v2/src/ReaperSwapper.sol#L267) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L267",
- "id": "35548d0c4635a0baa765bad2062c1031d24a1447c98997ef625d4024d4d39032",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__gap",
- "source_mapping": {
- "start": 1316,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 36
- ],
- "starting_column": 5,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ContextUpgradeable",
- "source_mapping": {
- "start": 651,
- "length": 693,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable ContextUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#36) is not in mixedCase\n",
- "markdown": "Variable [ContextUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L36) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L36",
- "id": "36b0d7790b5ec0201a99f98a2f3b1afbd4248739c34889d0a9d08876f3462218",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 8021,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 224
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7925,
- "length": 321,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#224) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L224) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L224",
- "id": "3ec1f062d6f5a182e9f67dda7fd25e897ffe978e3fdbc7561351fbe383d21c95",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__gap",
- "source_mapping": {
- "start": 8694,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 259
- ],
- "starting_column": 5,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlUpgradeable",
- "source_mapping": {
- "start": 1893,
- "length": 6829,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable AccessControlUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#259) is not in mixedCase\n",
- "markdown": "Variable [AccessControlUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L259) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L259",
- "id": "408a5a92ce9ee8bac5e964324c5e93c944b47606ce29c3515b4b54a7b28f372d",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 8279,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 232
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 8252,
- "length": 300,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._from (lib/vault-v2/src/ReaperSwapper.sol#232) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._from](lib/vault-v2/src/ReaperSwapper.sol#L232) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L232",
- "id": "418fec69fa0a926c5aa4783ab996662cd9d15da3993b0c11ddc008e3789bc3f4",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_path",
- "source_mapping": {
- "start": 4199,
- "length": 32,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 113
- ],
- "starting_column": 87,
- "ending_column": 119
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateVeloSwapPath",
- "source_mapping": {
- "start": 4117,
- "length": 261,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateVeloSwapPath(address,address,address,IVeloRouter.Route[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._path (lib/vault-v2/src/ReaperSwapper.sol#113) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._path](lib/vault-v2/src/ReaperSwapper.sol#L113) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L113",
- "id": "42609e99303070d0b460b62a3ec86983b6fd5109aaf634a9026fba1cb7e77c33",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_deadline",
- "source_mapping": {
- "start": 9271,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 260
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9098,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._deadline (lib/vault-v2/src/ReaperSwapper.sol#260) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L260) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L260",
- "id": "48154271b8c895c6b802a31b0ae8d16001c8ba95b0c1bef15c0adb32c0f98c5f",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 6030,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 166
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5958,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._amount (lib/vault-v2/src/ReaperSwapper.sol#166) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._amount](lib/vault-v2/src/ReaperSwapper.sol#L166) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L166",
- "id": "489c7627531111a361ddb5b0fa876959c0b5c227264305d2efbf558425eaa0c7",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "DOMAIN_SEPARATOR",
- "source_mapping": {
- "start": 5327,
- "length": 177,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 162,
- 163,
- 164
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC20",
- "source_mapping": {
- "start": 474,
- "length": 6337,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "DOMAIN_SEPARATOR()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ERC20.DOMAIN_SEPARATOR() (lib/solmate/src/tokens/ERC20.sol#162-164) is not in mixedCase\n",
- "markdown": "Function [ERC20.DOMAIN_SEPARATOR()](lib/solmate/src/tokens/ERC20.sol#L162-L164) is not in mixedCase\n",
- "first_markdown_element": "lib/solmate/src/tokens/ERC20.sol#L162-L164",
- "id": "49160d2232fd1cf66e40eea2eb550f349c00a0d29cfaf4670e104b4832e0d5b0",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 8399,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 236
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 8252,
- "length": 300,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._router (lib/vault-v2/src/ReaperSwapper.sol#236) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._router](lib/vault-v2/src/ReaperSwapper.sol#L236) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L236",
- "id": "51317259fb342989bb3002f86d27d0d8d3800e8013b1105278f724a65f97b3b2",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_token",
- "source_mapping": {
- "start": 12613,
- "length": 14,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 333
- ],
- "starting_column": 44,
- "ending_column": 58
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getChainlinkPriceTargetDigits",
- "source_mapping": {
- "start": 12574,
- "length": 693,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getChainlinkPriceTargetDigits(address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.getChainlinkPriceTargetDigits(address)._token (lib/vault-v2/src/ReaperSwapper.sol#333) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.getChainlinkPriceTargetDigits(address)._token](lib/vault-v2/src/ReaperSwapper.sol#L333) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L333",
- "id": "533159ba7d61d5fe5dfd676710c1ac88cf694c7032cc9afc20ed9b723401ae4e",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenIn",
- "source_mapping": {
- "start": 4145,
- "length": 16,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 113
- ],
- "starting_column": 33,
- "ending_column": 49
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateVeloSwapPath",
- "source_mapping": {
- "start": 4117,
- "length": 261,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateVeloSwapPath(address,address,address,IVeloRouter.Route[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._tokenIn (lib/vault-v2/src/ReaperSwapper.sol#113) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._tokenIn](lib/vault-v2/src/ReaperSwapper.sol#L113) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L113",
- "id": "53551379c42ab3877e8ee97cac181c5347ef7b0683ebe22b81e5bd192559e10c",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 5777,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 157
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5629,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._router (lib/vault-v2/src/ReaperSwapper.sol#157) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._router](lib/vault-v2/src/ReaperSwapper.sol#L157) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L157",
- "id": "5480cdf71bb4a1fc4bad960293c816fab6eae1f7b1db72dc13c46eecdff29942",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 8586,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 242
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._from (lib/vault-v2/src/ReaperSwapper.sol#242) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._from](lib/vault-v2/src/ReaperSwapper.sol#L242) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L242",
- "id": "54eee96f636dcc23d413ad789f8cc37b37b3ceffbb301fcc7c20ef44f9fa8dd1",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__Ownable_init",
- "source_mapping": {
- "start": 1003,
- "length": 95,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 29,
- 30,
- 31
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OwnableUpgradeable",
- "source_mapping": {
- "start": 708,
- "length": 2445,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__Ownable_init()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function OwnableUpgradeable.__Ownable_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#29-31) is not in mixedCase\n",
- "markdown": "Function [OwnableUpgradeable.__Ownable_init()](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L29-L31) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L29-L31",
- "id": "564a84db84ff90549701d9e3401970ecd35bb55e38a0ae2758178a34b03f99e8",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountToTriggerSwap",
- "source_mapping": {
- "start": 6542,
- "length": 31,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 179
- ],
- "starting_column": 40,
- "ending_column": 71
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "setMinAmountToTriggerSwap",
- "source_mapping": {
- "start": 6507,
- "length": 152,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 179,
- 180,
- 181
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "setMinAmountToTriggerSwap(uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter DiscountExercise.setMinAmountToTriggerSwap(uint256)._minAmountToTriggerSwap (src/exercise/DiscountExercise.sol#179) is not in mixedCase\n",
- "markdown": "Parameter [DiscountExercise.setMinAmountToTriggerSwap(uint256)._minAmountToTriggerSwap](src/exercise/DiscountExercise.sol#L179) is not in mixedCase\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L179",
- "id": "581d9756e46299b9236b584619603c7950d2a6ae937b632b19d6013c10199f9b",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "contract",
- "name": "console",
- "source_mapping": {
- "start": 66,
- "length": 66622,
- "filename_relative": "lib/forge-std/src/console.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/forge-std/src/console.sol",
- "filename_short": "lib/forge-std/src/console.sol",
- "is_dependency": true,
- "lines": [
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- 756,
- 757,
- 758,
- 759,
- 760,
- 761,
- 762,
- 763,
- 764,
- 765,
- 766,
- 767,
- 768,
- 769,
- 770,
- 771,
- 772,
- 773,
- 774,
- 775,
- 776,
- 777,
- 778,
- 779,
- 780,
- 781,
- 782,
- 783,
- 784,
- 785,
- 786,
- 787,
- 788,
- 789,
- 790,
- 791,
- 792,
- 793,
- 794,
- 795,
- 796,
- 797,
- 798,
- 799,
- 800,
- 801,
- 802,
- 803,
- 804,
- 805,
- 806,
- 807,
- 808,
- 809,
- 810,
- 811,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 842,
- 843,
- 844,
- 845,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- 882,
- 883,
- 884,
- 885,
- 886,
- 887,
- 888,
- 889,
- 890,
- 891,
- 892,
- 893,
- 894,
- 895,
- 896,
- 897,
- 898,
- 899,
- 900,
- 901,
- 902,
- 903,
- 904,
- 905,
- 906,
- 907,
- 908,
- 909,
- 910,
- 911,
- 912,
- 913,
- 914,
- 915,
- 916,
- 917,
- 918,
- 919,
- 920,
- 921,
- 922,
- 923,
- 924,
- 925,
- 926,
- 927,
- 928,
- 929,
- 930,
- 931,
- 932,
- 933,
- 934,
- 935,
- 936,
- 937,
- 938,
- 939,
- 940,
- 941,
- 942,
- 943,
- 944,
- 945,
- 946,
- 947,
- 948,
- 949,
- 950,
- 951,
- 952,
- 953,
- 954,
- 955,
- 956,
- 957,
- 958,
- 959,
- 960,
- 961,
- 962,
- 963,
- 964,
- 965,
- 966,
- 967,
- 968,
- 969,
- 970,
- 971,
- 972,
- 973,
- 974,
- 975,
- 976,
- 977,
- 978,
- 979,
- 980,
- 981,
- 982,
- 983,
- 984,
- 985,
- 986,
- 987,
- 988,
- 989,
- 990,
- 991,
- 992,
- 993,
- 994,
- 995,
- 996,
- 997,
- 998,
- 999,
- 1000,
- 1001,
- 1002,
- 1003,
- 1004,
- 1005,
- 1006,
- 1007,
- 1008,
- 1009,
- 1010,
- 1011,
- 1012,
- 1013,
- 1014,
- 1015,
- 1016,
- 1017,
- 1018,
- 1019,
- 1020,
- 1021,
- 1022,
- 1023,
- 1024,
- 1025,
- 1026,
- 1027,
- 1028,
- 1029,
- 1030,
- 1031,
- 1032,
- 1033,
- 1034,
- 1035,
- 1036,
- 1037,
- 1038,
- 1039,
- 1040,
- 1041,
- 1042,
- 1043,
- 1044,
- 1045,
- 1046,
- 1047,
- 1048,
- 1049,
- 1050,
- 1051,
- 1052,
- 1053,
- 1054,
- 1055,
- 1056,
- 1057,
- 1058,
- 1059,
- 1060,
- 1061,
- 1062,
- 1063,
- 1064,
- 1065,
- 1066,
- 1067,
- 1068,
- 1069,
- 1070,
- 1071,
- 1072,
- 1073,
- 1074,
- 1075,
- 1076,
- 1077,
- 1078,
- 1079,
- 1080,
- 1081,
- 1082,
- 1083,
- 1084,
- 1085,
- 1086,
- 1087,
- 1088,
- 1089,
- 1090,
- 1091,
- 1092,
- 1093,
- 1094,
- 1095,
- 1096,
- 1097,
- 1098,
- 1099,
- 1100,
- 1101,
- 1102,
- 1103,
- 1104,
- 1105,
- 1106,
- 1107,
- 1108,
- 1109,
- 1110,
- 1111,
- 1112,
- 1113,
- 1114,
- 1115,
- 1116,
- 1117,
- 1118,
- 1119,
- 1120,
- 1121,
- 1122,
- 1123,
- 1124,
- 1125,
- 1126,
- 1127,
- 1128,
- 1129,
- 1130,
- 1131,
- 1132,
- 1133,
- 1134,
- 1135,
- 1136,
- 1137,
- 1138,
- 1139,
- 1140,
- 1141,
- 1142,
- 1143,
- 1144,
- 1145,
- 1146,
- 1147,
- 1148,
- 1149,
- 1150,
- 1151,
- 1152,
- 1153,
- 1154,
- 1155,
- 1156,
- 1157,
- 1158,
- 1159,
- 1160,
- 1161,
- 1162,
- 1163,
- 1164,
- 1165,
- 1166,
- 1167,
- 1168,
- 1169,
- 1170,
- 1171,
- 1172,
- 1173,
- 1174,
- 1175,
- 1176,
- 1177,
- 1178,
- 1179,
- 1180,
- 1181,
- 1182,
- 1183,
- 1184,
- 1185,
- 1186,
- 1187,
- 1188,
- 1189,
- 1190,
- 1191,
- 1192,
- 1193,
- 1194,
- 1195,
- 1196,
- 1197,
- 1198,
- 1199,
- 1200,
- 1201,
- 1202,
- 1203,
- 1204,
- 1205,
- 1206,
- 1207,
- 1208,
- 1209,
- 1210,
- 1211,
- 1212,
- 1213,
- 1214,
- 1215,
- 1216,
- 1217,
- 1218,
- 1219,
- 1220,
- 1221,
- 1222,
- 1223,
- 1224,
- 1225,
- 1226,
- 1227,
- 1228,
- 1229,
- 1230,
- 1231,
- 1232,
- 1233,
- 1234,
- 1235,
- 1236,
- 1237,
- 1238,
- 1239,
- 1240,
- 1241,
- 1242,
- 1243,
- 1244,
- 1245,
- 1246,
- 1247,
- 1248,
- 1249,
- 1250,
- 1251,
- 1252,
- 1253,
- 1254,
- 1255,
- 1256,
- 1257,
- 1258,
- 1259,
- 1260,
- 1261,
- 1262,
- 1263,
- 1264,
- 1265,
- 1266,
- 1267,
- 1268,
- 1269,
- 1270,
- 1271,
- 1272,
- 1273,
- 1274,
- 1275,
- 1276,
- 1277,
- 1278,
- 1279,
- 1280,
- 1281,
- 1282,
- 1283,
- 1284,
- 1285,
- 1286,
- 1287,
- 1288,
- 1289,
- 1290,
- 1291,
- 1292,
- 1293,
- 1294,
- 1295,
- 1296,
- 1297,
- 1298,
- 1299,
- 1300,
- 1301,
- 1302,
- 1303,
- 1304,
- 1305,
- 1306,
- 1307,
- 1308,
- 1309,
- 1310,
- 1311,
- 1312,
- 1313,
- 1314,
- 1315,
- 1316,
- 1317,
- 1318,
- 1319,
- 1320,
- 1321,
- 1322,
- 1323,
- 1324,
- 1325,
- 1326,
- 1327,
- 1328,
- 1329,
- 1330,
- 1331,
- 1332,
- 1333,
- 1334,
- 1335,
- 1336,
- 1337,
- 1338,
- 1339,
- 1340,
- 1341,
- 1342,
- 1343,
- 1344,
- 1345,
- 1346,
- 1347,
- 1348,
- 1349,
- 1350,
- 1351,
- 1352,
- 1353,
- 1354,
- 1355,
- 1356,
- 1357,
- 1358,
- 1359,
- 1360,
- 1361,
- 1362,
- 1363,
- 1364,
- 1365,
- 1366,
- 1367,
- 1368,
- 1369,
- 1370,
- 1371,
- 1372,
- 1373,
- 1374,
- 1375,
- 1376,
- 1377,
- 1378,
- 1379,
- 1380,
- 1381,
- 1382,
- 1383,
- 1384,
- 1385,
- 1386,
- 1387,
- 1388,
- 1389,
- 1390,
- 1391,
- 1392,
- 1393,
- 1394,
- 1395,
- 1396,
- 1397,
- 1398,
- 1399,
- 1400,
- 1401,
- 1402,
- 1403,
- 1404,
- 1405,
- 1406,
- 1407,
- 1408,
- 1409,
- 1410,
- 1411,
- 1412,
- 1413,
- 1414,
- 1415,
- 1416,
- 1417,
- 1418,
- 1419,
- 1420,
- 1421,
- 1422,
- 1423,
- 1424,
- 1425,
- 1426,
- 1427,
- 1428,
- 1429,
- 1430,
- 1431,
- 1432,
- 1433,
- 1434,
- 1435,
- 1436,
- 1437,
- 1438,
- 1439,
- 1440,
- 1441,
- 1442,
- 1443,
- 1444,
- 1445,
- 1446,
- 1447,
- 1448,
- 1449,
- 1450,
- 1451,
- 1452,
- 1453,
- 1454,
- 1455,
- 1456,
- 1457,
- 1458,
- 1459,
- 1460,
- 1461,
- 1462,
- 1463,
- 1464,
- 1465,
- 1466,
- 1467,
- 1468,
- 1469,
- 1470,
- 1471,
- 1472,
- 1473,
- 1474,
- 1475,
- 1476,
- 1477,
- 1478,
- 1479,
- 1480,
- 1481,
- 1482,
- 1483,
- 1484,
- 1485,
- 1486,
- 1487,
- 1488,
- 1489,
- 1490,
- 1491,
- 1492,
- 1493,
- 1494,
- 1495,
- 1496,
- 1497,
- 1498,
- 1499,
- 1500,
- 1501,
- 1502,
- 1503,
- 1504,
- 1505,
- 1506,
- 1507,
- 1508,
- 1509,
- 1510,
- 1511,
- 1512,
- 1513,
- 1514,
- 1515,
- 1516,
- 1517,
- 1518,
- 1519,
- 1520,
- 1521,
- 1522,
- 1523,
- 1524,
- 1525,
- 1526,
- 1527,
- 1528,
- 1529,
- 1530,
- 1531,
- 1532,
- 1533,
- 1534
- ],
- "starting_column": 1,
- "ending_column": 0
- },
- "additional_fields": {
- "target": "contract",
- "convention": "CapWords"
- }
- }
- ],
- "description": "Contract console (lib/forge-std/src/console.sol#4-1534) is not in CapWords\n",
- "markdown": "Contract [console](lib/forge-std/src/console.sol#L4-L1534) is not in CapWords\n",
- "first_markdown_element": "lib/forge-std/src/console.sol#L4-L1534",
- "id": "58c9dacc35a1219332b8b6ce561daac5384e938b9878894ede5d6cbaa444d455",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_feeRecipients",
- "source_mapping": {
- "start": 2183,
- "length": 31,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 57
- ],
- "starting_column": 22,
- "ending_column": 53
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "setFees",
- "source_mapping": {
- "start": 2166,
- "length": 145,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 57,
- 58,
- 59
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "setFees(address[],uint256[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter BaseExercise.setFees(address[],uint256[])._feeRecipients (src/exercise/BaseExercise.sol#57) is not in mixedCase\n",
- "markdown": "Parameter [BaseExercise.setFees(address[],uint256[])._feeRecipients](src/exercise/BaseExercise.sol#L57) is not in mixedCase\n",
- "first_markdown_element": "src/exercise/BaseExercise.sol#L57",
- "id": "5944f924de77c988f31b403664373f2876aff03596234cc58b4afadd8a71d5a9",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_deadline",
- "source_mapping": {
- "start": 5802,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 158
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5629,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._deadline (lib/vault-v2/src/ReaperSwapper.sol#158) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L158) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L158",
- "id": "6071c207bea25fb7f9bb412b5de02629482e66a2117c5fa91626351e29e9b02e",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 7952,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 221
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7925,
- "length": 321,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._from (lib/vault-v2/src/ReaperSwapper.sol#221) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._from](lib/vault-v2/src/ReaperSwapper.sol#L221) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L221",
- "id": "623f5d19356fa7b9bd0ab5df0402fd1e4d7c09639f95e63a0a4209cc8cc8bdfd",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__gap",
- "source_mapping": {
- "start": 3125,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 94
- ],
- "starting_column": 5,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OwnableUpgradeable",
- "source_mapping": {
- "start": 708,
- "length": 2445,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable OwnableUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#94) is not in mixedCase\n",
- "markdown": "Variable [OwnableUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L94) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L94",
- "id": "64595b3b974ce422ded6f4c3e75f4b8f263d80fe654b483274d85ea78d93515d",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__gap",
- "source_mapping": {
- "start": 4729,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 107
- ],
- "starting_column": 5,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UUPSUpgradeable",
- "source_mapping": {
- "start": 928,
- "length": 3829,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable UUPSUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#107) is not in mixedCase\n",
- "markdown": "Variable [UUPSUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L107) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L107",
- "id": "66e89635b3f1a39420c14852bce53cece9d715d261ed362fdfe323326d902681",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "struct",
- "name": "Params__swapUniV3",
- "source_mapping": {
- "start": 925,
- "length": 207,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "structure",
- "convention": "CapWords"
- }
- }
- ],
- "description": "Struct UniV3Mixin.Params__swapUniV3 (lib/vault-v2/src/mixins/UniV3Mixin.sol#28-36) is not in CapWords\n",
- "markdown": "Struct [UniV3Mixin.Params__swapUniV3](lib/vault-v2/src/mixins/UniV3Mixin.sol#L28-L36) is not in CapWords\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L28-L36",
- "id": "686ea0a248be2f332d477f476112aafd31063649571e7caedc18a1f64cf140f3",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 4475,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 124
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateUniV3SwapPath",
- "source_mapping": {
- "start": 4384,
- "length": 297,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateUniV3SwapPath(address,address,address,UniV3SwapData)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._router (lib/vault-v2/src/ReaperSwapper.sol#124) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._router](lib/vault-v2/src/ReaperSwapper.sol#L124) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L124",
- "id": "6afae1f9d7e55e6076a51917ac9f65e8dead79697dd34ab763dc91b9bcb86e89",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenIn",
- "source_mapping": {
- "start": 4422,
- "length": 16,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 122
- ],
- "starting_column": 9,
- "ending_column": 25
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateUniV3SwapPath",
- "source_mapping": {
- "start": 4384,
- "length": 297,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateUniV3SwapPath(address,address,address,UniV3SwapData)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._tokenIn (lib/vault-v2/src/ReaperSwapper.sol#122) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._tokenIn](lib/vault-v2/src/ReaperSwapper.sol#L122) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L122",
- "id": "72977cf6ba4408d54c36fec2d76a45624faa51193a45d346cfd1f506c3276687",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__ERC20_init_unchained",
- "source_mapping": {
- "start": 2267,
- "length": 159,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 59,
- 60,
- 61,
- 62
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC20Upgradeable",
- "source_mapping": {
- "start": 1480,
- "length": 12159,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__ERC20_init_unchained(string,string)"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ERC20Upgradeable.__ERC20_init_unchained(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#59-62) is not in mixedCase\n",
- "markdown": "Function [ERC20Upgradeable.__ERC20_init_unchained(string,string)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L59-L62) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L59-L62",
- "id": "74c629176a16cccc0c00bada69b465bc625751ea0b6a6c34a6948576e5a63d53",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 6876,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 190
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6781,
- "length": 317,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#190) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L190) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L190",
- "id": "7966fe16a7fae3142addfdb2c5631dc7af108f9a0556e7e6e462bc93b4b0fd6a",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__gap",
- "source_mapping": {
- "start": 7500,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 197
- ],
- "starting_column": 5,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC1967UpgradeUpgradeable",
- "source_mapping": {
- "start": 661,
- "length": 6867,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable ERC1967UpgradeUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#197) is not in mixedCase\n",
- "markdown": "Variable [ERC1967UpgradeUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L197) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L197",
- "id": "7a925ee243c35fcbf7d26a13c9439f5f52653d41557544bf25a6dea8e1255a36",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 5680,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 154
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5629,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._to (lib/vault-v2/src/ReaperSwapper.sol#154) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._to](lib/vault-v2/src/ReaperSwapper.sol#L154) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L154",
- "id": "7dd841bf64cae734263aa2ece5e257856fff5689200d9da336af8f149bc065d5",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 763,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20
- ],
- "starting_column": 63,
- "ending_column": 78
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "uniV3SwapPaths",
- "source_mapping": {
- "start": 705,
- "length": 214,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "uniV3SwapPaths(address,address,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter UniV3Mixin.uniV3SwapPaths(address,address,address)._router (lib/vault-v2/src/mixins/UniV3Mixin.sol#20) is not in mixedCase\n",
- "markdown": "Parameter [UniV3Mixin.uniV3SwapPaths(address,address,address)._router](lib/vault-v2/src/mixins/UniV3Mixin.sol#L20) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L20",
- "id": "81b3767aefa146b755f320923f96e311ac717b193aade9ea9209fda84ec19507",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__ERC20_init",
- "source_mapping": {
- "start": 2114,
- "length": 147,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 55,
- 56,
- 57
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC20Upgradeable",
- "source_mapping": {
- "start": 1480,
- "length": 12159,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__ERC20_init(string,string)"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ERC20Upgradeable.__ERC20_init(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#55-57) is not in mixedCase\n",
- "markdown": "Function [ERC20Upgradeable.__ERC20_init(string,string)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L55-L57) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L55-L57",
- "id": "8238dcf62f913fda66edd22ee2b08e732cfae65517418f334b31b357d5fb02c5",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 7996,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 223
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7925,
- "length": 321,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._amount (lib/vault-v2/src/ReaperSwapper.sol#223) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._amount](lib/vault-v2/src/ReaperSwapper.sol#L223) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L223",
- "id": "831ee570df860b35fb7432639868412b8f3a89a1e163b5e0301268d3d015656e",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_aggregator",
- "source_mapping": {
- "start": 4734,
- "length": 19,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 131
- ],
- "starting_column": 52,
- "ending_column": 71
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateTokenAggregator",
- "source_mapping": {
- "start": 4687,
- "length": 415,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateTokenAggregator(address,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateTokenAggregator(address,address,uint256)._aggregator (lib/vault-v2/src/ReaperSwapper.sol#131) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateTokenAggregator(address,address,uint256)._aggregator](lib/vault-v2/src/ReaperSwapper.sol#L131) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L131",
- "id": "840fd0afa4bae92ba91f2c94e5ff241d7edf4411fba4ca97efa57208909748a1",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__ERC165_init_unchained",
- "source_mapping": {
- "start": 926,
- "length": 68,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 27,
- 28
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC165Upgradeable",
- "source_mapping": {
- "start": 783,
- "length": 736,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__ERC165_init_unchained()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ERC165Upgradeable.__ERC165_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#27-28) is not in mixedCase\n",
- "markdown": "Function [ERC165Upgradeable.__ERC165_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L27-L28) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L27-L28",
- "id": "85d4e6d503145e70d4f27b51c03c2aecc7efa120329a4cf27b34d33cd9a2c942",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__Context_init_unchained",
- "source_mapping": {
- "start": 776,
- "length": 69,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ContextUpgradeable",
- "source_mapping": {
- "start": 651,
- "length": 693,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__Context_init_unchained()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ContextUpgradeable.__Context_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#21-22) is not in mixedCase\n",
- "markdown": "Function [ContextUpgradeable.__Context_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L21-L22) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L21-L22",
- "id": "8629c89abc9e568d22212182eb038287fc4f676ff34add41294173d644b25bcb",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_deadline",
- "source_mapping": {
- "start": 5281,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 145
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline (lib/vault-v2/src/ReaperSwapper.sol#145) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L145) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L145",
- "id": "878d7b0eca406e6625010c6a919e75fb6d1f56a2908909128dca18ae1aaecf5c",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_swapProps",
- "source_mapping": {
- "start": 1131,
- "length": 27,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 43
- ],
- "starting_column": 30,
- "ending_column": 57
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "configSwapProps",
- "source_mapping": {
- "start": 1106,
- "length": 116,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 43,
- 44,
- 45
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "SwapHelper",
- "source_mapping": {
- "start": 514,
- "length": 3269,
- "filename_relative": "src/helpers/SwapHelper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/helpers/SwapHelper.sol",
- "filename_short": "src/helpers/SwapHelper.sol",
- "is_dependency": false,
- "lines": [
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "configSwapProps(SwapProps)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter SwapHelper.configSwapProps(SwapProps)._swapProps (src/helpers/SwapHelper.sol#43) is not in mixedCase\n",
- "markdown": "Parameter [SwapHelper.configSwapProps(SwapProps)._swapProps](src/helpers/SwapHelper.sol#L43) is not in mixedCase\n",
- "first_markdown_element": "src/helpers/SwapHelper.sol#L43",
- "id": "898750aa30b4631541b715c67809ca54c02372e4e0ccd20753b470f5b41b4782",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_poolID",
- "source_mapping": {
- "start": 3947,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 105
- ],
- "starting_column": 87,
- "ending_column": 102
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateBalSwapPoolID",
- "source_mapping": {
- "start": 3865,
- "length": 246,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateBalSwapPoolID(address,address,address,bytes32)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._poolID (lib/vault-v2/src/ReaperSwapper.sol#105) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._poolID](lib/vault-v2/src/ReaperSwapper.sol#L105) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L105",
- "id": "89a0bb2c6892a624dc788cb6e8e64769ea25541c09632a7ea8008ed5bdc9a7ae",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 5136,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 140
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._from (lib/vault-v2/src/ReaperSwapper.sol#140) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._from](lib/vault-v2/src/ReaperSwapper.sol#L140) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L140",
- "id": "8b2e8470f4f721b3150a1c59a12f20d495a62229f08f57ad6a1241fb1e3e63bc",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_vault",
- "source_mapping": {
- "start": 3931,
- "length": 14,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 105
- ],
- "starting_column": 71,
- "ending_column": 85
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateBalSwapPoolID",
- "source_mapping": {
- "start": 3865,
- "length": 246,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateBalSwapPoolID(address,address,address,bytes32)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._vault (lib/vault-v2/src/ReaperSwapper.sol#105) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._vault](lib/vault-v2/src/ReaperSwapper.sol#L105) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L105",
- "id": "8f302417a05d05dface61ffead3912df0c2e77cae9168156e4852a782f626cc8",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__UUPSUpgradeable_init_unchained",
- "source_mapping": {
- "start": 1115,
- "length": 77,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UUPSUpgradeable",
- "source_mapping": {
- "start": 928,
- "length": 3829,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__UUPSUpgradeable_init_unchained()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function UUPSUpgradeable.__UUPSUpgradeable_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#26-27) is not in mixedCase\n",
- "markdown": "Function [UUPSUpgradeable.__UUPSUpgradeable_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L26-L27) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L26-L27",
- "id": "8ff7b5e08e6880768da974c4a296eba4ffa484881ed81786ba37c7da4749321d",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__gap",
- "source_mapping": {
- "start": 13611,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 400
- ],
- "starting_column": 5,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC20Upgradeable",
- "source_mapping": {
- "start": 1480,
- "length": 12159,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable ERC20Upgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#400) is not in mixedCase\n",
- "markdown": "Variable [ERC20Upgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L400) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L400",
- "id": "95b4f7519d8168eaf429605544f5939d63826ecdfb9fab9329b6802cbd21db77",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 5986,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 164
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5958,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._from (lib/vault-v2/src/ReaperSwapper.sol#164) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._from](lib/vault-v2/src/ReaperSwapper.sol#L164) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L164",
- "id": "965c50bc3502579539b688717ecbda0b6b92a00dcefa592b05ba22d7d6f5dc7a",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 7174,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 200
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 7104,
- "length": 296,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._amount (lib/vault-v2/src/ReaperSwapper.sol#200) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._amount](lib/vault-v2/src/ReaperSwapper.sol#L200) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L200",
- "id": "96acd18fdb2f87cce682dd1aeb785807b87ade0805721541764b40e73f657d86",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 9575,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 270
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9427,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._router (lib/vault-v2/src/ReaperSwapper.sol#270) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._router](lib/vault-v2/src/ReaperSwapper.sol#L270) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L270",
- "id": "97ed856a66a6a89065949ce6d4ad5806ed079684926be9350c3dba02a3a1e5ff",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "DOMAIN_SEPARATOR",
- "source_mapping": {
- "start": 2189,
- "length": 60,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "is_dependency": true,
- "lines": [
- 59
- ],
- "starting_column": 5,
- "ending_column": 65
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "IERC20Permit",
- "source_mapping": {
- "start": 620,
- "length": 1631,
- "filename_relative": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "filename_short": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "DOMAIN_SEPARATOR()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function IERC20Permit.DOMAIN_SEPARATOR() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#59) is not in mixedCase\n",
- "markdown": "Function [IERC20Permit.DOMAIN_SEPARATOR()](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L59) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L59",
- "id": "9a77c79a6cf40e2f151723e49ba63d30100a56d0f72688e58cdf4a550a6ff843",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_guardian",
- "source_mapping": {
- "start": 3089,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 82
- ],
- "starting_column": 56,
- "ending_column": 73
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "initialize",
- "source_mapping": {
- "start": 3038,
- "length": 562,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "initialize(address[],address,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.initialize(address[],address,address)._guardian (lib/vault-v2/src/ReaperSwapper.sol#82) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.initialize(address[],address,address)._guardian](lib/vault-v2/src/ReaperSwapper.sol#L82) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L82",
- "id": "9efc132e350756a6688fb06dfbdfdae938d3f187fef09bcfb67ada2c12c55401",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 4182,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 113
- ],
- "starting_column": 70,
- "ending_column": 85
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateVeloSwapPath",
- "source_mapping": {
- "start": 4117,
- "length": 261,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateVeloSwapPath(address,address,address,IVeloRouter.Route[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._router (lib/vault-v2/src/ReaperSwapper.sol#113) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._router](lib/vault-v2/src/ReaperSwapper.sol#L113) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L113",
- "id": "a06f43ce8e70ce834616ed15245c980a2b8ec50e858262bb670d47c66306e2ea",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__AccessControl_init",
- "source_mapping": {
- "start": 2025,
- "length": 65,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 51,
- 52
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlUpgradeable",
- "source_mapping": {
- "start": 1893,
- "length": 6829,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__AccessControl_init()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function AccessControlUpgradeable.__AccessControl_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#51-52) is not in mixedCase\n",
- "markdown": "Function [AccessControlUpgradeable.__AccessControl_init()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L51-L52) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L51-L52",
- "id": "a333fa38b5f96027543bfa2131aac6765059644ab6c7dae2f8d357b5fbaa2f2b",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 6807,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 187
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6781,
- "length": 317,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._from (lib/vault-v2/src/ReaperSwapper.sol#187) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._from](lib/vault-v2/src/ReaperSwapper.sol#L187) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L187",
- "id": "a7cafc58416d57ab9a4fcb99a3a7f30607a640b40bcf1d16a52915f7849094bc",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 6315,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 175
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._to (lib/vault-v2/src/ReaperSwapper.sol#175) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._to](lib/vault-v2/src/ReaperSwapper.sol#L175) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L175",
- "id": "ab2600b9834d875833f35b5332d32ef81c0bb2ac24c935e3830ff416c17fb322",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_isExercise",
- "source_mapping": {
- "start": 5123,
- "length": 16,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 119
- ],
- "starting_column": 52,
- "ending_column": 68
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "setExerciseContract",
- "source_mapping": {
- "start": 5076,
- "length": 200,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "setExerciseContract(address,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter OptionsToken.setExerciseContract(address,bool)._isExercise (src/OptionsToken.sol#119) is not in mixedCase\n",
- "markdown": "Parameter [OptionsToken.setExerciseContract(address,bool)._isExercise](src/OptionsToken.sol#L119) is not in mixedCase\n",
- "first_markdown_element": "src/OptionsToken.sol#L119",
- "id": "abd2279ff0a0f0ddae64db4fff77259f7bae0530f6d0414a9c41d6ac351ae4c7",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_timeout",
- "source_mapping": {
- "start": 4755,
- "length": 16,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 131
- ],
- "starting_column": 73,
- "ending_column": 89
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateTokenAggregator",
- "source_mapping": {
- "start": 4687,
- "length": 415,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateTokenAggregator(address,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateTokenAggregator(address,address,uint256)._timeout (lib/vault-v2/src/ReaperSwapper.sol#131) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateTokenAggregator(address,address,uint256)._timeout](lib/vault-v2/src/ReaperSwapper.sol#L131) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L131",
- "id": "adab57ba054783590c54847af448ea7811b9803f2da1801c367d97d4deb0bc85",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "INITIAL_DOMAIN_SEPARATOR",
- "source_mapping": {
- "start": 1693,
- "length": 51,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 43
- ],
- "starting_column": 5,
- "ending_column": 56
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC20",
- "source_mapping": {
- "start": 474,
- "length": 6337,
- "filename_relative": "lib/solmate/src/tokens/ERC20.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/tokens/ERC20.sol",
- "filename_short": "lib/solmate/src/tokens/ERC20.sol",
- "is_dependency": true,
- "lines": [
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable ERC20.INITIAL_DOMAIN_SEPARATOR (lib/solmate/src/tokens/ERC20.sol#43) is not in mixedCase\n",
- "markdown": "Variable [ERC20.INITIAL_DOMAIN_SEPARATOR](lib/solmate/src/tokens/ERC20.sol#L43) is not in mixedCase\n",
- "first_markdown_element": "lib/solmate/src/tokens/ERC20.sol#L43",
- "id": "ae4180282f395232843a4e6b84163b4ee953cbbcb818ea7075ed05f2dcf646c6",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 5701,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 155
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5629,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._amount (lib/vault-v2/src/ReaperSwapper.sol#155) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._amount](lib/vault-v2/src/ReaperSwapper.sol#L155) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L155",
- "id": "af59693c738df45d04682c8e690c3cb70b1f7ae4cd02b04ef88723c8512974ff",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 7502,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 211
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#211) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L211) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L211",
- "id": "b0d802f1835a6a50141a3c3cad24ceedce32ed7aafecd16fb3799ad01e781111",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 9126,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 255
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9098,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._from (lib/vault-v2/src/ReaperSwapper.sol#255) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._from](lib/vault-v2/src/ReaperSwapper.sol#L255) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L255",
- "id": "b466af7b150b5c595dbea4172eb5b58058eac1319629786026c6c34991a529b8",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenA",
- "source_mapping": {
- "start": 729,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20
- ],
- "starting_column": 29,
- "ending_column": 44
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "uniV3SwapPaths",
- "source_mapping": {
- "start": 705,
- "length": 214,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniV3Mixin",
- "source_mapping": {
- "start": 269,
- "length": 4771,
- "filename_relative": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "filename_short": "lib/vault-v2/src/mixins/UniV3Mixin.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "uniV3SwapPaths(address,address,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter UniV3Mixin.uniV3SwapPaths(address,address,address)._tokenA (lib/vault-v2/src/mixins/UniV3Mixin.sol#20) is not in mixedCase\n",
- "markdown": "Parameter [UniV3Mixin.uniV3SwapPaths(address,address,address)._tokenA](lib/vault-v2/src/mixins/UniV3Mixin.sol#L20) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/mixins/UniV3Mixin.sol#L20",
- "id": "b516ba65e9d50df8c481a3d485f057d04276e12596a303c1c3b03bcedea2fa4a",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 7153,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 199
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 7104,
- "length": 296,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._to (lib/vault-v2/src/ReaperSwapper.sol#199) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._to](lib/vault-v2/src/ReaperSwapper.sol#L199) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L199",
- "id": "b6c8ae681b26b155c022f33fbf1b061e5f28765aae067bd89844326397fc87a2",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__gap",
- "source_mapping": {
- "start": 3008,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 76
- ],
- "starting_column": 5,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlEnumerableUpgradeable",
- "source_mapping": {
- "start": 431,
- "length": 2605,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable AccessControlEnumerableUpgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#76) is not in mixedCase\n",
- "markdown": "Variable [AccessControlEnumerableUpgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L76) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L76",
- "id": "bbb16c0dd495dfcbe2efc75d79bdea18fad2424d763b5456917a4f9ba68e140c",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__gap",
- "source_mapping": {
- "start": 1491,
- "length": 25,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 41
- ],
- "starting_column": 5,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC165Upgradeable",
- "source_mapping": {
- "start": 783,
- "length": 736,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable ERC165Upgradeable.__gap (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#41) is not in mixedCase\n",
- "markdown": "Variable [ERC165Upgradeable.__gap](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L41) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L41",
- "id": "bdc2d8e808ddb749222cd3ed859af1782e2e982c72c8164d541233f50dec05af",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__Ownable_init_unchained",
- "source_mapping": {
- "start": 1104,
- "length": 111,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 33,
- 34,
- 35
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OwnableUpgradeable",
- "source_mapping": {
- "start": 708,
- "length": 2445,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__Ownable_init_unchained()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function OwnableUpgradeable.__Ownable_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#33-35) is not in mixedCase\n",
- "markdown": "Function [OwnableUpgradeable.__Ownable_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L33-L35) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L33-L35",
- "id": "be1436ad6e7661ea17048b9b8432553bbd982a53256f0d44f0dddb582fee6a05",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_deadline",
- "source_mapping": {
- "start": 6436,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 179
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline (lib/vault-v2/src/ReaperSwapper.sol#179) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L179) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L179",
- "id": "be279e16a979449d615e01c5f1b9240a112c2c4181f5d3ab033a2b58fa8bb14f",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 7456,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 209
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._to (lib/vault-v2/src/ReaperSwapper.sol#209) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._to](lib/vault-v2/src/ReaperSwapper.sol#L209) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L209",
- "id": "bfd676c8349dabb5b01a6c154d45b647f52d93cc00f979b6c8878784a7b7eb77",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "__self",
- "source_mapping": {
- "start": 1289,
- "length": 48,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 29
- ],
- "starting_column": 5,
- "ending_column": 53
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UUPSUpgradeable",
- "source_mapping": {
- "start": 928,
- "length": 3829,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- },
- "additional_fields": {
- "target": "variable",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Variable UUPSUpgradeable.__self (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#29) is not in mixedCase\n",
- "markdown": "Variable [UUPSUpgradeable.__self](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L29) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L29",
- "id": "bfe49cc9b28397f73932ef963ff532a1f0ce51ddd0b26dae025d661602049864",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 9499,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 268
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9427,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._amount (lib/vault-v2/src/ReaperSwapper.sol#268) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address)._amount](lib/vault-v2/src/ReaperSwapper.sol#L268) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L268",
- "id": "c189e395c786c3b0719350511e8880bfffe15db6eea553df77bff74bf366946e",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__ERC1967Upgrade_init",
- "source_mapping": {
- "start": 749,
- "length": 66,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 22,
- 23
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC1967UpgradeUpgradeable",
- "source_mapping": {
- "start": 661,
- "length": 6867,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__ERC1967Upgrade_init()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#22-23) is not in mixedCase\n",
- "markdown": "Function [ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L22-L23) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L22-L23",
- "id": "c342a80969d569f908a2cc5e14462dacdf5979e90597c95494a7518ab22ac361",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 7477,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 210
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount (lib/vault-v2/src/ReaperSwapper.sol#210) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount](lib/vault-v2/src/ReaperSwapper.sol#L210) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L210",
- "id": "c36595904f67f151274482257e034c6d4e99f7a12addf42daff19757016f42ae",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__AccessControlEnumerable_init_unchained",
- "source_mapping": {
- "start": 651,
- "length": 85,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 18,
- 19
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlEnumerableUpgradeable",
- "source_mapping": {
- "start": 431,
- "length": 2605,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__AccessControlEnumerable_init_unchained()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#18-19) is not in mixedCase\n",
- "markdown": "Function [AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L18-L19) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L18-L19",
- "id": "c5433a1d1949676dc711bcf3160f2439533f345ad44396e69fa216e8565cad1e",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_feeBPS",
- "source_mapping": {
- "start": 2216,
- "length": 24,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 57
- ],
- "starting_column": 55,
- "ending_column": 79
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "setFees",
- "source_mapping": {
- "start": 2166,
- "length": 145,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 57,
- 58,
- 59
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "BaseExercise",
- "source_mapping": {
- "start": 432,
- "length": 3936,
- "filename_relative": "src/exercise/BaseExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/BaseExercise.sol",
- "filename_short": "src/exercise/BaseExercise.sol",
- "is_dependency": false,
- "lines": [
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "setFees(address[],uint256[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter BaseExercise.setFees(address[],uint256[])._feeBPS (src/exercise/BaseExercise.sol#57) is not in mixedCase\n",
- "markdown": "Parameter [BaseExercise.setFees(address[],uint256[])._feeBPS](src/exercise/BaseExercise.sol#L57) is not in mixedCase\n",
- "first_markdown_element": "src/exercise/BaseExercise.sol#L57",
- "id": "c5acfac490821733b96f3b7cb66bd64210e4d6f82651bab766aab5209e8c5324",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "UNSAFE_swapExactTokensForTokens",
- "source_mapping": {
- "start": 12674,
- "length": 196,
- "filename_relative": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "is_dependency": true,
- "lines": [
- 294,
- 295,
- 296,
- 297,
- 298,
- 299
- ],
- "starting_column": 5,
- "ending_column": 43
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "IVeloRouter",
- "source_mapping": {
- "start": 227,
- "length": 20282,
- "filename_relative": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IVeloRouter.sol",
- "is_dependency": true,
- "lines": [
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "UNSAFE_swapExactTokensForTokens(uint256[],IVeloRouter.Route[],address,uint256)"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function IVeloRouter.UNSAFE_swapExactTokensForTokens(uint256[],IVeloRouter.Route[],address,uint256) (lib/vault-v2/src/interfaces/IVeloRouter.sol#294-299) is not in mixedCase\n",
- "markdown": "Function [IVeloRouter.UNSAFE_swapExactTokensForTokens(uint256[],IVeloRouter.Route[],address,uint256)](lib/vault-v2/src/interfaces/IVeloRouter.sol#L294-L299) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/interfaces/IVeloRouter.sol#L294-L299",
- "id": "c84ed24d6caec5fb3fc2d28fc3e2c44242050d098a6626fd7b69c847d5d534a6",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 7433,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 208
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._from (lib/vault-v2/src/ReaperSwapper.sol#208) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._from](lib/vault-v2/src/ReaperSwapper.sol#L208) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L208",
- "id": "ca06b4f3961de5f5ca9c9c964e4b25c5f6fb7d6cf7cc27fe3001bbb89c74675f",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__UUPSUpgradeable_init",
- "source_mapping": {
- "start": 1042,
- "length": 67,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 23,
- 24
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UUPSUpgradeable",
- "source_mapping": {
- "start": 928,
- "length": 3829,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__UUPSUpgradeable_init()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function UUPSUpgradeable.__UUPSUpgradeable_init() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#23-24) is not in mixedCase\n",
- "markdown": "Function [UUPSUpgradeable.__UUPSUpgradeable_init()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L23-L24) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L23-L24",
- "id": "cb76c4a025b81b1d34120a39f72a25e8426de1c2f55fbd29d6a5eb8442335219",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 8302,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 233
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 8252,
- "length": 300,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._to (lib/vault-v2/src/ReaperSwapper.sol#233) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._to](lib/vault-v2/src/ReaperSwapper.sol#L233) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L233",
- "id": "cc2c2d13c5fc96bbb8c8f183cd598ce40909b38213e3148d1f4410feedcdfbf9",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_i",
- "source_mapping": {
- "start": 302,
- "length": 10,
- "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "is_dependency": true,
- "lines": [
- 11
- ],
- "starting_column": 27,
- "ending_column": 37
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "uncheckedInc",
- "source_mapping": {
- "start": 280,
- "length": 130,
- "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "is_dependency": true,
- "lines": [
- 11,
- 12,
- 13,
- 14,
- 15
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperMathUtils",
- "source_mapping": {
- "start": 63,
- "length": 349,
- "filename_relative": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "filename_short": "lib/vault-v2/src/libraries/ReaperMathUtils.sol",
- "is_dependency": true,
- "lines": [
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "uncheckedInc(uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperMathUtils.uncheckedInc(uint256)._i (lib/vault-v2/src/libraries/ReaperMathUtils.sol#11) is not in mixedCase\n",
- "markdown": "Parameter [ReaperMathUtils.uncheckedInc(uint256)._i](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L11) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/ReaperMathUtils.sol#L11",
- "id": "cd8dd23a87dae4ac1b0ac22762f0d6ca9a11107161eb11ecc8559a52962999da",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 6830,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 188
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6781,
- "length": 317,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._to (lib/vault-v2/src/ReaperSwapper.sol#188) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._to](lib/vault-v2/src/ReaperSwapper.sol#L188) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L188",
- "id": "ce9e771782f69e8d3da763e8d0e5d55510b3673e5af35d5030cd3e1f607f698e",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_deadline",
- "source_mapping": {
- "start": 6951,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 192
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6781,
- "length": 317,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._deadline (lib/vault-v2/src/ReaperSwapper.sol#192) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._deadline](lib/vault-v2/src/ReaperSwapper.sol#L192) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L192",
- "id": "d096162e89d285c6f6eacc550d68dd7057cd03ed9fdd2fbee53da1dacff60853",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 8348,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 235
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 8252,
- "length": 300,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#235) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L235) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L235",
- "id": "d400a010cfc54a36c2bbabf0d7fedd1ab9a7387ba1f4017fe16eac3e6d19092e",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_vault",
- "source_mapping": {
- "start": 7250,
- "length": 14,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 202
- ],
- "starting_column": 9,
- "ending_column": 23
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 7104,
- "length": 296,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._vault (lib/vault-v2/src/ReaperSwapper.sol#202) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._vault](lib/vault-v2/src/ReaperSwapper.sol#L202) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L202",
- "id": "d4fceacb95f86ee83b4bf85da0582077c266098f97e1ce7dbaec2b59cdcef204",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "WETH",
- "source_mapping": {
- "start": 153,
- "length": 48,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "is_dependency": true,
- "lines": [
- 7
- ],
- "starting_column": 5,
- "ending_column": 53
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "IUniswapV2Router01",
- "source_mapping": {
- "start": 61,
- "length": 3950,
- "filename_relative": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "filename_short": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol",
- "is_dependency": true,
- "lines": [
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "WETH()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function IUniswapV2Router01.WETH() (lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#7) is not in mixedCase\n",
- "markdown": "Function [IUniswapV2Router01.WETH()](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L7) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L7",
- "id": "d51441d319d7710ff998d12e83899a9d644921d950f639a7b86fcc4ddf61e63a",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 8706,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 246
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._router (lib/vault-v2/src/ReaperSwapper.sol#246) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._router](lib/vault-v2/src/ReaperSwapper.sol#L246) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L246",
- "id": "d6dabfed2329ec05b9b11ef9c0aa939f5f9548e1243ac69e7908749887d95f3b",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 5726,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 156
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5629,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#156) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L156) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L156",
- "id": "dcc6a654dccf15314a4bd6d18240796b3d5a90ad0965512db30fb29fc2d69f4f",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 6055,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 167
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5958,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#167) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L167) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L167",
- "id": "deeadcde9d8d2a903c85c3e2c9ba0e8b3609ceddae1916e3766e5c84b22c466a",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 5205,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 143
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5108,
- "length": 515,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#143) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L143) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L143",
- "id": "e10ef44a86a407b93bfe33cf20782ef285fd9eb4af3c33bc2e14261b516c0038",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_superAdmin",
- "source_mapping": {
- "start": 3108,
- "length": 19,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 82
- ],
- "starting_column": 75,
- "ending_column": 94
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "initialize",
- "source_mapping": {
- "start": 3038,
- "length": 562,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "initialize(address[],address,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.initialize(address[],address,address)._superAdmin (lib/vault-v2/src/ReaperSwapper.sol#82) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.initialize(address[],address,address)._superAdmin](lib/vault-v2/src/ReaperSwapper.sol#L82) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L82",
- "id": "e1f9cb8188c7d2a47d6d3f5f2abd12779ea61cb7f5df57014d8b381dd18519f4",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 9170,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 257
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 9098,
- "length": 323,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._amount (lib/vault-v2/src/ReaperSwapper.sol#257) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256)._amount](lib/vault-v2/src/ReaperSwapper.sol#L257) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L257",
- "id": "e372392e376217b031464798d9d6768c25b19113dd6cb6674fa902715063982f",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 6292,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 174
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._from (lib/vault-v2/src/ReaperSwapper.sol#174) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._from](lib/vault-v2/src/ReaperSwapper.sol#L174) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L174",
- "id": "e41b000f65857a61219c2dc0b5d0f4bd15cf77d9dc70e29235aac4739efc28ee",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_address",
- "source_mapping": {
- "start": 5105,
- "length": 16,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 119
- ],
- "starting_column": 34,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "setExerciseContract",
- "source_mapping": {
- "start": 5076,
- "length": 200,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 119,
- 120,
- 121,
- 122
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "OptionsToken",
- "source_mapping": {
- "start": 691,
- "length": 7138,
- "filename_relative": "src/OptionsToken.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/OptionsToken.sol",
- "filename_short": "src/OptionsToken.sol",
- "is_dependency": false,
- "lines": [
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "setExerciseContract(address,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter OptionsToken.setExerciseContract(address,bool)._address (src/OptionsToken.sol#119) is not in mixedCase\n",
- "markdown": "Parameter [OptionsToken.setExerciseContract(address,bool)._address](src/OptionsToken.sol#L119) is not in mixedCase\n",
- "first_markdown_element": "src/OptionsToken.sol#L119",
- "id": "e4c0233eb5b643def437c9c1f7c6853aa2f1fea782bfadf846c2fcb8c3819ad4",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenIn",
- "source_mapping": {
- "start": 3894,
- "length": 16,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 105
- ],
- "starting_column": 34,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateBalSwapPoolID",
- "source_mapping": {
- "start": 3865,
- "length": 246,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateBalSwapPoolID(address,address,address,bytes32)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._tokenIn (lib/vault-v2/src/ReaperSwapper.sol#105) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._tokenIn](lib/vault-v2/src/ReaperSwapper.sol#L105) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L105",
- "id": "e4c97d884fbc8ebc6174dbb08f7148ca0d5d354bbd7673b33287963362a75fac",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 8072,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 225
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7925,
- "length": 321,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._router (lib/vault-v2/src/ReaperSwapper.sol#225) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._router](lib/vault-v2/src/ReaperSwapper.sol#L225) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L225",
- "id": "e7849af7604ed52e3aba5cc48333f0e4e71b99a0c0eead2614dad5ee6a834648",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 6851,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 189
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6781,
- "length": 317,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._amount (lib/vault-v2/src/ReaperSwapper.sol#189) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._amount](lib/vault-v2/src/ReaperSwapper.sol#L189) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L189",
- "id": "ebf15d601b456582fb3fb1f26bfd7094936b95bf6bab66e069b0c047b066a470",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__Context_init",
- "source_mapping": {
- "start": 711,
- "length": 59,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 18,
- 19
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ContextUpgradeable",
- "source_mapping": {
- "start": 651,
- "length": 693,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__Context_init()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ContextUpgradeable.__Context_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#18-19) is not in mixedCase\n",
- "markdown": "Function [ContextUpgradeable.__Context_init()](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L18-L19) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L18-L19",
- "id": "ec47067e22967ab37ddb79c5eae4c225b0c9f1e4e15f1452db70b0a6f86103e0",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_from",
- "source_mapping": {
- "start": 7130,
- "length": 13,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 198
- ],
- "starting_column": 9,
- "ending_column": 22
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 7104,
- "length": 296,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._from (lib/vault-v2/src/ReaperSwapper.sol#198) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address)._from](lib/vault-v2/src/ReaperSwapper.sol#L198) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L198",
- "id": "ee09748ad580f1e17ba44ec7063a9e46e48e09f119e406c49bc6f27fbc52333c",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__AccessControlEnumerable_init",
- "source_mapping": {
- "start": 570,
- "length": 75,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 15,
- 16
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "AccessControlEnumerableUpgradeable",
- "source_mapping": {
- "start": 431,
- "length": 2605,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol",
- "is_dependency": true,
- "lines": [
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__AccessControlEnumerable_init()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#15-16) is not in mixedCase\n",
- "markdown": "Function [AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L15-L16) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L15-L16",
- "id": "ef5d0800c6abeec9cf95ba22a2b5356b466e7266ac453d3ed2d8d6715e2a485d",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenOut",
- "source_mapping": {
- "start": 4448,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 123
- ],
- "starting_column": 9,
- "ending_column": 26
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateUniV3SwapPath",
- "source_mapping": {
- "start": 4384,
- "length": 297,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateUniV3SwapPath(address,address,address,UniV3SwapData)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._tokenOut (lib/vault-v2/src/ReaperSwapper.sol#123) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateUniV3SwapPath(address,address,address,UniV3SwapData)._tokenOut](lib/vault-v2/src/ReaperSwapper.sol#L123) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L123",
- "id": "ef7fda16f5ed14577f83309fd8ecabd89b0ebc40bb57a21ff7f6bb30ca604ded",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 7975,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 222
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7925,
- "length": 321,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._to (lib/vault-v2/src/ReaperSwapper.sol#222) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256)._to](lib/vault-v2/src/ReaperSwapper.sol#L222) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L222",
- "id": "ef99c641c2dfab7b1d3b3387d2ee29b8c2fe143b6573293aa82a96d9e24c4ed8",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "__ERC165_init",
- "source_mapping": {
- "start": 862,
- "length": 58,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 24,
- 25
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ERC165Upgradeable",
- "source_mapping": {
- "start": 783,
- "length": 736,
- "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
- "is_dependency": true,
- "lines": [
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "__ERC165_init()"
- },
- "additional_fields": {
- "target": "function",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Function ERC165Upgradeable.__ERC165_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#24-25) is not in mixedCase\n",
- "markdown": "Function [ERC165Upgradeable.__ERC165_init()](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L24-L25) is not in mixedCase\n",
- "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L24-L25",
- "id": "f226b70c0c428d938e421293c43b68d973d744168b94b568e0deb7b189c26f50",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tryCatchActive",
- "source_mapping": {
- "start": 7605,
- "length": 20,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 214
- ],
- "starting_column": 9,
- "ending_column": 29
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapVelo",
- "source_mapping": {
- "start": 7406,
- "length": 513,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive (lib/vault-v2/src/ReaperSwapper.sol#214) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapVelo(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive](lib/vault-v2/src/ReaperSwapper.sol#L214) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L214",
- "id": "f3b862d7b6a4c0d902c5505fa61fe589c65b1853823797fa41ecacdd2d9ea250",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_to",
- "source_mapping": {
- "start": 8609,
- "length": 11,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 243
- ],
- "starting_column": 9,
- "ending_column": 20
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._to (lib/vault-v2/src/ReaperSwapper.sol#243) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._to](lib/vault-v2/src/ReaperSwapper.sol#L243) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L243",
- "id": "f5ac32f324cb58d5086f8317679267d629598a093f9744b805224745cd6a4a98",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenOut",
- "source_mapping": {
- "start": 3912,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 105
- ],
- "starting_column": 52,
- "ending_column": 69
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateBalSwapPoolID",
- "source_mapping": {
- "start": 3865,
- "length": 246,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateBalSwapPoolID(address,address,address,bytes32)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._tokenOut (lib/vault-v2/src/ReaperSwapper.sol#105) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateBalSwapPoolID(address,address,address,bytes32)._tokenOut](lib/vault-v2/src/ReaperSwapper.sol#L105) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L105",
- "id": "f6df1545fe7e00b5fd2a959284fe6088686751e8c7cc23f57a5cd452cf1d1e58",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_minAmountOutData",
- "source_mapping": {
- "start": 6361,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 177
- ],
- "starting_column": 9,
- "ending_column": 50
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData (lib/vault-v2/src/ReaperSwapper.sol#177) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._minAmountOutData](lib/vault-v2/src/ReaperSwapper.sol#L177) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L177",
- "id": "f6f24fbb241e4df38de4d7a6812d9589f5ef7dfbf4d14334b09a01a8f35c5d51",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_vault",
- "source_mapping": {
- "start": 6412,
- "length": 14,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 178
- ],
- "starting_column": 9,
- "ending_column": 23
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._vault (lib/vault-v2/src/ReaperSwapper.sol#178) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._vault](lib/vault-v2/src/ReaperSwapper.sol#L178) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L178",
- "id": "f95934574f1bf834e84810d59234ad1a34504a4e9db16b4ca5622230997341d5",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_strategists",
- "source_mapping": {
- "start": 3058,
- "length": 29,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 82
- ],
- "starting_column": 25,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "initialize",
- "source_mapping": {
- "start": 3038,
- "length": 562,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "initialize(address[],address,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.initialize(address[],address,address)._strategists (lib/vault-v2/src/ReaperSwapper.sol#82) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.initialize(address[],address,address)._strategists](lib/vault-v2/src/ReaperSwapper.sol#L82) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L82",
- "id": "f96d266d8b1835f94a34c648dc6724dfc7f543cfa8fa4a7e942b121681eab748",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_router",
- "source_mapping": {
- "start": 6106,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 168
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV2",
- "source_mapping": {
- "start": 5958,
- "length": 302,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV2(address,address,uint256,MinAmountOutData,address)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._router (lib/vault-v2/src/ReaperSwapper.sol#168) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV2(address,address,uint256,MinAmountOutData,address)._router](lib/vault-v2/src/ReaperSwapper.sol#L168) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L168",
- "id": "fa6dcd2f29fbd832c383ff7357c474e98aba7ad3fe37aa86aa8c26cf32c98cb8",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tryCatchActive",
- "source_mapping": {
- "start": 6463,
- "length": 20,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 180
- ],
- "starting_column": 9,
- "ending_column": 29
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6266,
- "length": 509,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive (lib/vault-v2/src/ReaperSwapper.sol#180) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256,bool)._tryCatchActive](lib/vault-v2/src/ReaperSwapper.sol#L180) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L180",
- "id": "fe29d9bfd86c06851a2a3e1b3c0db25699abadca8db8b78c71ae875293417d86",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_instantExitFee",
- "source_mapping": {
- "start": 6185,
- "length": 23,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 168
- ],
- "starting_column": 32,
- "ending_column": 55
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "setInstantExitFee",
- "source_mapping": {
- "start": 6158,
- "length": 123,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 168,
- 169,
- 170
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "DiscountExercise",
- "source_mapping": {
- "start": 1052,
- "length": 9969,
- "filename_relative": "src/exercise/DiscountExercise.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/exercise/DiscountExercise.sol",
- "filename_short": "src/exercise/DiscountExercise.sol",
- "is_dependency": false,
- "lines": [
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "setInstantExitFee(uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter DiscountExercise.setInstantExitFee(uint256)._instantExitFee (src/exercise/DiscountExercise.sol#168) is not in mixedCase\n",
- "markdown": "Parameter [DiscountExercise.setInstantExitFee(uint256)._instantExitFee](src/exercise/DiscountExercise.sol#L168) is not in mixedCase\n",
- "first_markdown_element": "src/exercise/DiscountExercise.sol#L168",
- "id": "ff1617a3413fc4e31072073ea6fc5e0e9bf4ead3476a5cb3e755d52d77461b93",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_tokenOut",
- "source_mapping": {
- "start": 4163,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 113
- ],
- "starting_column": 51,
- "ending_column": 68
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "updateVeloSwapPath",
- "source_mapping": {
- "start": 4117,
- "length": 261,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "updateVeloSwapPath(address,address,address,IVeloRouter.Route[])"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._tokenOut (lib/vault-v2/src/ReaperSwapper.sol#113) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.updateVeloSwapPath(address,address,address,IVeloRouter.Route[])._tokenOut](lib/vault-v2/src/ReaperSwapper.sol#L113) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L113",
- "id": "ff85b7c367841884a8674d678ffff63e31caeb488f05d941ec34479fd6baf50c",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_vault",
- "source_mapping": {
- "start": 6927,
- "length": 14,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 191
- ],
- "starting_column": 9,
- "ending_column": 23
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapBal",
- "source_mapping": {
- "start": 6781,
- "length": 317,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapBal(address,address,uint256,MinAmountOutData,address,uint256)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._vault (lib/vault-v2/src/ReaperSwapper.sol#191) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapBal(address,address,uint256,MinAmountOutData,address,uint256)._vault](lib/vault-v2/src/ReaperSwapper.sol#L191) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L191",
- "id": "ffc2ede031c84d632d708b92ea1e8bcb081c69066ff3fcc008d2e6cd01e71788",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "_amount",
- "source_mapping": {
- "start": 8630,
- "length": 15,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 244
- ],
- "starting_column": 9,
- "ending_column": 24
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "swapUniV3",
- "source_mapping": {
- "start": 8558,
- "length": 534,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ReaperSwapper",
- "source_mapping": {
- "start": 705,
- "length": 19366,
- "filename_relative": "lib/vault-v2/src/ReaperSwapper.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/ReaperSwapper.sol",
- "filename_short": "lib/vault-v2/src/ReaperSwapper.sol",
- "is_dependency": true,
- "lines": [
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)"
- }
- }
- },
- "additional_fields": {
- "target": "parameter",
- "convention": "mixedCase"
- }
- }
- ],
- "description": "Parameter ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount (lib/vault-v2/src/ReaperSwapper.sol#244) is not in mixedCase\n",
- "markdown": "Parameter [ReaperSwapper.swapUniV3(address,address,uint256,MinAmountOutData,address,uint256,bool)._amount](lib/vault-v2/src/ReaperSwapper.sol#L244) is not in mixedCase\n",
- "first_markdown_element": "lib/vault-v2/src/ReaperSwapper.sol#L244",
- "id": "ffe58a8a038564f540670c2f6b6c6fa52d43784115d341afa1eba179df2efe8b",
- "check": "naming-convention",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- },
- {
- "type": "node",
- "name": "! y_sqrt_asm_0 < 0x1000000000000000000",
- "source_mapping": {
- "start": 6558,
- "length": 119,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 180,
- 181,
- 182,
- 183
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:\n\t- ! y_sqrt_asm_0 < 0x1000000000000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#180-183)\n",
- "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses literals with too many digits:\n\t- [! y_sqrt_asm_0 < 0x1000000000000000000](lib/solmate/src/utils/FixedPointMathLib.sol#L180-L183)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
- "id": "0a819fb5f92a6f6a7948d6198a20a71e9693691c915fd452e5b41729e13b3356",
- "check": "too-many-digits",
- "impact": "Informational",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- },
- {
- "type": "node",
- "name": "! y_sqrt_asm_0 < 0x10000000000000000000000000000000000",
- "source_mapping": {
- "start": 6409,
- "length": 136,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 176,
- 177,
- 178,
- 179
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:\n\t- ! y_sqrt_asm_0 < 0x10000000000000000000000000000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#176-179)\n",
- "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses literals with too many digits:\n\t- [! y_sqrt_asm_0 < 0x10000000000000000000000000000000000](lib/solmate/src/utils/FixedPointMathLib.sol#L176-L179)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
- "id": "1356e20c62f39f7e407734298d046498a04468c6b830d2e9f2d11b012ceb8af6",
- "check": "too-many-digits",
- "impact": "Informational",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- },
- {
- "type": "node",
- "name": "! y_sqrt_asm_0 < 0x10000000000",
- "source_mapping": {
- "start": 6690,
- "length": 111,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 184,
- 185,
- 186,
- 187
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:\n\t- ! y_sqrt_asm_0 < 0x10000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#184-187)\n",
- "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses literals with too many digits:\n\t- [! y_sqrt_asm_0 < 0x10000000000](lib/solmate/src/utils/FixedPointMathLib.sol#L184-L187)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
- "id": "4547466ed7b7e6105f203a76bcd6ab35e0154e0fc16f7c2ed0cf4f753cbcbb6d",
- "check": "too-many-digits",
- "impact": "Informational",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- },
- {
- "type": "node",
- "name": "ratio = 0x100000000000000000000000000000000",
- "source_mapping": {
- "start": 1659,
- "length": 141,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 31,
- 32,
- 33
- ],
- "starting_column": 13,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "getSqrtRatioAtTick",
- "source_mapping": {
- "start": 1385,
- "length": 2759,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "TickMath",
- "source_mapping": {
- "start": 305,
- "length": 9112,
- "filename_relative": "lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/v3-core/contracts/libraries/TickMath.sol",
- "filename_short": "lib/v3-core/contracts/libraries/TickMath.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "getSqrtRatioAtTick(int24)"
- }
- }
- }
- }
- ],
- "description": "TickMath.getSqrtRatioAtTick(int24) (lib/v3-core/contracts/libraries/TickMath.sol#26-61) uses literals with too many digits:\n\t- ratio = 0x100000000000000000000000000000000 (lib/v3-core/contracts/libraries/TickMath.sol#31-33)\n",
- "markdown": "[TickMath.getSqrtRatioAtTick(int24)](lib/v3-core/contracts/libraries/TickMath.sol#L26-L61) uses literals with too many digits:\n\t- [ratio = 0x100000000000000000000000000000000](lib/v3-core/contracts/libraries/TickMath.sol#L31-L33)\n",
- "first_markdown_element": "lib/v3-core/contracts/libraries/TickMath.sol#L26-L61",
- "id": "756616de9aca12ab02acf2bbcd459f0074cea7de1b8fbd815a63cf4473e1d454",
- "check": "too-many-digits",
- "impact": "Informational",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 373,
- "length": 1221,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Babylonian",
- "source_mapping": {
- "start": 201,
- "length": 1395,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- },
- {
- "type": "node",
- "name": "xx >= 0x100000000000000000000000000000000",
- "source_mapping": {
- "start": 697,
- "length": 41,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 18
- ],
- "starting_column": 13,
- "ending_column": 54
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 373,
- "length": 1221,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Babylonian",
- "source_mapping": {
- "start": 201,
- "length": 1395,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- }
- }
- }
- ],
- "description": "Babylonian.sqrt(uint256) (lib/vault-v2/src/libraries/Babylonian.sol#10-54) uses literals with too many digits:\n\t- xx >= 0x100000000000000000000000000000000 (lib/vault-v2/src/libraries/Babylonian.sol#18)\n",
- "markdown": "[Babylonian.sqrt(uint256)](lib/vault-v2/src/libraries/Babylonian.sol#L10-L54) uses literals with too many digits:\n\t- [xx >= 0x100000000000000000000000000000000](lib/vault-v2/src/libraries/Babylonian.sol#L18)\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/Babylonian.sol#L10-L54",
- "id": "a0fba3455384ac1e6d71c40190239592f39a24734f29beb5951cfa0d1eac9cca",
- "check": "too-many-digits",
- "impact": "Informational",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 373,
- "length": 1221,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Babylonian",
- "source_mapping": {
- "start": 201,
- "length": 1395,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- },
- {
- "type": "node",
- "name": "xx >= 0x10000000000000000",
- "source_mapping": {
- "start": 810,
- "length": 25,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 22
- ],
- "starting_column": 13,
- "ending_column": 38
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 373,
- "length": 1221,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Babylonian",
- "source_mapping": {
- "start": 201,
- "length": 1395,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- }
- }
- }
- ],
- "description": "Babylonian.sqrt(uint256) (lib/vault-v2/src/libraries/Babylonian.sol#10-54) uses literals with too many digits:\n\t- xx >= 0x10000000000000000 (lib/vault-v2/src/libraries/Babylonian.sol#22)\n",
- "markdown": "[Babylonian.sqrt(uint256)](lib/vault-v2/src/libraries/Babylonian.sol#L10-L54) uses literals with too many digits:\n\t- [xx >= 0x10000000000000000](lib/vault-v2/src/libraries/Babylonian.sol#L22)\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/Babylonian.sol#L10-L54",
- "id": "e5cea88aa35e144390464a50cd74e5ef0814fa17832eaacde7698aa0a1c5c98f",
- "check": "too-many-digits",
- "impact": "Informational",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 373,
- "length": 1221,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Babylonian",
- "source_mapping": {
- "start": 201,
- "length": 1395,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- },
- {
- "type": "node",
- "name": "xx >= 0x100000000",
- "source_mapping": {
- "start": 906,
- "length": 17,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 26
- ],
- "starting_column": 13,
- "ending_column": 30
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 373,
- "length": 1221,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "Babylonian",
- "source_mapping": {
- "start": 201,
- "length": 1395,
- "filename_relative": "lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/vault-v2/src/libraries/Babylonian.sol",
- "filename_short": "lib/vault-v2/src/libraries/Babylonian.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- }
- }
- }
- ],
- "description": "Babylonian.sqrt(uint256) (lib/vault-v2/src/libraries/Babylonian.sol#10-54) uses literals with too many digits:\n\t- xx >= 0x100000000 (lib/vault-v2/src/libraries/Babylonian.sol#26)\n",
- "markdown": "[Babylonian.sqrt(uint256)](lib/vault-v2/src/libraries/Babylonian.sol#L10-L54) uses literals with too many digits:\n\t- [xx >= 0x100000000](lib/vault-v2/src/libraries/Babylonian.sol#L26)\n",
- "first_markdown_element": "lib/vault-v2/src/libraries/Babylonian.sol#L10-L54",
- "id": "e8d06912ce8ea156a58638083700c8eb9591c4bd2968b12ff93038bc775de738",
- "check": "too-many-digits",
- "impact": "Informational",
- "confidence": "Medium"
- },
- {
- "elements": [
- {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- },
- {
- "type": "node",
- "name": "! y_sqrt_asm_0 < 0x1000000",
- "source_mapping": {
- "start": 6814,
- "length": 106,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 188,
- 189,
- 190,
- 191
- ],
- "starting_column": 13,
- "ending_column": 14
- },
- "type_specific_fields": {
- "parent": {
- "type": "function",
- "name": "sqrt",
- "source_mapping": {
- "start": 5746,
- "length": 3396,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227
- ],
- "starting_column": 5,
- "ending_column": 6
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "FixedPointMathLib",
- "source_mapping": {
- "start": 341,
- "length": 9712,
- "filename_relative": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/lib/solmate/src/utils/FixedPointMathLib.sol",
- "filename_short": "lib/solmate/src/utils/FixedPointMathLib.sol",
- "is_dependency": true,
- "lines": [
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- },
- "signature": "sqrt(uint256)"
- }
- }
- }
- }
- ],
- "description": "FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:\n\t- ! y_sqrt_asm_0 < 0x1000000 (lib/solmate/src/utils/FixedPointMathLib.sol#188-191)\n",
- "markdown": "[FixedPointMathLib.sqrt(uint256)](lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227) uses literals with too many digits:\n\t- [! y_sqrt_asm_0 < 0x1000000](lib/solmate/src/utils/FixedPointMathLib.sol#L188-L191)\n",
- "first_markdown_element": "lib/solmate/src/utils/FixedPointMathLib.sol#L164-L227",
- "id": "f28694d3e6e5fcf9a2f3366378ebef6a30892b6367b9ade09d2faca0f8828b17",
- "check": "too-many-digits",
- "impact": "Informational",
- "confidence": "Medium"
- },
- {
- "elements": [],
- "description": "The following unused import(s) in src/helpers/SwapHelper.sol should be removed:\n\t-import \"forge-std/console.sol\"; (src/helpers/SwapHelper.sol#9)\n",
- "markdown": "The following unused import(s) in src/helpers/SwapHelper.sol should be removed:\n\t-import \"forge-std/console.sol\"; (src/helpers/SwapHelper.sol#9)\n",
- "first_markdown_element": "",
- "id": "6f50be6825ed38206d4fb51dd6876afc1476363bb114f0ef2ebff4c45cde45e0",
- "check": "unused-import",
- "impact": "Informational",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "isToken0",
- "source_mapping": {
- "start": 2441,
- "length": 20,
- "filename_relative": "src/oracles/ThenaOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/ThenaOracle.sol",
- "filename_short": "src/oracles/ThenaOracle.sol",
- "is_dependency": false,
- "lines": [
- 60
- ],
- "starting_column": 5,
- "ending_column": 25
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "ThenaOracle",
- "source_mapping": {
- "start": 587,
- "length": 5996,
- "filename_relative": "src/oracles/ThenaOracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/ThenaOracle.sol",
- "filename_short": "src/oracles/ThenaOracle.sol",
- "is_dependency": false,
- "lines": [
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- }
- }
- ],
- "description": "ThenaOracle.isToken0 (src/oracles/ThenaOracle.sol#60) should be immutable \n",
- "markdown": "[ThenaOracle.isToken0](src/oracles/ThenaOracle.sol#L60) should be immutable \n",
- "first_markdown_element": "src/oracles/ThenaOracle.sol#L60",
- "id": "e0b61928eb6070b87873ce63ac8b19811c80ba5bc00753317605d06c2cac17ae",
- "check": "immutable-states",
- "impact": "Optimization",
- "confidence": "High"
- },
- {
- "elements": [
- {
- "type": "variable",
- "name": "isToken0",
- "source_mapping": {
- "start": 2701,
- "length": 20,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 65
- ],
- "starting_column": 5,
- "ending_column": 25
- },
- "type_specific_fields": {
- "parent": {
- "type": "contract",
- "name": "UniswapV3Oracle",
- "source_mapping": {
- "start": 729,
- "length": 6210,
- "filename_relative": "src/oracles/UniswapV3Oracle.sol",
- "filename_absolute": "/home/anything/Blockchain/ByteMasons/options-token/src/oracles/UniswapV3Oracle.sol",
- "filename_short": "src/oracles/UniswapV3Oracle.sol",
- "is_dependency": false,
- "lines": [
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155
- ],
- "starting_column": 1,
- "ending_column": 2
- }
- }
- }
- }
- ],
- "description": "UniswapV3Oracle.isToken0 (src/oracles/UniswapV3Oracle.sol#65) should be immutable \n",
- "markdown": "[UniswapV3Oracle.isToken0](src/oracles/UniswapV3Oracle.sol#L65) should be immutable \n",
- "first_markdown_element": "src/oracles/UniswapV3Oracle.sol#L65",
- "id": "fe23c04d02b78e9e124d8ab8aa13ce54ede2783408d0e75877e7375466537adc",
- "check": "immutable-states",
- "impact": "Optimization",
- "confidence": "High"
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index d51db05..42603f8 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -4,7 +4,7 @@ pragma solidity ^0.8.13;
import {OwnableUpgradeable} from "oz-upgradeable/access/OwnableUpgradeable.sol";
import {ERC20Upgradeable} from "oz-upgradeable/token/ERC20/ERC20Upgradeable.sol";
import {UUPSUpgradeable} from "oz-upgradeable/proxy/utils/UUPSUpgradeable.sol";
-
+import {PausableUpgradeable} from "oz-upgradeable/security/PausableUpgradeable.sol";
import {IOptionsToken} from "./interfaces/IOptionsToken.sol";
import {IOracle} from "./interfaces/IOracle.sol";
import {IExercise} from "./interfaces/IExercise.sol";
@@ -13,7 +13,7 @@ import {IExercise} from "./interfaces/IExercise.sol";
/// @author Eidolon & lookee
/// @notice Options token representing the right to perform an advantageous action,
/// such as purchasing the underlying token at a discount to the market price.
-contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UUPSUpgradeable {
+contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UUPSUpgradeable, PausableUpgradeable {
/// -----------------------------------------------------------------------
/// Errors
/// -----------------------------------------------------------------------
@@ -99,6 +99,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
virtual
+ whenNotPaused
returns (
uint256 paymentAmount,
address,
@@ -121,6 +122,16 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
emit SetExerciseContract(_address, _isExercise);
}
+ /// @notice Pauses functionality related to exercises of contracts.
+ function pause() external onlyOwner {
+ _pause();
+ }
+
+ /// @notice Unpauses functionality related to exercises of contracts.
+ function unpause() external onlyOwner {
+ _unpause();
+ }
+
/// -----------------------------------------------------------------------
/// Internal functions
/// -----------------------------------------------------------------------
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 8348e6f..3be5686 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -35,7 +35,7 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
error Exercise__MultiplierOutOfRange();
error Exercise__InvalidOracle();
error Exercise__FeeGreaterThanMax();
- error Exercise__FeeDistributionFailed();
+ error Exercise__AmountOutIsZero();
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
@@ -138,8 +138,8 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
}
/// Owner functions
- function configSwapProps(SwapProps memory _swapProps) external virtual override onlyOwner {
- _configSwapProps(_swapProps);
+ function setSwapProps(SwapProps memory _swapProps) external virtual override onlyOwner {
+ _setSwapProps(_swapProps);
}
/// @notice Sets the oracle contract. Only callable by the owner.
@@ -208,7 +208,6 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
/// Internal functions
function _zap(address from, uint256 amount, address recipient, DiscountExerciseParams memory params)
internal
- virtual
returns (uint256 paymentAmount, address, uint256, uint256)
{
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
@@ -224,13 +223,19 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
/* Approve the underlying token to make swap */
underlyingToken.approve(swapProps.swapper, feeAmount);
/* Swap underlying token to payment token (asset) */
- _generalSwap(swapProps.exchangeTypes, address(underlyingToken), address(paymentToken), feeAmount, minAmountOut, swapProps.exchangeAddress);
+ uint256 amountOut = _generalSwap(
+ swapProps.exchangeTypes, address(underlyingToken), address(paymentToken), feeAmount, minAmountOut, swapProps.exchangeAddress
+ );
+
+ if (amountOut == 0) {
+ revert Exercise__AmountOutIsZero();
+ }
+
feeAmount = 0;
+ underlyingToken.approve(swapProps.swapper, 0);
+
// transfer payment tokens from user to the set receivers
distributeFees(paymentToken.balanceOf(address(this)), paymentToken);
- if (paymentToken.balanceOf(feeRecipients[0]) == 0 || paymentToken.balanceOf(feeRecipients[1]) == 0) {
- revert Exercise__FeeDistributionFailed();
- }
}
// transfer underlying tokens to recipient without the bonus
@@ -276,7 +281,7 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
return _getPaymentAmount(amount);
}
- function _getPaymentAmount(uint256 amount) private view returns (uint256 paymentAmount) {
+ function _getPaymentAmount(uint256 amount) internal view returns (uint256 paymentAmount) {
paymentAmount = amount.mulWadUp(oracle.getPrice().mulDivUp(multiplier, BPS_DENOM));
}
}
diff --git a/src/helpers/SwapHelper.sol b/src/helpers/SwapHelper.sol
index f4fbff0..828b600 100644
--- a/src/helpers/SwapHelper.sol
+++ b/src/helpers/SwapHelper.sol
@@ -33,12 +33,16 @@ abstract contract SwapHelper {
error SwapHelper__InvalidExchangeType(uint256 exType);
constructor(SwapProps memory _swapProps) {
- _configSwapProps(_swapProps);
+ _setSwapProps(_swapProps);
}
- function configSwapProps(SwapProps memory _swapProps) external virtual;
+ /**
+ * @dev Override function shall have proper access control
+ * @param _swapProps - swap properties
+ */
+ function setSwapProps(SwapProps memory _swapProps) external virtual;
- function _configSwapProps(SwapProps memory _swapProps) internal {
+ function _setSwapProps(SwapProps memory _swapProps) internal {
if (_swapProps.maxSwapSlippage > BPS_DENOM) {
revert SwapHelper__SlippageGreaterThanMax();
}
@@ -62,17 +66,18 @@ abstract contract SwapHelper {
*/
function _generalSwap(ExchangeType exType, address tokenIn, address tokenOut, uint256 amount, uint256 minAmountOut, address exchangeAddress)
internal
+ returns (uint256)
{
ISwapperSwaps _swapper = ISwapperSwaps(swapProps.swapper);
MinAmountOutData memory minAmountOutData = MinAmountOutData(MinAmountOutKind.Absolute, minAmountOut);
if (exType == ExchangeType.UniV2) {
- _swapper.swapUniV2(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ return _swapper.swapUniV2(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
} else if (exType == ExchangeType.Bal) {
- _swapper.swapBal(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ return _swapper.swapBal(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
} else if (exType == ExchangeType.VeloSolid) {
- _swapper.swapVelo(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ return _swapper.swapVelo(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
} else if (exType == ExchangeType.UniV3) {
- _swapper.swapUniV3(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
+ return _swapper.swapUniV3(tokenIn, tokenOut, amount, minAmountOutData, exchangeAddress);
} else {
revert SwapHelper__InvalidExchangeType(uint256(exType));
}
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index 08af9ee..e6ccdfb 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -66,7 +66,6 @@ contract OptionsTokenTest is Test {
optionsToken.transferOwnership(owner);
/* Reaper deployment and configuration */
-
uint256 slippage = 500; // 5%
uint256 minAmountToTriggerSwap = 1e5;
@@ -392,6 +391,39 @@ contract OptionsTokenTest is Test {
optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
}
+ function test_oTokenWhenPaused(uint256 amount) public {
+ amount = bound(amount, 100, 1 ether);
+ address recipient = makeAddr("recipient");
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), 3 * amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = 3 * amount.mulWadUp(oracle.getPrice().mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ /* Only owner can pause */
+ vm.startPrank(recipient);
+ vm.expectRevert(bytes("Ownable: caller is not the owner")); // Ownable: caller is not the owner
+ optionsToken.pause();
+ vm.stopPrank();
+
+ vm.prank(owner);
+ optionsToken.pause();
+ vm.expectRevert(bytes("Pausable: paused"));
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ vm.prank(owner);
+ optionsToken.unpause();
+ optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+ }
+
function test_exerciserConfigAccesses() public {
uint256 slippage = 555; // 5.55%
address[] memory tokens = new address[](2);
@@ -404,10 +436,10 @@ contract OptionsTokenTest is Test {
SwapProps memory swapProps = SwapProps(address(reaperSwapper), address(reaperSwapper), ExchangeType.Bal, slippage);
vm.expectRevert(bytes("UNAUTHORIZED"));
- exerciser.configSwapProps(swapProps);
+ exerciser.setSwapProps(swapProps);
vm.prank(owner);
- exerciser.configSwapProps(swapProps);
+ exerciser.setSwapProps(swapProps);
vm.expectRevert(bytes("UNAUTHORIZED"));
exerciser.setOracle(oracle);
From 12936705abbee5563d17a61544ce64cec0deabcb Mon Sep 17 00:00:00 2001
From: xRave110
Date: Mon, 1 Jul 2024 21:19:53 +0200
Subject: [PATCH 53/64] Changed way of setting swap properties
---
src/exercise/DiscountExercise.sol | 3 ++-
src/helpers/SwapHelper.sol | 4 +---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index 3be5686..b8c556f 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -90,10 +90,11 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
address[] memory feeRecipients_,
uint256[] memory feeBPS_,
SwapProps memory swapProps_
- ) BaseExercise(oToken_, feeRecipients_, feeBPS_) Owned(owner_) SwapHelper(swapProps_) {
+ ) BaseExercise(oToken_, feeRecipients_, feeBPS_) Owned(owner_) SwapHelper() {
paymentToken = paymentToken_;
underlyingToken = underlyingToken_;
+ _setSwapProps(swapProps_);
_setOracle(oracle_);
_setMultiplier(multiplier_);
_setInstantExitFee(instantExitFee_);
diff --git a/src/helpers/SwapHelper.sol b/src/helpers/SwapHelper.sol
index 828b600..4bc7d2a 100644
--- a/src/helpers/SwapHelper.sol
+++ b/src/helpers/SwapHelper.sol
@@ -32,9 +32,7 @@ abstract contract SwapHelper {
error SwapHelper__ParamHasAddressZero();
error SwapHelper__InvalidExchangeType(uint256 exType);
- constructor(SwapProps memory _swapProps) {
- _setSwapProps(_swapProps);
- }
+ constructor() {}
/**
* @dev Override function shall have proper access control
From 4d72c2861a05269abafa2c28fdbb8fe80bdc6186 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Mon, 1 Jul 2024 21:22:44 +0200
Subject: [PATCH 54/64] Working integration on Mode
---
src/OptionsCompounder.sol | 342 ++++++++++++++
src/interfaces/IFlashLoanReceiver.sol | 28 ++
src/interfaces/ILendingPool.sol | 437 ++++++++++++++++++
.../ILendingPoolAddressesProvider.sol | 60 +++
src/interfaces/IOptionsCompounder.sol | 25 +
src/libraries/DataTypes.sol | 53 +++
test/Common.sol | 3 +
test/ItBsc_OptionsCompounder.t copy.solNOT | 187 ++++++++
...n.t.solNOT => ItBsc_OptionsToken.t.solNOT} | 0
test/ItMode_OptionsCompounder.t.sol | 296 ++++++++++++
...sToken.t.sol => ItMode_OptionsToken.t.sol} | 3 +-
test/ItOp_OptionsCompounder.t.solNOT | 415 +++++++++++++++++
...en.t.solNOT => ItOp_OptionsToken.t.solNOT} | 0
13 files changed, 1847 insertions(+), 2 deletions(-)
create mode 100644 src/OptionsCompounder.sol
create mode 100644 src/interfaces/IFlashLoanReceiver.sol
create mode 100644 src/interfaces/ILendingPool.sol
create mode 100644 src/interfaces/ILendingPoolAddressesProvider.sol
create mode 100644 src/interfaces/IOptionsCompounder.sol
create mode 100644 src/libraries/DataTypes.sol
create mode 100644 test/ItBsc_OptionsCompounder.t copy.solNOT
rename test/{ItBscOptionsToken.t.solNOT => ItBsc_OptionsToken.t.solNOT} (100%)
create mode 100644 test/ItMode_OptionsCompounder.t.sol
rename test/{ItModeOptionsToken.t.sol => ItMode_OptionsToken.t.sol} (98%)
create mode 100644 test/ItOp_OptionsCompounder.t.solNOT
rename test/{ItOpOptionsToken.t.solNOT => ItOp_OptionsToken.t.solNOT} (100%)
diff --git a/src/OptionsCompounder.sol b/src/OptionsCompounder.sol
new file mode 100644
index 0000000..f85c3ba
--- /dev/null
+++ b/src/OptionsCompounder.sol
@@ -0,0 +1,342 @@
+// SPDX-License-Identifier: BUSL-1.1
+
+pragma solidity ^0.8.0;
+
+/* Imports */
+import {IFlashLoanReceiver} from "./interfaces/IFlashLoanReceiver.sol";
+import {ILendingPoolAddressesProvider} from "./interfaces/ILendingPoolAddressesProvider.sol";
+import {ILendingPool} from "./interfaces/ILendingPool.sol";
+import {IOracle} from "./interfaces/IOracle.sol";
+import "./interfaces/IOptionsCompounder.sol";
+import {DiscountExerciseParams, DiscountExercise} from "./exercise/DiscountExercise.sol";
+import {ReaperAccessControl} from "vault-v2/mixins/ReaperAccessControl.sol";
+// import {ISwapperSwaps, MinAmountOutData, MinAmountOutKind} from "vault-v2/ReaperSwapper.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {OwnableUpgradeable} from "oz-upgradeable/access/OwnableUpgradeable.sol";
+import {UUPSUpgradeable} from "oz-upgradeable/proxy/utils/UUPSUpgradeable.sol";
+import {SafeERC20} from "oz/token/ERC20/utils/SafeERC20.sol";
+import {ExchangeType, SwapProps, SwapHelper} from "./helpers/SwapHelper.sol";
+
+/**
+ * @title Consumes options tokens, exercise them with flashloaned asset and converts gain to strategy want token
+ * @author Eidolon, xRave110
+ * @dev Abstract contract which shall be inherited by the strategy
+ */
+contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgradeable, SwapHelper {
+ using FixedPointMathLib for uint256;
+ using SafeERC20 for IERC20;
+
+ /* Internal struct */
+ struct FlashloanParams {
+ uint256 optionsAmount;
+ address exerciserContract;
+ address sender;
+ uint256 initialBalance;
+ uint256 minPaymentAmount;
+ }
+
+ /* Constants */
+ uint8 constant MIN_NR_OF_FLASHLOAN_ASSETS = 1;
+ uint256 constant PERCENTAGE = 10000;
+
+ uint256 public constant UPGRADE_TIMELOCK = 48 hours;
+ uint256 public constant FUTURE_NEXT_PROPOSAL_TIME = 365 days * 100;
+
+ /* Storages */
+ address public swapper;
+ ILendingPoolAddressesProvider private addressProvider;
+ ILendingPool private lendingPool;
+ bool private flashloanFinished;
+ IOracle private oracle;
+ IOptionsToken public optionsToken;
+
+ uint256 public upgradeProposalTime;
+ address public nextImplementation;
+
+ /* Events */
+ event OTokenCompounded(uint256 indexed gainInPayment, uint256 indexed returned);
+
+ /* Modifiers */
+
+ constructor() {
+ _disableInitializers();
+ }
+
+ /**
+ * @notice Initializes params
+ * @dev Replaces constructor due to upgradeable nature of the contract. Can be executed only once at init.
+ * @param _optionsToken - option token address which allows to redeem underlying token via operation "exercise"
+ * @param _addressProvider - address lending pool address provider - necessary for flashloan operations
+ * @param _swapProps - swap properites for all swaps in the contract
+ * @param _oracle - oracles used in all swaps in the contract
+ *
+ */
+ function initialize(address _optionsToken, address _addressProvider, address _swapper, SwapProps memory _swapProps, IOracle _oracle)
+ public
+ initializer
+ {
+ __Ownable_init();
+ setOptionToken(_optionsToken);
+ _setSwapProps(_swapProps);
+ setOracle(_oracle);
+ setSwapper(_swapper);
+ flashloanFinished = true;
+ setAddressProvider(_addressProvider);
+ __UUPSUpgradeable_init();
+ _clearUpgradeCooldown();
+ }
+
+ /**
+ * Setters **********************************
+ */
+ /**
+ * @notice Sets option token address
+ * @dev Can be executed only by admins
+ * @param _optionToken - address of option token contract
+ */
+ function setOptionToken(address _optionToken) public onlyOwner {
+ if (_optionToken == address(0)) {
+ revert OptionsCompounder__ParamHasAddressZero();
+ }
+ optionsToken = IOptionsToken(_optionToken);
+ }
+
+ function setSwapProps(SwapProps memory _swapProps) external override onlyOwner {
+ _setSwapProps(_swapProps);
+ }
+
+ function setOracle(IOracle _oracle) public onlyOwner {
+ if (address(_oracle) == address(0)) {
+ revert OptionsCompounder__ParamHasAddressZero();
+ }
+ oracle = _oracle;
+ }
+
+ function setSwapper(address _swapper) public onlyOwner {
+ if (_swapper == address(0)) {
+ revert OptionsCompounder__ParamHasAddressZero();
+ }
+ swapper = _swapper;
+ }
+
+ function setAddressProvider(address _addressProvider) public onlyOwner {
+ if (_addressProvider == address(0)) {
+ revert OptionsCompounder__ParamHasAddressZero();
+ }
+ addressProvider = ILendingPoolAddressesProvider(_addressProvider);
+ lendingPool = ILendingPool(addressProvider.getLendingPool());
+ }
+
+ /**
+ * @notice Function initiates flashloan to get assets for exercising options.
+ * @dev Can be executed only by keeper role. Reentrance protected.
+ * @param amount - amount of option tokens to exercise
+ * @param exerciseContract - address of exercise contract (DiscountContract)
+ * @param minWantAmount - minimal amount of want when the flashloan is considered as profitable
+ */
+ function harvestOTokens(uint256 amount, address exerciseContract, uint256 minWantAmount) external {
+ _harvestOTokens(amount, exerciseContract, minWantAmount);
+ }
+
+ /**
+ * @notice Function initiates flashloan to get assets for exercising options.
+ * @dev Can be executed only by keeper role. Reentrance protected.
+ * @param amount - amount of option tokens to exercise
+ * @param exerciseContract - address of exercise contract (DiscountContract)
+ * @param minPaymentAmount - minimal amount of want when the flashloan is considered as profitable
+ */
+ function _harvestOTokens(uint256 amount, address exerciseContract, uint256 minPaymentAmount) private {
+ /* Check exercise contract validity */
+ if (optionsToken.isExerciseContract(exerciseContract) == false) {
+ revert OptionsCompounder__NotExerciseContract();
+ }
+ /* Reentrance protection */
+ if (flashloanFinished == false) {
+ revert OptionsCompounder__FlashloanNotFinished();
+ }
+ if (minPaymentAmount == 0) {
+ revert OptionsCompounder__WrongMinPaymentAmount();
+ }
+ /* Locals */
+ IERC20 paymentToken = DiscountExercise(exerciseContract).paymentToken();
+
+ address[] memory assets = new address[](1);
+ assets[0] = address(paymentToken);
+
+ uint256[] memory amounts = new uint256[](1);
+ amounts[0] = DiscountExercise(exerciseContract).getPaymentAmount(amount);
+
+ // 0 = no debt, 1 = stable, 2 = variable
+ uint256[] memory modes = new uint256[](1);
+ modes[0] = 0;
+
+ /* necesary params used during flashloan execution */
+ bytes memory params =
+ abi.encode(FlashloanParams(amount, exerciseContract, msg.sender, paymentToken.balanceOf(address(this)), minPaymentAmount));
+ flashloanFinished = false;
+ lendingPool.flashLoan(
+ address(this), // receiver
+ assets,
+ amounts,
+ modes,
+ address(this), // onBehalf
+ params,
+ 0 // referal code
+ );
+ }
+
+ /**
+ * @notice Exercise option tokens with flash loaned token and compound rewards
+ * in underlying tokens to stratefy want token
+ * @dev Function is called after this contract has received the flash loaned amount
+ * @param assets - list of assets flash loaned (only one asset allowed in this case)
+ * @param amounts - list of amounts flash loaned (only one amount allowed in this case)
+ * @param premiums - list of premiums for flash loaned assets (only one premium allowed in this case)
+ * @param params - encoded data about options amount, exercise contract address, initial balance and minimal want amount
+ */
+ function executeOperation(address[] calldata assets, uint256[] calldata amounts, uint256[] calldata premiums, address, bytes calldata params)
+ external
+ override
+ returns (bool)
+ {
+ if (flashloanFinished != false) {
+ revert OptionsCompounder__FlashloanNotTriggered();
+ }
+ if (assets.length > MIN_NR_OF_FLASHLOAN_ASSETS || amounts.length > MIN_NR_OF_FLASHLOAN_ASSETS || premiums.length > MIN_NR_OF_FLASHLOAN_ASSETS)
+ {
+ revert OptionsCompounder__TooMuchAssetsLoaned();
+ }
+ /* Later the gain can be local variable */
+ exerciseOptionAndReturnDebt(assets[0], amounts[0], premiums[0], params);
+ flashloanFinished = true;
+ return true;
+ }
+
+ /**
+ * @dev Private function that helps to execute flashloan and makes it more modular
+ * Emits event with gain from the option exercise after repayment of all debt from flashloan
+ * and amount of repaid assets
+ * @param asset - list of assets flash loaned (only one asset allowed in this case)
+ * @param amount - list of amounts flash loaned (only one amount allowed in this case)
+ * @param premium - list of premiums for flash loaned assets (only one premium allowed in this case)
+ * @param params - encoded data about options amount, exercise contract address, initial balance and minimal want amount
+ */
+ function exerciseOptionAndReturnDebt(address asset, uint256 amount, uint256 premium, bytes calldata params) private {
+ FlashloanParams memory flashloanParams = abi.decode(params, (FlashloanParams));
+ uint256 assetBalance = 0;
+ uint256 minAmountOut;
+
+ /* Get underlying and payment tokens to make sure there is no change between
+ harvest and excersice */
+ IERC20 underlyingToken = DiscountExercise(flashloanParams.exerciserContract).underlyingToken();
+ {
+ IERC20 paymentToken = DiscountExercise(flashloanParams.exerciserContract).paymentToken();
+
+ /* Asset and paymentToken should be the same addresses */
+ if (asset != address(paymentToken)) {
+ revert OptionsCompounder__AssetNotEqualToPaymentToken();
+ }
+ }
+ {
+ IERC20(address(optionsToken)).safeTransferFrom(flashloanParams.sender, address(this), flashloanParams.optionsAmount);
+ bytes memory exerciseParams =
+ abi.encode(DiscountExerciseParams({maxPaymentAmount: amount, deadline: type(uint256).max, isInstantExit: false}));
+ if (underlyingToken.balanceOf(flashloanParams.exerciserContract) < flashloanParams.optionsAmount) {
+ revert OptionsCompounder__NotEnoughUnderlyingTokens();
+ }
+ /* Approve spending option token */
+ IERC20(asset).approve(flashloanParams.exerciserContract, amount);
+ /* Exercise in order to get underlying token */
+ optionsToken.exercise(flashloanParams.optionsAmount, address(this), flashloanParams.exerciserContract, exerciseParams);
+ }
+
+ {
+ uint256 balanceOfUnderlyingToken = 0;
+ balanceOfUnderlyingToken = underlyingToken.balanceOf(address(this));
+ minAmountOut = _getMinAmountOutData(balanceOfUnderlyingToken, swapProps.maxSwapSlippage, address(oracle));
+
+ /* Approve the underlying token to make swap */
+ underlyingToken.approve(swapper, balanceOfUnderlyingToken);
+
+ /* Swap underlying token to payment token (asset) */
+ _generalSwap(swapProps.exchangeTypes, address(underlyingToken), asset, balanceOfUnderlyingToken, minAmountOut, swapProps.exchangeAddress);
+ }
+
+ /* Calculate profit and revert if it is not profitable */
+ {
+ uint256 gainInPaymentToken = 0;
+
+ uint256 totalAmountToPay = amount + premium;
+ assetBalance = IERC20(asset).balanceOf(address(this));
+
+ if (
+ (
+ (assetBalance < flashloanParams.initialBalance)
+ || (assetBalance - flashloanParams.initialBalance) <= (totalAmountToPay + flashloanParams.minPaymentAmount)
+ )
+ ) {
+ revert OptionsCompounder__FlashloanNotProfitableEnough();
+ }
+
+ /* Protected against underflows by statement above */
+ gainInPaymentToken = assetBalance - totalAmountToPay;
+
+ /* Approve lending pool to spend borrowed tokens + premium */
+ IERC20(asset).approve(address(lendingPool), totalAmountToPay);
+ IERC20(asset).safeTransfer(flashloanParams.sender, gainInPaymentToken);
+
+ emit OTokenCompounded(gainInPaymentToken, totalAmountToPay);
+ }
+ }
+
+
+ /**
+ * @dev This function must be called prior to upgrading the implementation.
+ * It's required to wait UPGRADE_TIMELOCK seconds before executing the upgrade.
+ */
+ function initiateUpgradeCooldown(address _nextImplementation) external onlyOwner {
+ upgradeProposalTime = block.timestamp;
+ nextImplementation = _nextImplementation;
+ }
+
+ /**
+ * @dev This function is called:
+ * - in initialize()
+ * - as part of a successful upgrade
+ * - manually to clear the upgrade cooldown.
+ */
+ function _clearUpgradeCooldown() internal {
+ upgradeProposalTime = block.timestamp + FUTURE_NEXT_PROPOSAL_TIME;
+ }
+
+ function clearUpgradeCooldown() external onlyOwner {
+ _clearUpgradeCooldown();
+ }
+
+ /**
+ * @dev This function must be overriden simply for access control purposes.
+ * Only the owner can upgrade the implementation once the timelock
+ * has passed.
+ */
+ function _authorizeUpgrade(address _nextImplementation) internal override onlyOwner {
+ require(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp, "Upgrade cooldown not initiated or still ongoing");
+ require(_nextImplementation == nextImplementation, "Incorrect implementation");
+ _clearUpgradeCooldown();
+ }
+
+ /**
+ * Getters **********************************
+ */
+ function getOptionTokenAddress() external view returns (address) {
+ return address(optionsToken);
+ }
+
+ function ADDRESSES_PROVIDER() external view returns (ILendingPoolAddressesProvider) {
+ return addressProvider;
+ }
+
+ function LENDING_POOL() external view returns (ILendingPool) {
+ return lendingPool;
+ }
+}
diff --git a/src/interfaces/IFlashLoanReceiver.sol b/src/interfaces/IFlashLoanReceiver.sol
new file mode 100644
index 0000000..1d52f67
--- /dev/null
+++ b/src/interfaces/IFlashLoanReceiver.sol
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: agpl-3.0
+pragma solidity ^0.8.0;
+
+import {ILendingPoolAddressesProvider} from "./ILendingPoolAddressesProvider.sol";
+import {ILendingPool} from "./ILendingPool.sol";
+
+/**
+ * @title IFlashLoanReceiver interface
+ * @notice Interface for the Aave fee IFlashLoanReceiver.
+ * @author Aave
+ * @dev implement this interface to develop a flashloan-compatible flashLoanReceiver contract
+ **/
+interface IFlashLoanReceiver {
+ function executeOperation(
+ address[] calldata assets,
+ uint256[] calldata amounts,
+ uint256[] calldata premiums,
+ address initiator,
+ bytes calldata params
+ ) external returns (bool);
+
+ function ADDRESSES_PROVIDER()
+ external
+ view
+ returns (ILendingPoolAddressesProvider);
+
+ function LENDING_POOL() external view returns (ILendingPool);
+}
diff --git a/src/interfaces/ILendingPool.sol b/src/interfaces/ILendingPool.sol
new file mode 100644
index 0000000..a03f9da
--- /dev/null
+++ b/src/interfaces/ILendingPool.sol
@@ -0,0 +1,437 @@
+// SPDX-License-Identifier: agpl-3.0
+pragma solidity ^0.8.0;
+
+import {ILendingPoolAddressesProvider} from "./ILendingPoolAddressesProvider.sol";
+import {DataTypes} from "../libraries/DataTypes.sol";
+
+interface ILendingPool {
+ /**
+ * @dev Emitted on deposit()
+ * @param reserve The address of the underlying asset of the reserve
+ * @param user The address initiating the deposit
+ * @param onBehalfOf The beneficiary of the deposit, receiving the aTokens
+ * @param amount The amount deposited
+ * @param referral The referral code used
+ **/
+ event Deposit(
+ address indexed reserve,
+ address user,
+ address indexed onBehalfOf,
+ uint256 amount,
+ uint16 indexed referral
+ );
+
+ /**
+ * @dev Emitted on withdraw()
+ * @param reserve The address of the underlyng asset being withdrawn
+ * @param user The address initiating the withdrawal, owner of aTokens
+ * @param to Address that will receive the underlying
+ * @param amount The amount to be withdrawn
+ **/
+ event Withdraw(
+ address indexed reserve,
+ address indexed user,
+ address indexed to,
+ uint256 amount
+ );
+
+ /**
+ * @dev Emitted on borrow() and flashLoan() when debt needs to be opened
+ * @param reserve The address of the underlying asset being borrowed
+ * @param user The address of the user initiating the borrow(), receiving the funds on borrow() or just
+ * initiator of the transaction on flashLoan()
+ * @param onBehalfOf The address that will be getting the debt
+ * @param amount The amount borrowed out
+ * @param borrowRateMode The rate mode: 1 for Stable, 2 for Variable
+ * @param borrowRate The numeric rate at which the user has borrowed
+ * @param referral The referral code used
+ **/
+ event Borrow(
+ address indexed reserve,
+ address user,
+ address indexed onBehalfOf,
+ uint256 amount,
+ uint256 borrowRateMode,
+ uint256 borrowRate,
+ uint16 indexed referral
+ );
+
+ /**
+ * @dev Emitted on repay()
+ * @param reserve The address of the underlying asset of the reserve
+ * @param user The beneficiary of the repayment, getting his debt reduced
+ * @param repayer The address of the user initiating the repay(), providing the funds
+ * @param amount The amount repaid
+ **/
+ event Repay(
+ address indexed reserve,
+ address indexed user,
+ address indexed repayer,
+ uint256 amount
+ );
+
+ /**
+ * @dev Emitted on swapBorrowRateMode()
+ * @param reserve The address of the underlying asset of the reserve
+ * @param user The address of the user swapping his rate mode
+ * @param rateMode The rate mode that the user wants to swap to
+ **/
+ event Swap(address indexed reserve, address indexed user, uint256 rateMode);
+
+ /**
+ * @dev Emitted on setUserUseReserveAsCollateral()
+ * @param reserve The address of the underlying asset of the reserve
+ * @param user The address of the user enabling the usage as collateral
+ **/
+ event ReserveUsedAsCollateralEnabled(
+ address indexed reserve,
+ address indexed user
+ );
+
+ /**
+ * @dev Emitted on setUserUseReserveAsCollateral()
+ * @param reserve The address of the underlying asset of the reserve
+ * @param user The address of the user enabling the usage as collateral
+ **/
+ event ReserveUsedAsCollateralDisabled(
+ address indexed reserve,
+ address indexed user
+ );
+
+ /**
+ * @dev Emitted on rebalanceStableBorrowRate()
+ * @param reserve The address of the underlying asset of the reserve
+ * @param user The address of the user for which the rebalance has been executed
+ **/
+ event RebalanceStableBorrowRate(
+ address indexed reserve,
+ address indexed user
+ );
+
+ /**
+ * @dev Emitted on flashLoan()
+ * @param target The address of the flash loan receiver contract
+ * @param initiator The address initiating the flash loan
+ * @param asset The address of the asset being flash borrowed
+ * @param amount The amount flash borrowed
+ * @param premium The fee flash borrowed
+ * @param referralCode The referral code used
+ **/
+ event FlashLoan(
+ address indexed target,
+ address indexed initiator,
+ address indexed asset,
+ uint256 amount,
+ uint256 premium,
+ uint16 referralCode
+ );
+
+ /**
+ * @dev Emitted when the pause is triggered.
+ */
+ event Paused();
+
+ /**
+ * @dev Emitted when the pause is lifted.
+ */
+ event Unpaused();
+
+ /**
+ * @dev Emitted when a borrower is liquidated. This event is emitted by the LendingPool via
+ * LendingPoolCollateral manager using a DELEGATECALL
+ * This allows to have the events in the generated ABI for LendingPool.
+ * @param collateralAsset The address of the underlying asset used as collateral, to receive as result of the liquidation
+ * @param debtAsset The address of the underlying borrowed asset to be repaid with the liquidation
+ * @param user The address of the borrower getting liquidated
+ * @param debtToCover The debt amount of borrowed `asset` the liquidator wants to cover
+ * @param liquidatedCollateralAmount The amount of collateral received by the liiquidator
+ * @param liquidator The address of the liquidator
+ * @param receiveAToken `true` if the liquidators wants to receive the collateral aTokens, `false` if he wants
+ * to receive the underlying collateral asset directly
+ **/
+ event LiquidationCall(
+ address indexed collateralAsset,
+ address indexed debtAsset,
+ address indexed user,
+ uint256 debtToCover,
+ uint256 liquidatedCollateralAmount,
+ address liquidator,
+ bool receiveAToken
+ );
+
+ /**
+ * @dev Emitted when the state of a reserve is updated. NOTE: This event is actually declared
+ * in the ReserveLogic library and emitted in the updateInterestRates() function. Since the function is internal,
+ * the event will actually be fired by the LendingPool contract. The event is therefore replicated here so it
+ * gets added to the LendingPool ABI
+ * @param reserve The address of the underlying asset of the reserve
+ * @param liquidityRate The new liquidity rate
+ * @param stableBorrowRate The new stable borrow rate
+ * @param variableBorrowRate The new variable borrow rate
+ * @param liquidityIndex The new liquidity index
+ * @param variableBorrowIndex The new variable borrow index
+ **/
+ event ReserveDataUpdated(
+ address indexed reserve,
+ uint256 liquidityRate,
+ uint256 stableBorrowRate,
+ uint256 variableBorrowRate,
+ uint256 liquidityIndex,
+ uint256 variableBorrowIndex
+ );
+
+ /**
+ * @dev Deposits an `amount` of underlying asset into the reserve, receiving in return overlying aTokens.
+ * - E.g. User deposits 100 USDC and gets in return 100 aUSDC
+ * @param asset The address of the underlying asset to deposit
+ * @param amount The amount to be deposited
+ * @param onBehalfOf The address that will receive the aTokens, same as msg.sender if the user
+ * wants to receive them on his own wallet, or a different address if the beneficiary of aTokens
+ * is a different wallet
+ * @param referralCode Code used to register the integrator originating the operation, for potential rewards.
+ * 0 if the action is executed directly by the user, without any middle-man
+ **/
+ function deposit(
+ address asset,
+ uint256 amount,
+ address onBehalfOf,
+ uint16 referralCode
+ ) external;
+
+ /**
+ * @dev Withdraws an `amount` of underlying asset from the reserve, burning the equivalent aTokens owned
+ * E.g. User has 100 aUSDC, calls withdraw() and receives 100 USDC, burning the 100 aUSDC
+ * @param asset The address of the underlying asset to withdraw
+ * @param amount The underlying amount to be withdrawn
+ * - Send the value type(uint256).max in order to withdraw the whole aToken balance
+ * @param to Address that will receive the underlying, same as msg.sender if the user
+ * wants to receive it on his own wallet, or a different address if the beneficiary is a
+ * different wallet
+ * @return The final amount withdrawn
+ **/
+ function withdraw(
+ address asset,
+ uint256 amount,
+ address to
+ ) external returns (uint256);
+
+ /**
+ * @dev Allows users to borrow a specific `amount` of the reserve underlying asset, provided that the borrower
+ * already deposited enough collateral, or he was given enough allowance by a credit delegator on the
+ * corresponding debt token (StableDebtToken or VariableDebtToken)
+ * - E.g. User borrows 100 USDC passing as `onBehalfOf` his own address, receiving the 100 USDC in his wallet
+ * and 100 stable/variable debt tokens, depending on the `interestRateMode`
+ * @param asset The address of the underlying asset to borrow
+ * @param amount The amount to be borrowed
+ * @param interestRateMode The interest rate mode at which the user wants to borrow: 1 for Stable, 2 for Variable
+ * @param referralCode Code used to register the integrator originating the operation, for potential rewards.
+ * 0 if the action is executed directly by the user, without any middle-man
+ * @param onBehalfOf Address of the user who will receive the debt. Should be the address of the borrower itself
+ * calling the function if he wants to borrow against his own collateral, or the address of the credit delegator
+ * if he has been given credit delegation allowance
+ **/
+ function borrow(
+ address asset,
+ uint256 amount,
+ uint256 interestRateMode,
+ uint16 referralCode,
+ address onBehalfOf
+ ) external;
+
+ /**
+ * @notice Repays a borrowed `amount` on a specific reserve, burning the equivalent debt tokens owned
+ * - E.g. User repays 100 USDC, burning 100 variable/stable debt tokens of the `onBehalfOf` address
+ * @param asset The address of the borrowed underlying asset previously borrowed
+ * @param amount The amount to repay
+ * - Send the value type(uint256).max in order to repay the whole debt for `asset` on the specific `debtMode`
+ * @param rateMode The interest rate mode at of the debt the user wants to repay: 1 for Stable, 2 for Variable
+ * @param onBehalfOf Address of the user who will get his debt reduced/removed. Should be the address of the
+ * user calling the function if he wants to reduce/remove his own debt, or the address of any other
+ * other borrower whose debt should be removed
+ * @return The final amount repaid
+ **/
+ function repay(
+ address asset,
+ uint256 amount,
+ uint256 rateMode,
+ address onBehalfOf
+ ) external returns (uint256);
+
+ /**
+ * @dev Allows a borrower to swap his debt between stable and variable mode, or viceversa
+ * @param asset The address of the underlying asset borrowed
+ * @param rateMode The rate mode that the user wants to swap to
+ **/
+ function swapBorrowRateMode(address asset, uint256 rateMode) external;
+
+ /**
+ * @dev Rebalances the stable interest rate of a user to the current stable rate defined on the reserve.
+ * - Users can be rebalanced if the following conditions are satisfied:
+ * 1. Usage ratio is above 95%
+ * 2. the current deposit APY is below REBALANCE_UP_THRESHOLD * maxVariableBorrowRate, which means that too much has been
+ * borrowed at a stable rate and depositors are not earning enough
+ * @param asset The address of the underlying asset borrowed
+ * @param user The address of the user to be rebalanced
+ **/
+ function rebalanceStableBorrowRate(address asset, address user) external;
+
+ /**
+ * @dev Allows depositors to enable/disable a specific deposited asset as collateral
+ * @param asset The address of the underlying asset deposited
+ * @param useAsCollateral `true` if the user wants to use the deposit as collateral, `false` otherwise
+ **/
+ function setUserUseReserveAsCollateral(
+ address asset,
+ bool useAsCollateral
+ ) external;
+
+ /**
+ * @dev Function to liquidate a non-healthy position collateral-wise, with Health Factor below 1
+ * - The caller (liquidator) covers `debtToCover` amount of debt of the user getting liquidated, and receives
+ * a proportionally amount of the `collateralAsset` plus a bonus to cover market risk
+ * @param collateralAsset The address of the underlying asset used as collateral, to receive as result of the liquidation
+ * @param debtAsset The address of the underlying borrowed asset to be repaid with the liquidation
+ * @param user The address of the borrower getting liquidated
+ * @param debtToCover The debt amount of borrowed `asset` the liquidator wants to cover
+ * @param receiveAToken `true` if the liquidators wants to receive the collateral aTokens, `false` if he wants
+ * to receive the underlying collateral asset directly
+ **/
+ function liquidationCall(
+ address collateralAsset,
+ address debtAsset,
+ address user,
+ uint256 debtToCover,
+ bool receiveAToken
+ ) external;
+
+ /**
+ * @dev Allows smartcontracts to access the liquidity of the pool within one transaction,
+ * as long as the amount taken plus a fee is returned.
+ * IMPORTANT There are security concerns for developers of flashloan receiver contracts that must be kept into consideration.
+ * For further details please visit https://developers.aave.com
+ * @param receiverAddress The address of the contract receiving the funds, implementing the IFlashLoanReceiver interface
+ * @param assets The addresses of the assets being flash-borrowed
+ * @param amounts The amounts amounts being flash-borrowed
+ * @param modes Types of the debt to open if the flash loan is not returned:
+ * 0 -> Don't open any debt, just revert if funds can't be transferred from the receiver
+ * 1 -> Open debt at stable rate for the value of the amount flash-borrowed to the `onBehalfOf` address
+ * 2 -> Open debt at variable rate for the value of the amount flash-borrowed to the `onBehalfOf` address
+ * @param onBehalfOf The address that will receive the debt in the case of using on `modes` 1 or 2
+ * @param params Variadic packed params to pass to the receiver as extra information
+ * @param referralCode Code used to register the integrator originating the operation, for potential rewards.
+ * 0 if the action is executed directly by the user, without any middle-man
+ **/
+ function flashLoan(
+ address receiverAddress,
+ address[] calldata assets,
+ uint256[] calldata amounts,
+ uint256[] calldata modes,
+ address onBehalfOf,
+ bytes calldata params,
+ uint16 referralCode
+ ) external;
+
+ /**
+ * @dev Returns the user account data across all the reserves
+ * @param user The address of the user
+ * @return totalCollateralETH the total collateral in ETH of the user
+ * @return totalDebtETH the total debt in ETH of the user
+ * @return availableBorrowsETH the borrowing power left of the user
+ * @return currentLiquidationThreshold the liquidation threshold of the user
+ * @return ltv the loan to value of the user
+ * @return healthFactor the current health factor of the user
+ **/
+ function getUserAccountData(
+ address user
+ )
+ external
+ view
+ returns (
+ uint256 totalCollateralETH,
+ uint256 totalDebtETH,
+ uint256 availableBorrowsETH,
+ uint256 currentLiquidationThreshold,
+ uint256 ltv,
+ uint256 healthFactor
+ );
+
+ function initReserve(
+ address reserve,
+ address aTokenAddress,
+ address stableDebtAddress,
+ address variableDebtAddress,
+ address interestRateStrategyAddress
+ ) external;
+
+ function setReserveInterestRateStrategyAddress(
+ address reserve,
+ address rateStrategyAddress
+ ) external;
+
+ function setConfiguration(address reserve, uint256 configuration) external;
+
+ /**
+ * @dev Returns the configuration of the reserve
+ * @param asset The address of the underlying asset of the reserve
+ * @return The configuration of the reserve
+ **/
+ function getConfiguration(
+ address asset
+ ) external view returns (DataTypes.ReserveConfigurationMap memory);
+
+ /**
+ * @dev Returns the configuration of the user across all the reserves
+ * @param user The user address
+ * @return The configuration of the user
+ **/
+ function getUserConfiguration(
+ address user
+ ) external view returns (DataTypes.UserConfigurationMap memory);
+
+ /**
+ * @dev Returns the normalized income normalized income of the reserve
+ * @param asset The address of the underlying asset of the reserve
+ * @return The reserve's normalized income
+ */
+ function getReserveNormalizedIncome(
+ address asset
+ ) external view returns (uint256);
+
+ /**
+ * @dev Returns the normalized variable debt per unit of asset
+ * @param asset The address of the underlying asset of the reserve
+ * @return The reserve normalized variable debt
+ */
+ function getReserveNormalizedVariableDebt(
+ address asset
+ ) external view returns (uint256);
+
+ /**
+ * @dev Returns the state and configuration of the reserve
+ * @param asset The address of the underlying asset of the reserve
+ * @return The state of the reserve
+ **/
+ function getReserveData(
+ address asset
+ ) external view returns (DataTypes.ReserveData memory);
+
+ function finalizeTransfer(
+ address asset,
+ address from,
+ address to,
+ uint256 amount,
+ uint256 balanceFromAfter,
+ uint256 balanceToBefore
+ ) external;
+
+ function getReservesList() external view returns (address[] memory);
+
+ function getAddressesProvider()
+ external
+ view
+ returns (ILendingPoolAddressesProvider);
+
+ function setPause(bool val) external;
+
+ function paused() external view returns (bool);
+}
diff --git a/src/interfaces/ILendingPoolAddressesProvider.sol b/src/interfaces/ILendingPoolAddressesProvider.sol
new file mode 100644
index 0000000..daab118
--- /dev/null
+++ b/src/interfaces/ILendingPoolAddressesProvider.sol
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: agpl-3.0
+pragma solidity ^0.8.0;
+
+/**
+ * @title LendingPoolAddressesProvider contract
+ * @dev Main registry of addresses part of or connected to the protocol, including permissioned roles
+ * - Acting also as factory of proxies and admin of those, so with right to change its implementations
+ * - Owned by the Aave Governance
+ * @author Aave
+ **/
+interface ILendingPoolAddressesProvider {
+ event MarketIdSet(string newMarketId);
+ event LendingPoolUpdated(address indexed newAddress);
+ event ConfigurationAdminUpdated(address indexed newAddress);
+ event EmergencyAdminUpdated(address indexed newAddress);
+ event LendingPoolConfiguratorUpdated(address indexed newAddress);
+ event LendingPoolCollateralManagerUpdated(address indexed newAddress);
+ event PriceOracleUpdated(address indexed newAddress);
+ event LendingRateOracleUpdated(address indexed newAddress);
+ event ProxyCreated(bytes32 id, address indexed newAddress);
+ event AddressSet(bytes32 id, address indexed newAddress, bool hasProxy);
+
+ function getMarketId() external view returns (string memory);
+
+ function setMarketId(string calldata marketId) external;
+
+ function setAddress(bytes32 id, address newAddress) external;
+
+ function setAddressAsProxy(bytes32 id, address impl) external;
+
+ function getAddress(bytes32 id) external view returns (address);
+
+ function getLendingPool() external view returns (address);
+
+ function setLendingPoolImpl(address pool) external;
+
+ function getLendingPoolConfigurator() external view returns (address);
+
+ function setLendingPoolConfiguratorImpl(address configurator) external;
+
+ function getLendingPoolCollateralManager() external view returns (address);
+
+ function setLendingPoolCollateralManager(address manager) external;
+
+ function getPoolAdmin() external view returns (address);
+
+ function setPoolAdmin(address admin) external;
+
+ function getEmergencyAdmin() external view returns (address);
+
+ function setEmergencyAdmin(address admin) external;
+
+ function getPriceOracle() external view returns (address);
+
+ function setPriceOracle(address priceOracle) external;
+
+ function getLendingRateOracle() external view returns (address);
+
+ function setLendingRateOracle(address lendingRateOracle) external;
+}
diff --git a/src/interfaces/IOptionsCompounder.sol b/src/interfaces/IOptionsCompounder.sol
new file mode 100644
index 0000000..ab32ed0
--- /dev/null
+++ b/src/interfaces/IOptionsCompounder.sol
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: BUSL1.1
+
+pragma solidity ^0.8.0;
+
+import {IOptionsToken} from "./IOptionsToken.sol";
+
+/* Errors */
+error OptionsCompounder__NotExerciseContract();
+error OptionsCompounder__TooMuchAssetsLoaned();
+error OptionsCompounder__FlashloanNotProfitableEnough();
+error OptionsCompounder__AssetNotEqualToPaymentToken();
+error OptionsCompounder__FlashloanNotFinished();
+error OptionsCompounder__OnlyStratAllowed();
+error OptionsCompounder__FlashloanNotTriggered();
+error OptionsCompounder__InvalidExchangeType(uint256 exchangeTypes);
+error OptionsCompounder__SlippageGreaterThanMax();
+error OptionsCompounder__ParamHasAddressZero();
+error OptionsCompounder__NotEnoughUnderlyingTokens();
+error OptionsCompounder__WrongMinPaymentAmount();
+
+interface IOptionsCompounder {
+ function harvestOTokens(uint256 amount, address exerciseContract, uint256 minWantAmount) external;
+
+ function getOptionTokenAddress() external returns (address);
+}
diff --git a/src/libraries/DataTypes.sol b/src/libraries/DataTypes.sol
new file mode 100644
index 0000000..8f9354a
--- /dev/null
+++ b/src/libraries/DataTypes.sol
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: agpl-3.0
+pragma solidity ^0.8.0;
+
+library DataTypes {
+ // refer to the whitepaper, section 1.1 basic concepts for a formal description of these properties.
+ struct ReserveData {
+ //stores the reserve configuration
+ ReserveConfigurationMap configuration;
+ //the liquidity index. Expressed in ray
+ uint128 liquidityIndex;
+ //variable borrow index. Expressed in ray
+ uint128 variableBorrowIndex;
+ //the current supply rate. Expressed in ray
+ uint128 currentLiquidityRate;
+ //the current variable borrow rate. Expressed in ray
+ uint128 currentVariableBorrowRate;
+ //the current stable borrow rate. Expressed in ray
+ uint128 currentStableBorrowRate;
+ uint40 lastUpdateTimestamp;
+ //tokens addresses
+ address aTokenAddress;
+ address stableDebtTokenAddress;
+ address variableDebtTokenAddress;
+ //address of the interest rate strategy
+ address interestRateStrategyAddress;
+ //the id of the reserve. Represents the position in the list of the active reserves
+ uint8 id;
+ }
+
+ struct ReserveConfigurationMap {
+ //bit 0-15: LTV
+ //bit 16-31: Liq. threshold
+ //bit 32-47: Liq. bonus
+ //bit 48-55: Decimals
+ //bit 56: Reserve is active
+ //bit 57: reserve is frozen
+ //bit 58: borrowing is enabled
+ //bit 59: stable rate borrowing enabled
+ //bit 60-63: reserved
+ //bit 64-79: reserve factor
+ uint256 data;
+ }
+
+ struct UserConfigurationMap {
+ uint256 data;
+ }
+
+ enum InterestRateMode {
+ NONE,
+ STABLE,
+ VARIABLE
+ }
+}
diff --git a/test/Common.sol b/test/Common.sol
index 3043853..bdba858 100644
--- a/test/Common.sol
+++ b/test/Common.sol
@@ -99,6 +99,7 @@ address constant MODE_VELO_USDC_MODE_PAIR = 0x283bA4E204DFcB6381BCBf2cb5d0e765A2
address constant MODE_VELO_WETH_MODE_PAIR = 0x0fba984c97539B3fb49ACDA6973288D0EFA903DB;
address constant MODE_VELO_ROUTER = 0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45;
address constant MODE_VELO_FACTORY = 0x31832f2a97Fd20664D76Cc421207669b55CE4BC0;
+address constant MODE_ADDRESS_PROVIDER = 0xEDc83309549e36f3c7FD8c2C5C54B4c8e5FA00FC;
contract Common is Test {
IERC20 nativeToken;
@@ -140,6 +141,8 @@ contract Common is Test {
OptionsToken optionsTokenProxy;
DiscountExercise exerciser;
+ uint256 maxUnderlyingAmount;
+
function fixture_setupAccountsAndFees(uint256 fee1, uint256 fee2) public {
/* Setup accounts */
owner = makeAddr("owner");
diff --git a/test/ItBsc_OptionsCompounder.t copy.solNOT b/test/ItBsc_OptionsCompounder.t copy.solNOT
new file mode 100644
index 0000000..ed73482
--- /dev/null
+++ b/test/ItBsc_OptionsCompounder.t copy.solNOT
@@ -0,0 +1,187 @@
+// SPDX-License-Identifier: BUSL-1.1
+
+pragma solidity ^0.8.13;
+
+import "./Common.sol";
+
+import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
+import {MockBalancerTwapOracle} from "../test/mocks/MockBalancerTwapOracle.sol";
+import {CErc20I} from "./strategies/interfaces/CErc20I.sol";
+import {Helper} from "./mocks/HelperFunctions.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {IAToken} from "./strategies/interfaces/IAToken.sol";
+import {IThenaRamRouter} from "vault-v2/interfaces/IThenaRamRouter.sol";
+import {ReaperStrategyGranary, Externals} from "./strategies/ReaperStrategyGranary.sol";
+import {OptionsCompounder} from "../src/OptionsCompounder.sol";
+import {MockedLendingPool} from "../test/mocks/MockedStrategy.sol";
+
+contract OptionsTokenTest is Common {
+ using FixedPointMathLib for uint256;
+
+ /* Variable assignment (depends on chain) */
+ uint256 constant FORK_BLOCK = 36349190;
+ string MAINNET_URL = vm.envString("BSC_RPC_URL_MAINNET");
+
+ /* Contract variables */
+ OptionsCompounder optionsCompounder;
+ ReaperStrategyGranary strategy;
+ Helper helper;
+ IOracle oracle;
+
+ // string public vaultName = "?_? Vault";
+ // string public vaultSymbol = "rf-?_?";
+ // uint256 public vaultTvlCap = type(uint256).max;
+ // address public treasuryAddress = 0xC17DfA7Eb4300871D5f022c107E07F98c750472e;
+
+ // address public optionsTokenAddress =
+ // 0x45c19a3068642B98F5AEf1dEdE023443cd1FbFAd;
+ // address public discountExerciseAddress =
+ // 0x3Fbf4f9cf73162e4e156972540f53Dabe65c2862;
+ // address public bscTokenAdmin = 0x6eB1fF8E939aFBF3086329B2b32725b72095512C;
+
+ function setUp() public {
+ /* Common assignments */
+ ExchangeType exchangeType = ExchangeType.ThenaRam;
+ nativeToken = IERC20(BSC_WBNB);
+ paymentToken = nativeToken;
+ underlyingToken = IERC20(BSC_HBR);
+ wantToken = IERC20(BSC_USDT);
+ thenaRamRouter = IThenaRamRouter(BSC_THENA_ROUTER);
+ swapRouter = ISwapRouter(BSC_PANCAKE_ROUTER);
+ univ3Factory = IUniswapV3Factory(BSC_PANCAKE_FACTORY);
+ addressProvider = BSC_ADDRESS_PROVIDER;
+ // gWantAddress = BSC_GUSDT;
+ // dataProvider = BSC_DATA_PROVIDER;
+ // rewarder = BSC_REWARDER;
+
+ /* Setup network */
+ uint256 bscFork = vm.createFork(MAINNET_URL, FORK_BLOCK);
+ vm.selectFork(bscFork);
+
+ /* Setup accounts */
+ fixture_setupAccountsAndFees(3000, 7000);
+ vm.deal(address(this), AMOUNT * 3);
+ vm.deal(owner, AMOUNT * 3);
+
+ /* Setup roles */
+ address[] memory strategists = new address[](1);
+ // address[] memory multisigRoles = new address[](3);
+ // address[] memory keepers = new address[](1);
+ strategists[0] = strategist;
+ // multisigRoles[0] = management1;
+ // multisigRoles[1] = management2;
+ // multisigRoles[2] = management3;
+ // keepers[0] = keeper;
+
+ /* Variables */
+ SwapProps memory swapProps = fixture_getSwapProps(exchangeType, 200);
+
+ /**
+ * Contract deployments and configurations ***
+ */
+ helper = new Helper();
+
+ /* Reaper deployment and configuration */
+ reaperSwapper = new ReaperSwapper();
+ tmpProxy = new ERC1967Proxy(address(reaperSwapper), "");
+ reaperSwapper = ReaperSwapper(address(tmpProxy));
+ reaperSwapper.initialize(strategists, address(this), address(this));
+
+ /* Configure swapper */
+ fixture_updateSwapperPaths(exchangeType);
+
+ /* Oracle mocks deployment */
+ oracle = fixture_getMockedOracle(exchangeType);
+
+ /* Option token deployment */
+ vm.startPrank(owner);
+ optionsToken = new OptionsToken();
+ tmpProxy = new ERC1967Proxy(address(optionsToken), "");
+ optionsTokenProxy = OptionsToken(address(tmpProxy));
+ optionsTokenProxy.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
+ /* Exercise contract deployment */
+ exerciser = new DiscountExercise(optionsTokenProxy, owner, paymentToken, underlyingToken, oracle, PRICE_MULTIPLIER, treasuries, feeBPS);
+ /* Add exerciser to the list of options */
+ optionsTokenProxy.setExerciseContract(address(exerciser), true);
+
+ /* Strategy deployment */
+ strategy = new ReaperStrategyGranary();
+ tmpProxy = new ERC1967Proxy(address(strategy), "");
+ strategy = ReaperStrategyGranary(address(tmpProxy));
+ optionsCompounder = new OptionsCompounder();
+ tmpProxy = new ERC1967Proxy(address(optionsCompounder), "");
+ optionsCompounder = OptionsCompounder(address(tmpProxy));
+ MockedLendingPool addressProviderAndLendingPoolMock = new MockedLendingPool(address(optionsCompounder));
+ optionsCompounder.initialize(
+ address(optionsTokenProxy), address(addressProviderAndLendingPoolMock), address(reaperSwapper), swapProps, oracle
+ );
+
+ // ReaperVaultV2 vault = new ReaperVaultV2(
+ // address(wantToken),
+ // vaultName,
+ // vaultSymbol,
+ // vaultTvlCap,
+ // treasuryAddress,
+ // strategists,
+ // multisigRoles
+ // );
+ // Externals memory externals = Externals(
+ // address(vault),
+ // address(reaperSwapper),
+ // addressProvider,
+ // dataProvider,
+ // rewarder,
+ // address(optionsCompounder),
+ // address(exerciser)
+ // );
+ // strategy.initialize(
+ // externals,
+ // strategists,
+ // multisigRoles,
+ // keepers,
+ // IAToken(gWantAddress),
+ // targetLtv,
+ // maxLtv
+ // );
+ vm.stopPrank();
+
+ /* Prepare EOA and contracts for tests */
+ helper.wrapEth{value: AMOUNT * 2}(address(nativeToken));
+
+ MinAmountOutData memory minAmountOutData = MinAmountOutData(MinAmountOutKind.Absolute, 0);
+ paymentToken.approve(address(reaperSwapper), AMOUNT);
+ reaperSwapper.swapThenaRam(
+ address(paymentToken), address(underlyingToken), AMOUNT, minAmountOutData, address(thenaRamRouter), type(uint256).max, false
+ );
+ uint256 underlyingBalance = underlyingToken.balanceOf(address(this));
+ paymentToken.transfer(address(addressProviderAndLendingPoolMock), paymentToken.balanceOf(address(this)));
+ underlyingToken.transfer(address(exerciser), underlyingBalance);
+
+ /* Set up contracts */
+ paymentToken.approve(address(exerciser), type(uint256).max);
+ }
+
+ function test_bscFlashloanPositiveScenario(uint256 amount) public {
+ /* Test vectors definition */
+ amount = bound(amount, MIN_OATH_FOR_FUZZING, underlyingToken.balanceOf(address(exerciser)));
+ uint256 minAmount = 5;
+
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(amount, address(optionsCompounder), address(this), optionsTokenProxy, tokenAdmin);
+
+ /* Check balances before compounding */
+ uint256 paymentTokenBalance = paymentToken.balanceOf(address(optionsCompounder));
+
+ // vm.startPrank(address(strategy));
+ /* already approved in fixture_prepareOptionToken */
+ // uint256 _balance = optionsTokenProxy.balanceOf(address(optionsCompounder));
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
+ // vm.stopPrank();
+
+ /* Assertions */
+ assertGt(paymentToken.balanceOf(address(this)), paymentTokenBalance + minAmount, "Gain not greater than 0");
+ assertEq(optionsTokenProxy.balanceOf(address(optionsCompounder)), 0, "Options token balance in compounder is 0");
+ assertEq(paymentToken.balanceOf(address(optionsCompounder)), 0, "Payment token balance in compounder is 0");
+ }
+}
diff --git a/test/ItBscOptionsToken.t.solNOT b/test/ItBsc_OptionsToken.t.solNOT
similarity index 100%
rename from test/ItBscOptionsToken.t.solNOT
rename to test/ItBsc_OptionsToken.t.solNOT
diff --git a/test/ItMode_OptionsCompounder.t.sol b/test/ItMode_OptionsCompounder.t.sol
new file mode 100644
index 0000000..0d44863
--- /dev/null
+++ b/test/ItMode_OptionsCompounder.t.sol
@@ -0,0 +1,296 @@
+// SPDX-License-Identifier: BUSL-1.1
+
+pragma solidity ^0.8.13;
+
+import "./Common.sol";
+
+import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
+import {MockBalancerTwapOracle} from "../test/mocks/MockBalancerTwapOracle.sol";
+// import {CErc20I} from "./strategies/interfaces/CErc20I.sol";
+// import {Helper} from "./mocks/HelperFunctions.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+// import {IAToken} from "./strategies/interfaces/IAToken.sol";
+// import {ReaperStrategyGranary, Externals} from "./strategies/ReaperStrategyGranary.sol";
+import {OptionsCompounder} from "../src/OptionsCompounder.sol";
+// import {MockedLendingPool} from "../test/mocks/MockedStrategy.sol";
+import {ReaperSwapper, MinAmountOutData, MinAmountOutKind, IVeloRouter, ISwapRouter, UniV3SwapData} from "vault-v2/ReaperSwapper.sol";
+
+contract ItModeOptionsCompounder is Common {
+ using FixedPointMathLib for uint256;
+
+ /* Variable assignment (depends on chain) */
+ uint256 constant FORK_BLOCK = 9260950;
+ string MAINNET_URL = vm.envString("MODE_RPC_URL");
+
+ /* Contract variables */
+ OptionsCompounder optionsCompounder;
+ // ReaperStrategyGranary strategy;
+ IOracle oracle;
+
+ // string public vaultName = "?_? Vault";
+ // string public vaultSymbol = "rf-?_?";
+ // uint256 public vaultTvlCap = type(uint256).max;
+ // address public treasuryAddress = 0xC17DfA7Eb4300871D5f022c107E07F98c750472e;
+
+ // address public optionsTokenAddress =
+ // 0x45c19a3068642B98F5AEf1dEdE023443cd1FbFAd;
+ // address public discountExerciseAddress =
+ // 0x3Fbf4f9cf73162e4e156972540f53Dabe65c2862;
+ // address public bscTokenAdmin = 0x6eB1fF8E939aFBF3086329B2b32725b72095512C;
+
+ function setUp() public {
+ /* Common assignments */
+ ExchangeType exchangeType = ExchangeType.VeloSolid;
+ nativeToken = IERC20(MODE_WETH);
+ paymentToken = IERC20(MODE_MODE);
+ underlyingToken = IERC20(MODE_WETH);
+ addressProvider = MODE_ADDRESS_PROVIDER;
+ // wantToken = IERC20(OP_OP);
+ // paymentUnderlyingBpt = OP_OATHV2_ETH_BPT;
+ // paymentWantBpt = OP_WETH_OP_USDC_BPT;
+ // balancerVault = OP_BEETX_VAULT;
+ // swapRouter = ISwapRouter(OP_BEETX_VAULT);
+ // univ3Factory = IUniswapV3Factory(OP_UNIV3_FACTORY);
+ veloRouter = IVeloRouter(MODE_VELO_ROUTER);
+ veloFactory = MODE_VELO_FACTORY;
+
+ /* Setup network */
+ uint256 fork = vm.createFork(MAINNET_URL, FORK_BLOCK);
+ vm.selectFork(fork);
+
+ /* Setup accounts */
+ fixture_setupAccountsAndFees(3000, 7000);
+ vm.deal(address(this), AMOUNT * 3);
+ vm.deal(owner, AMOUNT * 3);
+
+ /* Setup roles */
+ address[] memory strategists = new address[](1);
+ // address[] memory multisigRoles = new address[](3);
+ // address[] memory keepers = new address[](1);
+ strategists[0] = strategist;
+ // multisigRoles[0] = management1;
+ // multisigRoles[1] = management2;
+ // multisigRoles[2] = management3;
+ // keepers[0] = keeper;
+
+ /* Variables */
+
+ /**
+ * Contract deployments and configurations ***
+ */
+
+ /* Reaper deployment and configuration */
+ reaperSwapper = new ReaperSwapper();
+ tmpProxy = new ERC1967Proxy(address(reaperSwapper), "");
+ reaperSwapper = ReaperSwapper(address(tmpProxy));
+ reaperSwapper.initialize(strategists, address(this), address(this));
+
+ /* Configure swapper */
+ fixture_updateSwapperPaths(exchangeType);
+
+ /* Oracle mocks deployment */
+ oracle = fixture_getMockedOracle(exchangeType);
+
+ /* Option token deployment */
+ vm.startPrank(owner);
+ optionsToken = new OptionsToken();
+ tmpProxy = new ERC1967Proxy(address(optionsToken), "");
+ optionsTokenProxy = OptionsToken(address(tmpProxy));
+ optionsTokenProxy.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
+
+ /* Exercise contract deployment */
+ SwapProps memory swapProps = fixture_getSwapProps(exchangeType, 200);
+ uint256 minAmountToTriggerSwap = 1e5;
+ exerciser = new DiscountExercise(
+ optionsTokenProxy,
+ owner,
+ paymentToken,
+ underlyingToken,
+ oracle,
+ PRICE_MULTIPLIER,
+ INSTANT_EXIT_FEE,
+ minAmountToTriggerSwap,
+ treasuries,
+ feeBPS,
+ swapProps
+ );
+ /* Add exerciser to the list of options */
+
+ optionsTokenProxy.setExerciseContract(address(exerciser), true);
+
+ /* Strategy deployment */
+ // strategy = new ReaperStrategyGranary();
+ // tmpProxy = new ERC1967Proxy(address(strategy), "");
+ // strategy = ReaperStrategyGranary(address(tmpProxy));
+ optionsCompounder = new OptionsCompounder();
+ tmpProxy = new ERC1967Proxy(address(optionsCompounder), "");
+ optionsCompounder = OptionsCompounder(address(tmpProxy));
+ // MockedLendingPool addressProviderAndLendingPoolMock = new MockedLendingPool(address(optionsCompounder));
+ console.log("Initializing...");
+ optionsCompounder.initialize(address(optionsTokenProxy), address(addressProvider), address(reaperSwapper), swapProps, oracle);
+
+ vm.stopPrank();
+
+ /* Prepare EOA and contracts for tests */
+ console.log("Dealing payment token..");
+ uint256 maxPaymentAmount = AMOUNT * 2;
+ deal(address(nativeToken), address(this), maxPaymentAmount);
+
+ console.log("Calculation max amount of underlying..");
+ maxUnderlyingAmount = maxPaymentAmount.divWadUp(oracle.getPrice());
+ console.log("Max underlying amount to distribute: ", maxUnderlyingAmount);
+ deal(address(underlyingToken), address(exerciser), maxUnderlyingAmount);
+ underlyingToken.transfer(address(exerciser), maxUnderlyingAmount);
+
+ /* Set up contracts */
+ paymentToken.approve(address(exerciser), type(uint256).max);
+ }
+
+ function test_modeFlashloanPositiveScenario(uint256 amount) public {
+ console.log("test_modeFlashloanPositiveScenario");
+ /* Test vectors definition */
+ amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
+ uint256 minAmount = 5;
+
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(amount, address(optionsCompounder), address(this), optionsTokenProxy, tokenAdmin);
+
+ /* Check balances before compounding */
+ uint256 paymentTokenBalance = paymentToken.balanceOf(address(optionsCompounder));
+
+ // vm.startPrank(address(strategy));
+ /* already approved in fixture_prepareOptionToken */
+ // uint256 _balance = optionsTokenProxy.balanceOf(address(optionsCompounder));
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
+ // vm.stopPrank();
+
+ /* Assertions */
+ assertGt(paymentToken.balanceOf(address(this)), paymentTokenBalance + minAmount, "Gain not greater than 0");
+ assertEq(optionsTokenProxy.balanceOf(address(optionsCompounder)), 0, "Options token balance in compounder is 0");
+ assertEq(paymentToken.balanceOf(address(optionsCompounder)), 0, "Payment token balance in compounder is 0");
+ }
+
+ function test_accessControlFunctionsChecks(address hacker, address randomOption, uint256 amount) public {
+ /* Test vectors definition */
+ amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
+ vm.assume(randomOption != address(0));
+ vm.assume(hacker != owner);
+ address addressProvider = makeAddr("AddressProvider");
+ SwapProps memory swapProps = SwapProps(address(reaperSwapper), address(swapRouter), ExchangeType.UniV3, 200);
+ /* Hacker tries to perform harvest */
+ vm.startPrank(hacker);
+ // vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
+ // optionsCompounder.harvestOTokens(amount, address(exerciser), NON_ZERO_PROFIT);
+
+ /* Hacker tries to manipulate contract configuration */
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.setOptionToken(randomOption);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.setSwapProps(swapProps);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.setOracle(oracle);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.setAddressProvider(addressProvider);
+ vm.stopPrank();
+
+ /* Admin tries to set different option token */
+ vm.startPrank(owner);
+ optionsCompounder.setOptionToken(randomOption);
+ vm.stopPrank();
+ assertEq(address(optionsCompounder.getOptionTokenAddress()), randomOption);
+ }
+
+ function test_flashloanNegativeScenario_highTwapValueAndMultiplier(uint256 amount) public {
+ address strategy = makeAddr("Strategy");
+ /* Test vectors definition */
+ amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
+
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(amount, address(optionsCompounder), strategy, optionsTokenProxy, tokenAdmin);
+
+ /* Decrease option discount in order to make redemption not profitable */
+ /* Notice: Multiplier must be higher than denom because of oracle inaccuracy (initTwap) or just change initTwap */
+ vm.startPrank(owner);
+ exerciser.setMultiplier(9999);
+ vm.stopPrank();
+ /* Increase TWAP price to make flashloan not profitable */
+ // underlyingPaymentMock.setTwapValue(initTwap + ((initTwap * 10) / 100));
+
+ /* Notice: additional protection is in exerciser: Exercise__SlippageTooHigh */
+ vm.expectRevert(bytes4(keccak256("OptionsCompounder__FlashloanNotProfitableEnough()")));
+
+ vm.startPrank(strategy);
+ /* Already approved in fixture_prepareOptionToken */
+ optionsCompounder.harvestOTokens(amount, address(exerciser), NON_ZERO_PROFIT);
+ vm.stopPrank();
+ }
+
+ function test_flashloanNegativeScenario_tooHighMinAmounOfWantExpected(uint256 amount, uint256 minAmountOfPayment) public {
+ address strategy = makeAddr("Strategy");
+ /* Test vectors definition */
+ amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
+ /* Decrease option discount in order to make redemption not profitable */
+ /* Notice: Multiplier must be higher than denom because of oracle inaccuracy (initTwap) or just change initTwap */
+ vm.startPrank(owner);
+ exerciser.setMultiplier(9000);
+ vm.stopPrank();
+ /* Too high expectation of profit - together with high exerciser multiplier makes flashloan not profitable */
+ uint256 paymentAmount = exerciser.getPaymentAmount(amount);
+
+ minAmountOfPayment = bound(minAmountOfPayment, 1e22, UINT256_MAX - paymentAmount);
+
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(amount, address(optionsCompounder), address(this), optionsTokenProxy, tokenAdmin);
+
+ /* Notice: additional protection is in exerciser: Exercise__SlippageTooHigh */
+ vm.expectRevert(bytes4(keccak256("OptionsCompounder__FlashloanNotProfitableEnough()")));
+ /* Already approved in fixture_prepareOptionToken */
+ // vm.startPrank(strategy);
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmountOfPayment);
+ // vm.stopPrank();
+ }
+
+ function test_callExecuteOperationWithoutFlashloanTrigger(uint256 amount, address executor) public {
+ address strategy = makeAddr("Strategy");
+ /* Test vectors definition */
+ amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
+
+ /* Argument creation */
+ address[] memory assets = new address[](1);
+ assets[0] = address(paymentToken);
+ uint256[] memory amounts = new uint256[](1);
+ amounts[0] = DiscountExercise(exerciser).getPaymentAmount(amount);
+ uint256[] memory premiums = new uint256[](1);
+ bytes memory params;
+
+ vm.startPrank(executor);
+ /* Assertion */
+ vm.expectRevert(bytes4(keccak256("OptionsCompounder__FlashloanNotTriggered()")));
+ optionsCompounder.executeOperation(assets, amounts, premiums, msg.sender, params);
+ vm.stopPrank();
+ }
+
+ function test_harvestCallWithWrongExerciseContract(uint256 amount, address fuzzedExerciser) public {
+ address strategy = makeAddr("Strategy");
+ /* Test vectors definition */
+ amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
+
+ vm.assume(fuzzedExerciser != address(exerciser));
+
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(amount, address(optionsCompounder), strategy, optionsTokenProxy, tokenAdmin);
+
+ vm.startPrank(strategy);
+ /* Assertion */
+ vm.expectRevert(bytes4(keccak256("OptionsCompounder__NotExerciseContract()")));
+ optionsCompounder.harvestOTokens(amount, fuzzedExerciser, NON_ZERO_PROFIT);
+ vm.stopPrank();
+ }
+}
diff --git a/test/ItModeOptionsToken.t.sol b/test/ItMode_OptionsToken.t.sol
similarity index 98%
rename from test/ItModeOptionsToken.t.sol
rename to test/ItMode_OptionsToken.t.sol
index fea2358..25f4ce0 100644
--- a/test/ItModeOptionsToken.t.sol
+++ b/test/ItMode_OptionsToken.t.sol
@@ -24,7 +24,6 @@ contract ModeOptionsTokenTest is Test, Common {
uint256 constant FORK_BLOCK = 9260950;
string MAINNET_URL = vm.envString("MODE_RPC_URL");
uint256 constant ORACLE_INIT_TWAP_VALUE = 1e19;
- uint128 constant ORACLE_MIN_PRICE_DENOM = 10000;
address[] feeRecipients_;
uint256[] feeBPS_;
@@ -89,7 +88,7 @@ contract ModeOptionsTokenTest is Test, Common {
balancerTwapOracle = new MockBalancerTwapOracle(tokens);
console.log(tokens[0], tokens[1]);
- oracle = new ThenaOracle(IThenaPair(MODE_VELO_WETH_MODE_PAIR), address(underlyingToken), owner, ORACLE_SECS, ORACLE_MIN_PRICE_DENOM);
+ oracle = new ThenaOracle(IThenaPair(MODE_VELO_WETH_MODE_PAIR), address(underlyingToken), owner, ORACLE_SECS, uint128(ORACLE_MIN_PRICE_DENOM));
exerciser = new DiscountExercise(
optionsToken,
owner,
diff --git a/test/ItOp_OptionsCompounder.t.solNOT b/test/ItOp_OptionsCompounder.t.solNOT
new file mode 100644
index 0000000..471def8
--- /dev/null
+++ b/test/ItOp_OptionsCompounder.t.solNOT
@@ -0,0 +1,415 @@
+// SPDX-License-Identifier: BUSL-1.1
+
+pragma solidity ^0.8.13;
+
+import "./Common.sol";
+
+// import {ReaperStrategySonne} from "./strategies/ReaperStrategySonne.sol";
+// import {ReaperStrategyGranary} from "./strategies/ReaperStrategyGranary.sol";
+import {CErc20I} from "./strategies/interfaces/CErc20I.sol";
+import {OptionsToken} from "optionsToken/src/OptionsToken.sol";
+import {Helper} from "./mocks/HelperFunctions.sol";
+import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
+import {IERC20} from "oz/token/ERC20/IERC20.sol";
+import {IAToken} from "./strategies/interfaces/IAToken.sol";
+import {IOracle} from "optionsToken/src/interfaces/IOracle.sol";
+import {OptionsCompounder} from "../src/OptionsCompounder.sol";
+import {MockedLendingPool} from "../test/mocks/MockedStrategy.sol";
+
+contract OptionsTokenTest is Common {
+ using FixedPointMathLib for uint256;
+
+ /* Variable assignment (depends on chain) */
+ uint256 FORK_BLOCK = 115072010;
+ string MAINNET_URL = vm.envString("OP_RPC_URL_MAINNET");
+
+ /* Contract variables */
+ OptionsCompounder optionsCompounder;
+ IOracle underlyingPaymentOracle;
+ UniswapV3Oracle paymentWantOracle;
+ address strategy = makeAddr("strategy");
+ Helper helper;
+ uint256 initTwap;
+ IOracle oracle;
+
+ /* Functions */
+ function setUp() public {
+ /* Common assignments */
+ ExchangeType exchangeType = ExchangeType.Bal;
+ nativeToken = IERC20(OP_WETH);
+ paymentToken = nativeToken;
+ underlyingToken = IERC20(OP_OATHV2);
+ wantToken = IERC20(OP_OP);
+ paymentUnderlyingBpt = OP_OATHV2_ETH_BPT;
+ paymentWantBpt = OP_WETH_OP_USDC_BPT;
+ balancerVault = OP_BEETX_VAULT;
+ swapRouter = ISwapRouter(OP_BEETX_VAULT);
+ univ3Factory = IUniswapV3Factory(OP_UNIV3_FACTORY);
+
+ /* Setup network */
+ uint256 optimismFork = vm.createFork(MAINNET_URL, FORK_BLOCK);
+ vm.selectFork(optimismFork);
+
+ /* Setup accounts */
+ fixture_setupAccountsAndFees(2500, 7500);
+ vm.deal(address(this), AMOUNT * 3);
+ vm.deal(owner, AMOUNT * 3);
+
+ /* Setup roles */
+ address[] memory strategists = new address[](1);
+ // address[] memory multisigRoles = new address[](3);
+ // address[] memory keepers = new address[](1);
+ strategists[0] = strategist;
+ // multisigRoles[0] = management1;
+ // multisigRoles[1] = management2;
+ // multisigRoles[2] = management3;
+ // keepers[0] = keeper;
+
+ /* Variables */
+ SwapProps memory swapProps = fixture_getSwapProps(exchangeType, 500);
+
+ /**** Contract deployments and configurations ****/
+ helper = new Helper();
+
+ /* Reaper deployment and configuration */
+ reaperSwapper = new ReaperSwapper();
+ tmpProxy = new ERC1967Proxy(address(reaperSwapper), "");
+ reaperSwapper = ReaperSwapper(address(tmpProxy));
+ reaperSwapper.initialize(strategists, address(this), address(this));
+
+ /* Configure swapper */
+ fixture_updateSwapperPaths(exchangeType);
+
+ /* Oracle mocks deployment */
+ oracle = fixture_getMockedOracle(exchangeType);
+
+ /* Option token deployment */
+ vm.startPrank(owner);
+ optionsToken = new OptionsToken();
+ tmpProxy = new ERC1967Proxy(address(optionsToken), "");
+ optionsTokenProxy = OptionsToken(address(tmpProxy));
+ optionsTokenProxy.initialize(
+ "TIT Call Option Token",
+ "oTIT",
+ tokenAdmin
+ );
+ /* Exercise contract deployment */
+ exerciser = new DiscountExercise(
+ optionsTokenProxy,
+ owner,
+ paymentToken,
+ underlyingToken,
+ oracle,
+ PRICE_MULTIPLIER,
+ treasuries,
+ feeBPS
+ );
+ /* Add exerciser to the list of options */
+ optionsTokenProxy.setExerciseContract(address(exerciser), true);
+
+ /* Deployment */
+ optionsCompounder = new OptionsCompounder();
+ tmpProxy = new ERC1967Proxy(address(optionsCompounder), "");
+ optionsCompounder = OptionsCompounder(address(tmpProxy));
+ MockedLendingPool addressProviderAndLendingPoolMock = new MockedLendingPool(
+ address(optionsCompounder)
+ );
+ optionsCompounder.initialize(
+ address(optionsTokenProxy),
+ address(addressProviderAndLendingPoolMock),
+ address(reaperSwapper),
+ swapProps,
+ oracle
+ );
+ vm.stopPrank();
+
+ /* Prepare EOA and contracts for tests */
+ helper.wrapEth{value: AMOUNT * 2}(address(nativeToken));
+
+ MinAmountOutData memory minAmountOutData = MinAmountOutData(
+ MinAmountOutKind.Absolute,
+ 0
+ );
+ paymentToken.approve(address(reaperSwapper), AMOUNT);
+ reaperSwapper.swapBal(
+ address(paymentToken),
+ address(underlyingToken),
+ AMOUNT,
+ minAmountOutData,
+ OP_BEETX_VAULT
+ );
+ uint256 underlyingBalance = underlyingToken.balanceOf(address(this));
+ paymentToken.transfer(
+ address(addressProviderAndLendingPoolMock),
+ paymentToken.balanceOf(address(this))
+ );
+ initTwap = AMOUNT.mulDivUp(1e18, underlyingBalance); // Inaccurate solution but it is not crucial to have real accurate oracle price
+ underlyingToken.transfer(address(exerciser), underlyingBalance);
+
+ /* Set up contracts - added here to calculate initTwap after swap */
+ underlyingPaymentMock.setTwapValue(initTwap);
+ paymentToken.approve(address(exerciser), type(uint256).max);
+ }
+
+ function test_flashloanPositiveScenario(uint256 amount) public {
+ /* Test vectors definition */
+ amount = bound(
+ amount,
+ MIN_OATH_FOR_FUZZING,
+ underlyingToken.balanceOf(address(exerciser))
+ );
+ uint256 minAmount = 200;
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(
+ amount,
+ address(optionsCompounder),
+ strategy,
+ optionsTokenProxy,
+ tokenAdmin
+ );
+
+ /* Check balances before compounding */
+ uint256 paymentTokenBalance = paymentToken.balanceOf(
+ address(optionsCompounder)
+ );
+
+ vm.startPrank(strategy);
+ /* already approved in fixture_prepareOptionToken */
+ optionsCompounder.harvestOTokens(
+ amount,
+ address(exerciser),
+ NON_ZERO_PROFIT
+ );
+ vm.stopPrank();
+
+ /* Assertions */
+ assertGt(
+ paymentToken.balanceOf(strategy),
+ paymentTokenBalance + minAmount,
+ "Gain not greater than 0"
+ );
+ assertEq(
+ optionsTokenProxy.balanceOf(address(optionsCompounder)),
+ 0,
+ "Options token balance in compounder is 0"
+ );
+ assertEq(
+ paymentToken.balanceOf(address(optionsCompounder)),
+ 0,
+ "Payment token balance in compounder is 0"
+ );
+ }
+
+ function test_accessControlFunctionsChecks(
+ address hacker,
+ address randomOption,
+ uint256 amount
+ ) public {
+ /* Test vectors definition */
+ amount = bound(
+ amount,
+ MIN_OATH_FOR_FUZZING,
+ underlyingToken.balanceOf(address(exerciser))
+ );
+ vm.assume(randomOption != address(0));
+ vm.assume(hacker != owner);
+ SwapProps memory swapProps = SwapProps(
+ address(swapRouter),
+ ExchangeType.UniV3,
+ 200
+ );
+ /* Hacker tries to perform harvest */
+ vm.startPrank(hacker);
+ // vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
+ // optionsCompounder.harvestOTokens(amount, address(exerciser), NON_ZERO_PROFIT);
+
+ /* Hacker tries to manipulate contract configuration */
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.setOptionToken(randomOption);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.configSwapProps(swapProps);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.setOracle(oracle);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.setAddressProvider(strategy);
+ vm.stopPrank();
+
+ /* Admin tries to set different option token */
+ vm.startPrank(owner);
+ optionsCompounder.setOptionToken(randomOption);
+ vm.stopPrank();
+ assertEq(
+ address(optionsCompounder.getOptionTokenAddress()),
+ randomOption
+ );
+ }
+
+ function test_flashloanNegativeScenario_highTwapValueAndMultiplier(
+ uint256 amount
+ ) public {
+ /* Test vectors definition */
+ amount = bound(
+ amount,
+ MIN_OATH_FOR_FUZZING,
+ 1000 * MIN_OATH_FOR_FUZZING
+ );
+
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(
+ amount,
+ address(optionsCompounder),
+ strategy,
+ optionsTokenProxy,
+ tokenAdmin
+ );
+
+ /* Decrease option discount in order to make redemption not profitable */
+ /* Notice: Multiplier must be higher than denom because of oracle inaccuracy (initTwap) or just change initTwap */
+ vm.startPrank(owner);
+ exerciser.setMultiplier(9999);
+ vm.stopPrank();
+ /* Increase TWAP price to make flashloan not profitable */
+ underlyingPaymentMock.setTwapValue(initTwap + ((initTwap * 10) / 100));
+
+ /* Notice: additional protection is in exerciser: Exercise__SlippageTooHigh */
+ vm.expectRevert(
+ bytes4(
+ keccak256("OptionsCompounder__FlashloanNotProfitableEnough()")
+ )
+ );
+
+ vm.startPrank(strategy);
+ /* Already approved in fixture_prepareOptionToken */
+ optionsCompounder.harvestOTokens(
+ amount,
+ address(exerciser),
+ NON_ZERO_PROFIT
+ );
+ vm.stopPrank();
+ }
+
+ function test_flashloanNegativeScenario_tooHighMinAmounOfWantExpected(
+ uint256 amount,
+ uint256 minAmountOfPayment
+ ) public {
+ /* Test vectors definition */
+ amount = bound(
+ amount,
+ MIN_OATH_FOR_FUZZING,
+ underlyingToken.balanceOf(address(exerciser))
+ );
+ /* Decrease option discount in order to make redemption not profitable */
+ /* Notice: Multiplier must be higher than denom because of oracle inaccuracy (initTwap) or just change initTwap */
+ vm.startPrank(owner);
+ exerciser.setMultiplier(9000);
+ vm.stopPrank();
+ /* Too high expectation of profit - together with high exerciser multiplier makes flashloan not profitable */
+ uint256 paymentAmount = exerciser.getPaymentAmount(amount);
+
+ minAmountOfPayment = bound(
+ minAmountOfPayment,
+ 1e22,
+ UINT256_MAX - paymentAmount
+ );
+
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(
+ amount,
+ address(optionsCompounder),
+ address(this),
+ optionsTokenProxy,
+ tokenAdmin
+ );
+
+ /* Notice: additional protection is in exerciser: Exercise__SlippageTooHigh */
+ vm.expectRevert(
+ bytes4(
+ keccak256("OptionsCompounder__FlashloanNotProfitableEnough()")
+ )
+ );
+ /* Already approved in fixture_prepareOptionToken */
+ // vm.startPrank(strategy);
+ optionsCompounder.harvestOTokens(
+ amount,
+ address(exerciser),
+ minAmountOfPayment
+ );
+ // vm.stopPrank();
+ }
+
+ function test_callExecuteOperationWithoutFlashloanTrigger(
+ uint256 amount,
+ address executor
+ ) public {
+ /* Test vectors definition */
+ amount = bound(
+ amount,
+ MIN_OATH_FOR_FUZZING,
+ underlyingToken.balanceOf(address(exerciser))
+ );
+
+ /* Argument creation */
+ address[] memory assets = new address[](1);
+ assets[0] = address(paymentToken);
+ uint256[] memory amounts = new uint256[](1);
+ amounts[0] = DiscountExercise(exerciser).getPaymentAmount(amount);
+ uint256[] memory premiums = new uint256[](1);
+ bytes memory params;
+
+ vm.startPrank(executor);
+ /* Assertion */
+ vm.expectRevert(
+ bytes4(keccak256("OptionsCompounder__FlashloanNotTriggered()"))
+ );
+ optionsCompounder.executeOperation(
+ assets,
+ amounts,
+ premiums,
+ msg.sender,
+ params
+ );
+ vm.stopPrank();
+ }
+
+ function test_harvestCallWithWrongExerciseContract(
+ uint256 amount,
+ address fuzzedExerciser
+ ) public {
+ /* Test vectors definition */
+ amount = bound(
+ amount,
+ MIN_OATH_FOR_FUZZING,
+ underlyingToken.balanceOf(address(exerciser))
+ );
+
+ vm.assume(fuzzedExerciser != address(exerciser));
+
+ /* Prepare option tokens - distribute them to the specified strategy
+ and approve for spending */
+ fixture_prepareOptionToken(
+ amount,
+ address(optionsCompounder),
+ strategy,
+ optionsTokenProxy,
+ tokenAdmin
+ );
+
+ vm.startPrank(strategy);
+ /* Assertion */
+ vm.expectRevert(
+ bytes4(keccak256("OptionsCompounder__NotExerciseContract()"))
+ );
+ optionsCompounder.harvestOTokens(
+ amount,
+ fuzzedExerciser,
+ NON_ZERO_PROFIT
+ );
+ vm.stopPrank();
+ }
+}
diff --git a/test/ItOpOptionsToken.t.solNOT b/test/ItOp_OptionsToken.t.solNOT
similarity index 100%
rename from test/ItOpOptionsToken.t.solNOT
rename to test/ItOp_OptionsToken.t.solNOT
From 6d8c60a3692e4a6614722defd12adfa10ea2a305 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Wed, 3 Jul 2024 15:09:12 +0200
Subject: [PATCH 55/64] Changes for deployment
---
hardhat.config.ts | 3 +-
scripts/config.json | 23 +++++++
scripts/deploy.ts | 100 ++++++++++++++++++++++++----
src/OptionsCompounder.sol | 2 +-
test/ItMode_OptionsCompounder.t.sol | 12 ----
5 files changed, 112 insertions(+), 28 deletions(-)
create mode 100644 scripts/config.json
diff --git a/hardhat.config.ts b/hardhat.config.ts
index f54029d..5a48c4b 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -11,6 +11,7 @@ import { config as dotenvConfig } from "dotenv";
// import "@nomiclabs/hardhat-ethers";
import "@nomicfoundation/hardhat-verify";
+import "hardhat-contract-sizer";
dotenvConfig();
@@ -20,7 +21,7 @@ const config: HardhatUserConfig = {
solidity: {
version: "0.8.19",
settings: {
- optimizer: { enabled: true, runs: 9999 }
+ optimizer: { enabled: true, runs: 200 }
}
},
sourcify: {
diff --git a/scripts/config.json b/scripts/config.json
new file mode 100644
index 0000000..3bbd012
--- /dev/null
+++ b/scripts/config.json
@@ -0,0 +1,23 @@
+{
+ "VERSION": "1.0.0",
+ "OWNER": "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
+ "ORACLE_SOURCE": "0x0fba984c97539B3fb49ACDA6973288D0EFA903DB",
+ "ORACLE_SECS": 1800,
+ "ORACLE_MIN_PRICE": 10000000,
+ "OT_NAME": "ICL Call Option Token",
+ "OT_SYMBOL": "oICL",
+ "OT_PAYMENT_TOKEN": "0xDfc7C877a950e49D2610114102175A06C2e3167a",
+ "OT_UNDERLYING_TOKEN": "0x4200000000000000000000000000000000000006",
+ "OT_TOKEN_ADMIN": "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
+ "MULTIPLIER": 5000,
+ "FEE_RECIPIENTS": [
+ "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
+ "0xd93E25A8B1D645b15f8c736E1419b4819Ff9e6EF"
+ ],
+ "FEE_BPS": [
+ 1000,
+ 9000
+ ],
+ "INSTANT_EXIT_FEE": 1000,
+ "MIN_AMOUNT_TO_TRIGGER_SWAP": 1e15
+}
\ No newline at end of file
diff --git a/scripts/deploy.ts b/scripts/deploy.ts
index ba79ada..e111007 100644
--- a/scripts/deploy.ts
+++ b/scripts/deploy.ts
@@ -1,13 +1,47 @@
import { ethers, upgrades } from "hardhat";
import { getImplementationAddress } from '@openzeppelin/upgrades-core';
+import config from './config.json';
async function main() {
- const thenaPair = process.env.ORACLE_SOURCE;
- const targetToken = process.env.OT_UNDERLYING_TOKEN;
- const owner = process.env.OWNER;
- const secs = process.env.ORACLE_SECS;
- const minPrice = process.env.ORACLE_MIN_PRICE;
-
+ const thenaPair = config.ORACLE_SOURCE;
+ const targetToken = config.OT_UNDERLYING_TOKEN;
+ const owner = config.OWNER;
+ const secs = config.ORACLE_SECS;
+ const minPrice = config.ORACLE_MIN_PRICE;
+
+ const strategists: string[] = [
+ "0x1E71AEE6081f62053123140aacC7a06021D77348", // bongo
+ "0x81876677843D00a7D792E1617459aC2E93202576", // degenicus
+ "0x4C3490dF15edFa178333445ce568EC6D99b5d71c", // eidolon
+ "0xb26cd6633db6b0c9ae919049c1437271ae496d15", // zokunei
+ "0x60BC5E0440C867eEb4CbcE84bB1123fad2b262B1", // goober
+ ];
+ const multisigRoles: string[] = [
+ "0x90c75c11735A7eeeD06E993fC7aF6838d86A1Ba7", // super admin
+ "0xC17DfA7Eb4300871D5f022c107E07F98c750472e", // admin
+ "0x30d65Ae22BBbe44208Dd8964DDE31Def0Fc1B9ee", // guardian
+ ];
+
+ const veloRouter = "0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45";
+ const addressProvider = "0xEDc83309549e36f3c7FD8c2C5C54B4c8e5FA00FC";
+
+ // ReaperSwapper
+ const Swapper = await ethers.getContractFactory("ReaperSwapper");
+ const initializerArguments = [
+ strategists,
+ multisigRoles[2],
+ multisigRoles[0],
+ ];
+ const swapper = await upgrades.deployProxy(
+ Swapper,
+ initializerArguments,
+ { kind: "uups", timeout: 0 },
+ );
+
+ await swapper.waitForDeployment();
+ console.log("Swapper deployed to:", await swapper.getAddress());
+
+ //Oracle
const oracle = await ethers.deployContract(
"ThenaOracle",
[thenaPair, targetToken, owner, secs, minPrice]
@@ -16,9 +50,9 @@ async function main() {
console.log(`Oracle deployed to: ${await oracle.getAddress()}`);
// OptionsToken
- const tokenName = process.env.OT_NAME;
- const symbol = process.env.OT_SYMBOL;
- const tokenAdmin = process.env.OT_TOKEN_ADMIN;
+ const tokenName = config.OT_NAME;
+ const symbol = config.OT_SYMBOL;
+ const tokenAdmin = config.OT_TOKEN_ADMIN;
const OptionsToken = await ethers.getContractFactory("OptionsToken");
const optionsToken = await upgrades.deployProxy(
OptionsToken,
@@ -31,10 +65,19 @@ async function main() {
console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsToken.getAddress())}`);
// Exercise
- const paymentToken = process.env.OT_PAYMENT_TOKEN;
- const multiplier = process.env.MULTIPLIER;
- const feeRecipients = String(process.env.FEE_RECIPIENTS).split(",");
- const feeBps = String(process.env.FEE_BPS).split(",");
+ const paymentToken = config.OT_PAYMENT_TOKEN;
+ const multiplier = config.MULTIPLIER;
+ const feeRecipients = String(config.FEE_RECIPIENTS).split(",");
+ const feeBps = String(config.FEE_BPS).split(",");
+ const instantExitFee = config.INSTANT_EXIT_FEE;
+ const minAmountToTriggerSwap = config.MIN_AMOUNT_TO_TRIGGER_SWAP;
+
+ const swapProps = {
+ swapper: await swapper.getAddress(),
+ exchangeAddress: veloRouter,
+ exchangeTypes: 2, /* VeloSolid */
+ maxSwapSlippage: 500 /* 5% */
+ };
const exercise = await ethers.deployContract(
"DiscountExercise",
@@ -45,8 +88,11 @@ async function main() {
targetToken,
await oracle.getAddress(),
multiplier,
+ instantExitFee,
+ minAmountToTriggerSwap,
feeRecipients,
- feeBps
+ feeBps,
+ swapProps
]
);
await exercise.waitForDeployment();
@@ -56,6 +102,32 @@ async function main() {
const exerciseAddress = await exercise.getAddress();
await optionsToken.setExerciseContract(exerciseAddress, true);
console.log(`Exercise set to: ${exerciseAddress}`);
+
+ //OptionsCompounder
+ // const swapper = "0xe9A46021305B67Dbd6b35a4277FF0207E29320C2";
+ // const oracle = "0xd36917a9e3a3bAE753b9503B251640703500aAFE";//await ethers.getContractAt("IOracle", "0xd36917a9e3a3bAE753b9503B251640703500aAFE");
+ // const optionsToken = "0xe3F95Bc8Fd7b54C4D7a464A44b47E0e7d17F3940";
+
+ const OptionsCompounder = await ethers.getContractFactory("OptionsCompounder");
+
+ // console.log("Proxy deployment: ", [optionsToken, addressProvider, swapper, swapProps, oracle]);
+ console.log("Proxy deployment: ", [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress()]);
+
+ const optionsCompounder = await upgrades.deployProxy(
+ OptionsCompounder,
+ [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress()],
+ { kind: "uups", initializer: "initialize" }
+ );
+
+ // const optionsCompounder = await upgrades.deployProxy(
+ // OptionsCompounder,
+ // [optionsToken, addressProvider, swapper, swapProps, oracle],
+ // { kind: "uups", initializer: "initialize" }
+ // );
+
+ await optionsCompounder.waitForDeployment();
+ console.log(`OptionsCompounder deployed to: ${await optionsCompounder.getAddress()}`);
+ console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsCompounder.getAddress())}`);
}
// We recommend this pattern to be able to use async/await everywhere
diff --git a/src/OptionsCompounder.sol b/src/OptionsCompounder.sol
index f85c3ba..a388ad7 100644
--- a/src/OptionsCompounder.sol
+++ b/src/OptionsCompounder.sol
@@ -59,6 +59,7 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
/* Modifiers */
+ /// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
_disableInitializers();
}
@@ -290,7 +291,6 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
}
}
-
/**
* @dev This function must be called prior to upgrading the implementation.
* It's required to wait UPGRADE_TIMELOCK seconds before executing the upgrade.
diff --git a/test/ItMode_OptionsCompounder.t.sol b/test/ItMode_OptionsCompounder.t.sol
index 0d44863..a4584ea 100644
--- a/test/ItMode_OptionsCompounder.t.sol
+++ b/test/ItMode_OptionsCompounder.t.sol
@@ -27,17 +27,6 @@ contract ItModeOptionsCompounder is Common {
// ReaperStrategyGranary strategy;
IOracle oracle;
- // string public vaultName = "?_? Vault";
- // string public vaultSymbol = "rf-?_?";
- // uint256 public vaultTvlCap = type(uint256).max;
- // address public treasuryAddress = 0xC17DfA7Eb4300871D5f022c107E07F98c750472e;
-
- // address public optionsTokenAddress =
- // 0x45c19a3068642B98F5AEf1dEdE023443cd1FbFAd;
- // address public discountExerciseAddress =
- // 0x3Fbf4f9cf73162e4e156972540f53Dabe65c2862;
- // address public bscTokenAdmin = 0x6eB1fF8E939aFBF3086329B2b32725b72095512C;
-
function setUp() public {
/* Common assignments */
ExchangeType exchangeType = ExchangeType.VeloSolid;
@@ -161,7 +150,6 @@ contract ItModeOptionsCompounder is Common {
// vm.startPrank(address(strategy));
/* already approved in fixture_prepareOptionToken */
- // uint256 _balance = optionsTokenProxy.balanceOf(address(optionsCompounder));
optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
// vm.stopPrank();
From 8d795ca12ad190aaaac3812e6d74693a6b85b62d Mon Sep 17 00:00:00 2001
From: xRave110
Date: Fri, 5 Jul 2024 08:30:43 +0200
Subject: [PATCH 56/64] Changes after review
---
.gitmodules | 30 +++++----
src/OptionsToken.sol | 5 ++
src/exercise/DiscountExercise.sol | 7 +-
src/helpers/SwapHelper.sol | 2 +-
src/oracles/AlgebraOracle.sol | 3 +-
src/oracles/ThenaOracle.sol | 3 +-
src/oracles/UniswapV3Oracle.sol | 3 +-
test/OptionsToken.t.sol | 107 +++++++++++++++++++++++++++++-
test/UniswapV3Oracle.t.sol | 89 +++++--------------------
test/mocks/MockUniswapPool.sol | 7 +-
10 files changed, 159 insertions(+), 97 deletions(-)
diff --git a/.gitmodules b/.gitmodules
index f324d8b..75229a8 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,21 +1,23 @@
[submodule "lib/forge-std"]
- path = lib/forge-std
- url = https://github.com/foundry-rs/forge-std
+path = lib/forge-std
+url = https://github.com/foundry-rs/forge-std
[submodule "lib/solmate"]
- path = lib/solmate
- url = https://github.com/rari-capital/solmate
+path = lib/solmate
+url = https://github.com/rari-capital/solmate
[submodule "lib/create3-factory"]
- path = lib/create3-factory
- url = https://github.com/zeframlou/create3-factory
+path = lib/create3-factory
+url = https://github.com/zeframlou/create3-factory
[submodule "lib/v3-core"]
- path = lib/v3-core
- url = https://github.com/uniswap/v3-core
+path = lib/v3-core
+url = https://github.com/uniswap/v3-core
[submodule "lib/openzeppelin-contracts-upgradeable"]
- path = lib/openzeppelin-contracts-upgradeable
- url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable
+path = lib/openzeppelin-contracts-upgradeable
+url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable
+branch = v4.9.6
[submodule "lib/openzeppelin-contracts"]
- path = lib/openzeppelin-contracts
- url = https://github.com/OpenZeppelin/openzeppelin-contracts
+path = lib/openzeppelin-contracts
+url = https://github.com/OpenZeppelin/openzeppelin-contracts
+branch = v4.9.6
[submodule "lib/vault-v2"]
- path = lib/vault-v2
- url = https://github.com/Byte-Masons/vault-v2
+path = lib/vault-v2
+url = https://github.com/Byte-Masons/vault-v2
\ No newline at end of file
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 42603f8..a19e8ee 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -61,6 +61,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
__UUPSUpgradeable_init();
__ERC20_init(name_, symbol_);
__Ownable_init();
+ __Pausable_init();
tokenAdmin = tokenAdmin_;
_clearUpgradeCooldown();
@@ -96,6 +97,10 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/// @param recipient The recipient of the reward
/// @param option The address of the Exercise contract with the redemption logic
/// @param params Extra parameters to be used by the exercise function
+ /// @return paymentAmount token amount paid for exercising
+ /// @return data0 address data to return by different exerciser contracts
+ /// @return data1 integer data to return by different exerciser contracts
+ /// @return data2 additional integer data to return by different exerciser contracts
function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
virtual
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index b8c556f..1643a47 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -36,6 +36,7 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
error Exercise__InvalidOracle();
error Exercise__FeeGreaterThanMax();
error Exercise__AmountOutIsZero();
+ error Exercise__ZapMultiplierIncompatible();
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
@@ -212,14 +213,16 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
returns (uint256 paymentAmount, address, uint256, uint256)
{
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
- uint256 discountedUnderlying = amount.mulDivUp(multiplier, BPS_DENOM);
+ if (multiplier >= BPS_DENOM) revert Exercise__ZapMultiplierIncompatible();
+ uint256 discountedUnderlying = amount.mulDivUp(BPS_DENOM - multiplier, BPS_DENOM);
uint256 fee = discountedUnderlying.mulDivUp(instantExitFee, BPS_DENOM);
uint256 underlyingAmount = discountedUnderlying - fee;
+ uint256 balance = underlyingToken.balanceOf(address(this));
// Fee amount in underlying tokens charged for zapping
feeAmount += fee;
- if (feeAmount >= minAmountToTriggerSwap) {
+ if (feeAmount >= minAmountToTriggerSwap && balance >= (feeAmount + underlyingAmount)) {
uint256 minAmountOut = _getMinAmountOutData(feeAmount, swapProps.maxSwapSlippage, address(oracle));
/* Approve the underlying token to make swap */
underlyingToken.approve(swapProps.swapper, feeAmount);
diff --git a/src/helpers/SwapHelper.sol b/src/helpers/SwapHelper.sol
index 4bc7d2a..87c7af5 100644
--- a/src/helpers/SwapHelper.sol
+++ b/src/helpers/SwapHelper.sol
@@ -91,7 +91,7 @@ abstract contract SwapHelper {
/* Get price from oracle */
uint256 price = IOracle(_oracle).getPrice();
/* Deduct slippage amount from predicted amount */
- minAmountOut = ((_amountIn.mulWadUp(price)) - (((_amountIn.mulWadUp(price)) * _maxSlippage) / BPS_DENOM));
+ minAmountOut = (_amountIn.mulWadUp(price) * (BPS_DENOM - _maxSlippage)) / BPS_DENOM;
return minAmountOut;
}
diff --git a/src/oracles/AlgebraOracle.sol b/src/oracles/AlgebraOracle.sol
index 349e8aa..79ecf89 100644
--- a/src/oracles/AlgebraOracle.sol
+++ b/src/oracles/AlgebraOracle.sol
@@ -5,7 +5,7 @@ import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IOracle} from "../interfaces/IOracle.sol";
-
+import {ERC20} from "solmate/tokens/ERC20.sol";
import {IAlgebraPool} from "../interfaces/IAlgebraPool.sol";
import {TickMath} from "v3-core/libraries/TickMath.sol";
import {FullMath} from "v3-core/libraries/FullMath.sol";
@@ -70,6 +70,7 @@ contract AlgebraOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
constructor(IAlgebraPool algebraPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_) Owned(owner_) {
+ if (ERC20(algebraPool_.token0()).decimals() != 18 || ERC20(algebraPool_.token1()).decimals() != 18) revert AlgebraOracle__InvalidParams();
if (algebraPool_.token0() != token && algebraPool_.token1() != token) revert AlgebraOracle__InvalidParams();
if (secs_ < MIN_SECS) revert AlgebraOracle__InvalidWindow();
algebraPool = algebraPool_;
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
index 0b2e8a1..ab43a82 100644
--- a/src/oracles/ThenaOracle.sol
+++ b/src/oracles/ThenaOracle.sol
@@ -3,7 +3,7 @@ pragma solidity ^0.8.13;
import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
-
+import {ERC20} from "solmate/tokens/ERC20.sol";
import {IOracle} from "../interfaces/IOracle.sol";
import {IThenaPair} from "../interfaces/IThenaPair.sol";
@@ -64,6 +64,7 @@ contract ThenaOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
constructor(IThenaPair thenaPair_, address token, address owner_, uint56 secs_, uint128 minPrice_) Owned(owner_) {
+ if (ERC20(thenaPair_.token0()).decimals() != 18 || ERC20(thenaPair_.token1()).decimals() != 18) revert ThenaOracle__InvalidParams();
if (thenaPair_.stable()) revert ThenaOracle__StablePairsUnsupported();
if (thenaPair_.token0() != token && thenaPair_.token1() != token) revert ThenaOracle__InvalidParams();
if (secs_ < MIN_SECS) revert ThenaOracle__InvalidWindow();
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index 8c93e6d..cbad255 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -5,7 +5,7 @@ import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IOracle} from "../interfaces/IOracle.sol";
-
+import {ERC20} from "solmate/tokens/ERC20.sol";
import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
import {TickMath} from "v3-core/libraries/TickMath.sol";
import {FullMath} from "v3-core/libraries/FullMath.sol";
@@ -69,6 +69,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// -----------------------------------------------------------------------
constructor(IUniswapV3Pool uniswapPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_) Owned(owner_) {
+ if (ERC20(uniswapPool_.token0()).decimals() != 18 || ERC20(uniswapPool_.token1()).decimals() != 18) revert UniswapOracle__InvalidParams(); //|| ERC20(uniswapPool_.token1()).decimals() != 18
if (uniswapPool_.token0() != token && uniswapPool_.token1() != token) revert UniswapOracle__InvalidParams();
if (secs_ < MIN_SECS) revert UniswapOracle__InvalidWindow();
uniswapPool = uniswapPool_;
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index e6ccdfb..d09b8b7 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -28,6 +28,7 @@ contract OptionsTokenTest is Test {
uint256 constant ORACLE_MIN_PRICE_DENOM = 10000;
uint256 constant MAX_SUPPLY = 1e27; // the max supply of the options token & the underlying token
uint256 constant INSTANT_EXIT_FEE = 500;
+ uint256 constant BPS_DENOM = 10_000;
address owner;
address tokenAdmin;
@@ -125,7 +126,7 @@ contract OptionsTokenTest is Test {
assertEqDecimal(optionsToken.balanceOf(address(this)), amount, 18);
}
- function test_discountExerciseHappyPath(uint256 amount) public {
+ function test_redeemPositiveScenario(uint256 amount) public {
amount = bound(amount, 100, MAX_SUPPLY);
address recipient = makeAddr("recipient");
@@ -155,7 +156,7 @@ contract OptionsTokenTest is Test {
assertEqDecimal(expectedPaymentAmount, paymentAmount, 18, "exercise returned wrong value");
}
- function test_instantExitExerciseHappyPath(uint256 amount) public {
+ function test_zapPositiveScenario(uint256 amount) public {
amount = bound(amount, 1e16, 1e22);
address recipient = makeAddr("recipient");
@@ -465,4 +466,106 @@ contract OptionsTokenTest is Test {
vm.prank(owner);
exerciser.setMinAmountToTriggerSwap(1e16);
}
+
+ function test_zapWhenExerciseUnderfunded(uint256 amount) public {
+ amount = bound(amount, 1e16, 1e22);
+ address recipient = makeAddr("recipient");
+
+ uint256 remainingAmount = 4e15;
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
+ uint256 expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+ console.log("discountedUnderlying:", discountedUnderlying);
+ console.log("expectedUnderlyingAmount:", expectedUnderlyingAmount);
+ uint256 calcPaymentAmount = exerciser.getPaymentAmount(amount);
+ uint256 totalFee = calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ uint256 fee1 = totalFee.mulDivDown(feeBPS_[0], 10_000);
+ uint256 fee2 = totalFee - fee1;
+ console.log("expected paymentFee1: ", fee1);
+ console.log("expected paymentFee2: ", fee2);
+
+ // Simulate sitiation when exerciser has less underlying amount than expected from exercise action
+ vm.prank(address(exerciser));
+ // IERC20(underlyingToken).transfer(address(this), 1e27 - (discountedUnderlying - 1));
+ IERC20(underlyingToken).transfer(address(this), 1e27 - remainingAmount);
+ console.log("Balance of exerciser:", IERC20(underlyingToken).balanceOf(address(exerciser)));
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were transferred
+ assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
+
+ assertEq(paymentToken.balanceOf(feeRecipients_[0]), 0, "fee recipient 1 didn't receive payment tokens");
+ assertEq(paymentToken.balanceOf(feeRecipients_[1]), 0, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
+ assertEq(IERC20(underlyingToken).balanceOf(recipient), remainingAmount, "Recipient got wrong amount of underlying token");
+ }
+
+ function test_modeZapRedeemWithDifferentMultipliers(uint256 multiplier) public {
+ multiplier = bound(multiplier, BPS_DENOM / 10, BPS_DENOM - 1);
+ // multiplier = 8000;
+ uint256 amount = 1000e18;
+
+ address recipient = makeAddr("recipient");
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), 2 * amount);
+
+ vm.prank(owner);
+ exerciser.setMultiplier(multiplier);
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE) * 4;
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ uint256 underlyingBalance =
+ IERC20(underlyingToken).balanceOf(address(this)) + paymentToken.balanceOf(address(this)).divWadUp(oracle.getPrice());
+ console.log("Price: ", oracle.getPrice());
+ console.log("Balance before: ", underlyingBalance);
+ console.log("Underlying amount before: ", IERC20(underlyingToken).balanceOf(address(this)));
+
+ // exercise options tokens -> redeem
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ uint256 underlyingBalanceAfterRedeem =
+ IERC20(underlyingToken).balanceOf(address(this)) + paymentToken.balanceOf(address(this)).divWadUp(oracle.getPrice());
+ console.log("Price: ", oracle.getPrice());
+ console.log("Underlying amount after redeem: ", IERC20(underlyingToken).balanceOf(address(this)));
+ console.log("Balance after redeem: ", underlyingBalanceAfterRedeem);
+
+ assertGt(underlyingBalanceAfterRedeem, underlyingBalance, "Redeem not profitable");
+ uint256 redeemProfit = underlyingBalanceAfterRedeem - underlyingBalance;
+
+ // exercise options tokens -> zap
+ params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ (paymentAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ uint256 underlyingBalanceAfterZap =
+ IERC20(underlyingToken).balanceOf(address(this)) + paymentToken.balanceOf(address(this)).divWadUp(oracle.getPrice());
+ console.log("Price: ", oracle.getPrice());
+ console.log("Underlying amount after zap: ", IERC20(underlyingToken).balanceOf(address(this)));
+ console.log("Balance after zap: ", underlyingBalanceAfterZap);
+
+ assertGt(underlyingBalanceAfterZap, underlyingBalanceAfterRedeem, "Zap not profitable");
+ uint256 zapProfit = underlyingBalanceAfterZap - underlyingBalanceAfterRedeem;
+
+ assertGt(redeemProfit, zapProfit, "Profits from zap is greater than profits from redeem");
+
+ assertEq(redeemProfit - redeemProfit.mulDivUp(INSTANT_EXIT_FEE, BPS_DENOM), zapProfit, "Zap profit is different than redeem profit minus fee");
+ }
}
diff --git a/test/UniswapV3Oracle.t.sol b/test/UniswapV3Oracle.t.sol
index 794f103..afec76f 100644
--- a/test/UniswapV3Oracle.t.sol
+++ b/test/UniswapV3Oracle.t.sol
@@ -47,9 +47,11 @@ contract UniswapOracleTest is Test {
Params _default;
function setUp() public {
+ opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
mockV3Pool = new MockUniswapPool();
mockV3Pool.setCumulatives(sampleCumulatives);
mockV3Pool.setToken0(OP_ADDRESS);
+ mockV3Pool.setToken1(WETH_ADDRESS);
_default = Params(IUniswapV3Pool(WETH_OP_POOL_ADDRESS), OP_ADDRESS, address(this), 30 minutes, 0, 1000);
swapRouter = ISwapRouter(SWAP_ROUTER_ADDRESS);
@@ -59,33 +61,15 @@ contract UniswapOracleTest is Test {
/// Mock tests
/// ----------------------------------------------------------------------
- function test_PriceToken0() public {
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- mockV3Pool,
- OP_ADDRESS,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ function test_PriceTokens() public {
+ UniswapV3Oracle oracle0 = new UniswapV3Oracle(mockV3Pool, OP_ADDRESS, _default.owner, _default.secs, _default.ago, _default.minPrice);
+ UniswapV3Oracle oracle1 = new UniswapV3Oracle(mockV3Pool, WETH_ADDRESS, _default.owner, _default.secs, _default.ago, _default.minPrice);
- uint256 price = oracle.getPrice();
- assertEq(price, expectedPriceToken0);
- }
-
- function test_PriceToken1() public {
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- mockV3Pool,
- address(0),
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
-
- uint256 price = oracle.getPrice();
- uint256 expectedPriceToken1 = price = FixedPointMathLib.divWadUp(1e18, price);
- assertEq(price, expectedPriceToken1);
+ uint256 price0 = oracle0.getPrice();
+ uint256 price1 = oracle1.getPrice();
+ assertEq(price0, expectedPriceToken0);
+ uint256 expectedPriceToken1 = FixedPointMathLib.divWadDown(1e18, price0);
+ assertEq(price1, expectedPriceToken1); //precision
}
/// ----------------------------------------------------------------------
@@ -93,16 +77,7 @@ contract UniswapOracleTest is Test {
/// ----------------------------------------------------------------------
function test_priceWithinAcceptableRange() public {
- opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
-
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ UniswapV3Oracle oracle = new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, _default.minPrice);
uint256 oraclePrice = oracle.getPrice();
@@ -112,16 +87,7 @@ contract UniswapOracleTest is Test {
}
function test_revertMinPrice() public {
- opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
-
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ UniswapV3Oracle oracle = new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, _default.minPrice);
skip(_default.secs);
@@ -143,14 +109,8 @@ contract UniswapOracleTest is Test {
swapRouter.exactInputSingle(paramsIn);
// deploy a new oracle with a minPrice that is too high
- UniswapV3Oracle oracleMinPrice = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- uint128(price)
- );
+ UniswapV3Oracle oracleMinPrice =
+ new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, uint128(price));
skip(_default.secs);
@@ -159,16 +119,7 @@ contract UniswapOracleTest is Test {
}
function test_singleBlockManipulation() public {
- opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
-
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ UniswapV3Oracle oracle = new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, _default.minPrice);
address manipulator = makeAddr("manipulator");
deal(OP_ADDRESS, manipulator, 1000000 ether);
@@ -200,16 +151,8 @@ contract UniswapOracleTest is Test {
function test_priceManipulation(uint256 skipTime) public {
skipTime = bound(skipTime, 1, _default.secs);
- opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ UniswapV3Oracle oracle = new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, _default.minPrice);
address manipulator = makeAddr("manipulator");
deal(OP_ADDRESS, manipulator, 1000000 ether);
diff --git a/test/mocks/MockUniswapPool.sol b/test/mocks/MockUniswapPool.sol
index 42cd0ba..9ef5cd4 100644
--- a/test/mocks/MockUniswapPool.sol
+++ b/test/mocks/MockUniswapPool.sol
@@ -6,6 +6,7 @@ import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
contract MockUniswapPool is IUniswapV3Pool {
int56[2] cumulatives;
address public token0;
+ address public token1;
function setCumulatives(int56[2] memory value) external {
cumulatives = value;
@@ -15,6 +16,10 @@ contract MockUniswapPool is IUniswapV3Pool {
token0 = value;
}
+ function setToken1(address value) external {
+ token1 = value;
+ }
+
function observe(uint32[] calldata secondsAgos)
external
view
@@ -39,8 +44,6 @@ contract MockUniswapPool is IUniswapV3Pool {
function factory() external view override returns (address) {}
- function token1() external view override returns (address) {}
-
function fee() external view override returns (uint24) {}
function tickSpacing() external view override returns (int24) {}
From 70887207c11685b91819f1c5560cc140cfd743cb Mon Sep 17 00:00:00 2001
From: xRave110
Date: Fri, 5 Jul 2024 12:53:50 +0200
Subject: [PATCH 57/64] Checklist update
---
README.md | 34 +++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 9548b78..60a8568 100644
--- a/README.md
+++ b/README.md
@@ -52,4 +52,36 @@ forge build
```
forge test
-```
\ No newline at end of file
+```
+
+### Checklist
+
+#### Internal Audit Checklist
+
+- [x] All functionality that touches funds can be paused
+- [ ] Pause function called by 2/7 Guardian
+- [ ] Guardian has 7 members globally dispersed
+- [x] Arithmetic errors
+- [x] Re-entrancy
+- [x] Flashloans
+- [x] Access Control
+- [x] Unchecked External Calls
+- [ ] Account abstraction/multicall issues
+- [x] USE SLITHER
+
+#### Pre-deployment Checklist
+
+- [x] Contracts pass all tests
+- [x] Contracts deployed to testnet
+- [x] Does this deployment have access to funds, either directly or indirectly (zappers, leveragers, etc.)?
+
+Minimum security if Yes:
+
+- [x] Internal Audit (not the author, minimum 1x Junior review + minimum 1x Senior review)
+- [x] External Audit (impact scope)
+
+Action items in support of deployment:
+
+- [ ] Minimum two people present for deployment
+- [ ] All developers who worked on and reviewed the contract should be included in the readme
+- [ ] Documentation of deployment procedure if non-standard (i.e. if multiple scripts are necessary)
\ No newline at end of file
From 07d538f1ec3d96018bf6f0107864f731236962a7 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Fri, 5 Jul 2024 08:30:43 +0200
Subject: [PATCH 58/64] Changes after review
---
.gitmodules | 30 ++++----
README.md | 35 ++++++++-
src/OptionsCompounder.sol | 78 +++++++++++++------
src/OptionsToken.sol | 5 ++
src/exercise/DiscountExercise.sol | 7 +-
src/helpers/SwapHelper.sol | 2 +-
src/interfaces/IOptionsCompounder.sol | 1 +
src/oracles/AlgebraOracle.sol | 3 +-
src/oracles/ThenaOracle.sol | 3 +-
src/oracles/UniswapV3Oracle.sol | 3 +-
test/ItMode_OptionsCompounder.t.sol | 25 +-----
test/OptionsToken.t.sol | 107 +++++++++++++++++++++++++-
test/UniswapV3Oracle.t.sol | 89 ++++-----------------
test/mocks/MockUniswapPool.sol | 7 +-
14 files changed, 249 insertions(+), 146 deletions(-)
diff --git a/.gitmodules b/.gitmodules
index f324d8b..75229a8 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,21 +1,23 @@
[submodule "lib/forge-std"]
- path = lib/forge-std
- url = https://github.com/foundry-rs/forge-std
+path = lib/forge-std
+url = https://github.com/foundry-rs/forge-std
[submodule "lib/solmate"]
- path = lib/solmate
- url = https://github.com/rari-capital/solmate
+path = lib/solmate
+url = https://github.com/rari-capital/solmate
[submodule "lib/create3-factory"]
- path = lib/create3-factory
- url = https://github.com/zeframlou/create3-factory
+path = lib/create3-factory
+url = https://github.com/zeframlou/create3-factory
[submodule "lib/v3-core"]
- path = lib/v3-core
- url = https://github.com/uniswap/v3-core
+path = lib/v3-core
+url = https://github.com/uniswap/v3-core
[submodule "lib/openzeppelin-contracts-upgradeable"]
- path = lib/openzeppelin-contracts-upgradeable
- url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable
+path = lib/openzeppelin-contracts-upgradeable
+url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable
+branch = v4.9.6
[submodule "lib/openzeppelin-contracts"]
- path = lib/openzeppelin-contracts
- url = https://github.com/OpenZeppelin/openzeppelin-contracts
+path = lib/openzeppelin-contracts
+url = https://github.com/OpenZeppelin/openzeppelin-contracts
+branch = v4.9.6
[submodule "lib/vault-v2"]
- path = lib/vault-v2
- url = https://github.com/Byte-Masons/vault-v2
+path = lib/vault-v2
+url = https://github.com/Byte-Masons/vault-v2
\ No newline at end of file
diff --git a/README.md b/README.md
index 9548b78..1b4b719 100644
--- a/README.md
+++ b/README.md
@@ -52,4 +52,37 @@ forge build
```
forge test
-```
\ No newline at end of file
+```
+
+### Checklist
+
+#### Internal Audit Checklist
+
+- [x] All functionality that touches funds can be paused
+- [ ] Pause function called by 2/7 Guardian
+- [ ] Guardian has 7 members globally dispersed
+- [x] Arithmetic errors
+- [x] Re-entrancy
+- [x] Flashloans
+- [x] Access Control
+- [x] Unchecked External Calls
+- [ ] Account abstraction/multicall issues
+- [x] USE SLITHER
+
+#### Pre-deployment Checklist
+
+- [x] Contracts pass all tests
+- [x] Contracts deployed to testnet
+- [x] Does this deployment have access to funds, either directly or indirectly (zappers, leveragers, etc.)?
+
+Minimum security if Yes:
+
+- [x] Internal Audit (not the author, minimum 1x Junior review + minimum 1x Senior review)
+- [x] External Audit (impact scope)
+
+Action items in support of deployment:
+
+- [ ] Minimum two people present for deployment
+- [x] All developers who worked on and reviewed the contract should be included in the readme
+ Developers involved: Eidolon (reviewer), Zokunei (reviewer), Goober (reviewer), Beirao (reviewer), xRave110 (change owner)
+- [ ] Documentation of deployment procedure if non-standard (i.e. if multiple scripts are necessary)
\ No newline at end of file
diff --git a/src/OptionsCompounder.sol b/src/OptionsCompounder.sol
index a388ad7..27efa81 100644
--- a/src/OptionsCompounder.sol
+++ b/src/OptionsCompounder.sol
@@ -7,16 +7,15 @@ import {IFlashLoanReceiver} from "./interfaces/IFlashLoanReceiver.sol";
import {ILendingPoolAddressesProvider} from "./interfaces/ILendingPoolAddressesProvider.sol";
import {ILendingPool} from "./interfaces/ILendingPool.sol";
import {IOracle} from "./interfaces/IOracle.sol";
-import "./interfaces/IOptionsCompounder.sol";
import {DiscountExerciseParams, DiscountExercise} from "./exercise/DiscountExercise.sol";
import {ReaperAccessControl} from "vault-v2/mixins/ReaperAccessControl.sol";
-// import {ISwapperSwaps, MinAmountOutData, MinAmountOutKind} from "vault-v2/ReaperSwapper.sol";
import {IERC20} from "oz/token/ERC20/IERC20.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {OwnableUpgradeable} from "oz-upgradeable/access/OwnableUpgradeable.sol";
import {UUPSUpgradeable} from "oz-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import {SafeERC20} from "oz/token/ERC20/utils/SafeERC20.sol";
import {ExchangeType, SwapProps, SwapHelper} from "./helpers/SwapHelper.sol";
+import "./interfaces/IOptionsCompounder.sol";
/**
* @title Consumes options tokens, exercise them with flashloaned asset and converts gain to strategy want token
@@ -37,8 +36,7 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
}
/* Constants */
- uint8 constant MIN_NR_OF_FLASHLOAN_ASSETS = 1;
- uint256 constant PERCENTAGE = 10000;
+ uint8 constant MAX_NR_OF_FLASHLOAN_ASSETS = 1;
uint256 public constant UPGRADE_TIMELOCK = 48 hours;
uint256 public constant FUTURE_NEXT_PROPOSAL_TIME = 365 days * 100;
@@ -78,12 +76,12 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
initializer
{
__Ownable_init();
- setOptionToken(_optionsToken);
+ _setOptionsToken(_optionsToken);
_setSwapProps(_swapProps);
- setOracle(_oracle);
- setSwapper(_swapper);
+ _setOracle(_oracle);
+ _setSwapper(_swapper);
flashloanFinished = true;
- setAddressProvider(_addressProvider);
+ _setAddressProvider(_addressProvider);
__UUPSUpgradeable_init();
_clearUpgradeCooldown();
}
@@ -94,34 +92,50 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
/**
* @notice Sets option token address
* @dev Can be executed only by admins
- * @param _optionToken - address of option token contract
+ * @param _optionsToken - address of option token contract
*/
- function setOptionToken(address _optionToken) public onlyOwner {
- if (_optionToken == address(0)) {
+ function setOptionsToken(address _optionsToken) external onlyOwner {
+ _setOptionsToken(_optionsToken);
+ }
+
+ function _setOptionsToken(address _optionsToken) internal {
+ if (_optionsToken == address(0)) {
revert OptionsCompounder__ParamHasAddressZero();
}
- optionsToken = IOptionsToken(_optionToken);
+ optionsToken = IOptionsToken(_optionsToken);
}
function setSwapProps(SwapProps memory _swapProps) external override onlyOwner {
_setSwapProps(_swapProps);
}
- function setOracle(IOracle _oracle) public onlyOwner {
+ function setOracle(IOracle _oracle) external onlyOwner {
+ _setOracle(_oracle);
+ }
+
+ function _setOracle(IOracle _oracle) internal {
if (address(_oracle) == address(0)) {
revert OptionsCompounder__ParamHasAddressZero();
}
oracle = _oracle;
}
- function setSwapper(address _swapper) public onlyOwner {
+ function setSwapper(address _swapper) external onlyOwner {
+ _setSwapper(_swapper);
+ }
+
+ function _setSwapper(address _swapper) internal {
if (_swapper == address(0)) {
revert OptionsCompounder__ParamHasAddressZero();
}
swapper = _swapper;
}
- function setAddressProvider(address _addressProvider) public onlyOwner {
+ function setAddressProvider(address _addressProvider) external onlyOwner {
+ _setAddressProvider(_addressProvider);
+ }
+
+ function _setAddressProvider(address _addressProvider) internal {
if (_addressProvider == address(0)) {
revert OptionsCompounder__ParamHasAddressZero();
}
@@ -195,21 +209,22 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
* @param amounts - list of amounts flash loaned (only one amount allowed in this case)
* @param premiums - list of premiums for flash loaned assets (only one premium allowed in this case)
* @param params - encoded data about options amount, exercise contract address, initial balance and minimal want amount
+ * @return bool - value that returns whether flashloan operation went well
*/
function executeOperation(address[] calldata assets, uint256[] calldata amounts, uint256[] calldata premiums, address, bytes calldata params)
external
override
returns (bool)
{
- if (flashloanFinished != false) {
+ if (flashloanFinished != false || msg.sender != address(lendingPool)) {
revert OptionsCompounder__FlashloanNotTriggered();
}
- if (assets.length > MIN_NR_OF_FLASHLOAN_ASSETS || amounts.length > MIN_NR_OF_FLASHLOAN_ASSETS || premiums.length > MIN_NR_OF_FLASHLOAN_ASSETS)
+ if (assets.length > MAX_NR_OF_FLASHLOAN_ASSETS || amounts.length > MAX_NR_OF_FLASHLOAN_ASSETS || premiums.length > MAX_NR_OF_FLASHLOAN_ASSETS)
{
revert OptionsCompounder__TooMuchAssetsLoaned();
}
/* Later the gain can be local variable */
- exerciseOptionAndReturnDebt(assets[0], amounts[0], premiums[0], params);
+ _exerciseOptionAndReturnDebt(assets[0], amounts[0], premiums[0], params);
flashloanFinished = true;
return true;
}
@@ -223,10 +238,10 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
* @param premium - list of premiums for flash loaned assets (only one premium allowed in this case)
* @param params - encoded data about options amount, exercise contract address, initial balance and minimal want amount
*/
- function exerciseOptionAndReturnDebt(address asset, uint256 amount, uint256 premium, bytes calldata params) private {
+ function _exerciseOptionAndReturnDebt(address asset, uint256 amount, uint256 premium, bytes calldata params) private {
FlashloanParams memory flashloanParams = abi.decode(params, (FlashloanParams));
uint256 assetBalance = 0;
- uint256 minAmountOut;
+ uint256 minAmountOut = 0;
/* Get underlying and payment tokens to make sure there is no change between
harvest and excersice */
@@ -242,18 +257,22 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
{
IERC20(address(optionsToken)).safeTransferFrom(flashloanParams.sender, address(this), flashloanParams.optionsAmount);
bytes memory exerciseParams =
- abi.encode(DiscountExerciseParams({maxPaymentAmount: amount, deadline: type(uint256).max, isInstantExit: false}));
+ abi.encode(DiscountExerciseParams({maxPaymentAmount: amount, deadline: block.timestamp, isInstantExit: false}));
if (underlyingToken.balanceOf(flashloanParams.exerciserContract) < flashloanParams.optionsAmount) {
revert OptionsCompounder__NotEnoughUnderlyingTokens();
}
- /* Approve spending option token */
+ /* Approve spending payment token */
IERC20(asset).approve(flashloanParams.exerciserContract, amount);
/* Exercise in order to get underlying token */
optionsToken.exercise(flashloanParams.optionsAmount, address(this), flashloanParams.exerciserContract, exerciseParams);
+
+ /* Approve spending payment token to 0 for safety */
+ IERC20(asset).approve(flashloanParams.exerciserContract, 0);
}
{
uint256 balanceOfUnderlyingToken = 0;
+ uint256 swapAmountOut = 0;
balanceOfUnderlyingToken = underlyingToken.balanceOf(address(this));
minAmountOut = _getMinAmountOutData(balanceOfUnderlyingToken, swapProps.maxSwapSlippage, address(oracle));
@@ -261,7 +280,16 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
underlyingToken.approve(swapper, balanceOfUnderlyingToken);
/* Swap underlying token to payment token (asset) */
- _generalSwap(swapProps.exchangeTypes, address(underlyingToken), asset, balanceOfUnderlyingToken, minAmountOut, swapProps.exchangeAddress);
+ swapAmountOut = _generalSwap(
+ swapProps.exchangeTypes, address(underlyingToken), asset, balanceOfUnderlyingToken, minAmountOut, swapProps.exchangeAddress
+ );
+
+ if (swapAmountOut == 0) {
+ revert OptionsCompounder__AmountOutIsZero();
+ }
+
+ /* Approve the underlying token to 0 for safety */
+ underlyingToken.approve(swapper, 0);
}
/* Calculate profit and revert if it is not profitable */
@@ -274,14 +302,14 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
if (
(
(assetBalance < flashloanParams.initialBalance)
- || (assetBalance - flashloanParams.initialBalance) <= (totalAmountToPay + flashloanParams.minPaymentAmount)
+ || (assetBalance - flashloanParams.initialBalance) < (totalAmountToPay + flashloanParams.minPaymentAmount)
)
) {
revert OptionsCompounder__FlashloanNotProfitableEnough();
}
/* Protected against underflows by statement above */
- gainInPaymentToken = assetBalance - totalAmountToPay;
+ gainInPaymentToken = assetBalance - totalAmountToPay - flashloanParams.initialBalance;
/* Approve lending pool to spend borrowed tokens + premium */
IERC20(asset).approve(address(lendingPool), totalAmountToPay);
diff --git a/src/OptionsToken.sol b/src/OptionsToken.sol
index 42603f8..a19e8ee 100644
--- a/src/OptionsToken.sol
+++ b/src/OptionsToken.sol
@@ -61,6 +61,7 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
__UUPSUpgradeable_init();
__ERC20_init(name_, symbol_);
__Ownable_init();
+ __Pausable_init();
tokenAdmin = tokenAdmin_;
_clearUpgradeCooldown();
@@ -96,6 +97,10 @@ contract OptionsToken is IOptionsToken, ERC20Upgradeable, OwnableUpgradeable, UU
/// @param recipient The recipient of the reward
/// @param option The address of the Exercise contract with the redemption logic
/// @param params Extra parameters to be used by the exercise function
+ /// @return paymentAmount token amount paid for exercising
+ /// @return data0 address data to return by different exerciser contracts
+ /// @return data1 integer data to return by different exerciser contracts
+ /// @return data2 additional integer data to return by different exerciser contracts
function exercise(uint256 amount, address recipient, address option, bytes calldata params)
external
virtual
diff --git a/src/exercise/DiscountExercise.sol b/src/exercise/DiscountExercise.sol
index b8c556f..1643a47 100644
--- a/src/exercise/DiscountExercise.sol
+++ b/src/exercise/DiscountExercise.sol
@@ -36,6 +36,7 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
error Exercise__InvalidOracle();
error Exercise__FeeGreaterThanMax();
error Exercise__AmountOutIsZero();
+ error Exercise__ZapMultiplierIncompatible();
/// Events
event Exercised(address indexed sender, address indexed recipient, uint256 amount, uint256 paymentAmount);
@@ -212,14 +213,16 @@ contract DiscountExercise is BaseExercise, SwapHelper, Pausable {
returns (uint256 paymentAmount, address, uint256, uint256)
{
if (block.timestamp > params.deadline) revert Exercise__PastDeadline();
- uint256 discountedUnderlying = amount.mulDivUp(multiplier, BPS_DENOM);
+ if (multiplier >= BPS_DENOM) revert Exercise__ZapMultiplierIncompatible();
+ uint256 discountedUnderlying = amount.mulDivUp(BPS_DENOM - multiplier, BPS_DENOM);
uint256 fee = discountedUnderlying.mulDivUp(instantExitFee, BPS_DENOM);
uint256 underlyingAmount = discountedUnderlying - fee;
+ uint256 balance = underlyingToken.balanceOf(address(this));
// Fee amount in underlying tokens charged for zapping
feeAmount += fee;
- if (feeAmount >= minAmountToTriggerSwap) {
+ if (feeAmount >= minAmountToTriggerSwap && balance >= (feeAmount + underlyingAmount)) {
uint256 minAmountOut = _getMinAmountOutData(feeAmount, swapProps.maxSwapSlippage, address(oracle));
/* Approve the underlying token to make swap */
underlyingToken.approve(swapProps.swapper, feeAmount);
diff --git a/src/helpers/SwapHelper.sol b/src/helpers/SwapHelper.sol
index 4bc7d2a..87c7af5 100644
--- a/src/helpers/SwapHelper.sol
+++ b/src/helpers/SwapHelper.sol
@@ -91,7 +91,7 @@ abstract contract SwapHelper {
/* Get price from oracle */
uint256 price = IOracle(_oracle).getPrice();
/* Deduct slippage amount from predicted amount */
- minAmountOut = ((_amountIn.mulWadUp(price)) - (((_amountIn.mulWadUp(price)) * _maxSlippage) / BPS_DENOM));
+ minAmountOut = (_amountIn.mulWadUp(price) * (BPS_DENOM - _maxSlippage)) / BPS_DENOM;
return minAmountOut;
}
diff --git a/src/interfaces/IOptionsCompounder.sol b/src/interfaces/IOptionsCompounder.sol
index ab32ed0..916f3a9 100644
--- a/src/interfaces/IOptionsCompounder.sol
+++ b/src/interfaces/IOptionsCompounder.sol
@@ -17,6 +17,7 @@ error OptionsCompounder__SlippageGreaterThanMax();
error OptionsCompounder__ParamHasAddressZero();
error OptionsCompounder__NotEnoughUnderlyingTokens();
error OptionsCompounder__WrongMinPaymentAmount();
+error OptionsCompounder__AmountOutIsZero();
interface IOptionsCompounder {
function harvestOTokens(uint256 amount, address exerciseContract, uint256 minWantAmount) external;
diff --git a/src/oracles/AlgebraOracle.sol b/src/oracles/AlgebraOracle.sol
index 349e8aa..79ecf89 100644
--- a/src/oracles/AlgebraOracle.sol
+++ b/src/oracles/AlgebraOracle.sol
@@ -5,7 +5,7 @@ import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IOracle} from "../interfaces/IOracle.sol";
-
+import {ERC20} from "solmate/tokens/ERC20.sol";
import {IAlgebraPool} from "../interfaces/IAlgebraPool.sol";
import {TickMath} from "v3-core/libraries/TickMath.sol";
import {FullMath} from "v3-core/libraries/FullMath.sol";
@@ -70,6 +70,7 @@ contract AlgebraOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
constructor(IAlgebraPool algebraPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_) Owned(owner_) {
+ if (ERC20(algebraPool_.token0()).decimals() != 18 || ERC20(algebraPool_.token1()).decimals() != 18) revert AlgebraOracle__InvalidParams();
if (algebraPool_.token0() != token && algebraPool_.token1() != token) revert AlgebraOracle__InvalidParams();
if (secs_ < MIN_SECS) revert AlgebraOracle__InvalidWindow();
algebraPool = algebraPool_;
diff --git a/src/oracles/ThenaOracle.sol b/src/oracles/ThenaOracle.sol
index 0b2e8a1..ab43a82 100644
--- a/src/oracles/ThenaOracle.sol
+++ b/src/oracles/ThenaOracle.sol
@@ -3,7 +3,7 @@ pragma solidity ^0.8.13;
import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
-
+import {ERC20} from "solmate/tokens/ERC20.sol";
import {IOracle} from "../interfaces/IOracle.sol";
import {IThenaPair} from "../interfaces/IThenaPair.sol";
@@ -64,6 +64,7 @@ contract ThenaOracle is IOracle, Owned {
/// -----------------------------------------------------------------------
constructor(IThenaPair thenaPair_, address token, address owner_, uint56 secs_, uint128 minPrice_) Owned(owner_) {
+ if (ERC20(thenaPair_.token0()).decimals() != 18 || ERC20(thenaPair_.token1()).decimals() != 18) revert ThenaOracle__InvalidParams();
if (thenaPair_.stable()) revert ThenaOracle__StablePairsUnsupported();
if (thenaPair_.token0() != token && thenaPair_.token1() != token) revert ThenaOracle__InvalidParams();
if (secs_ < MIN_SECS) revert ThenaOracle__InvalidWindow();
diff --git a/src/oracles/UniswapV3Oracle.sol b/src/oracles/UniswapV3Oracle.sol
index 8c93e6d..cbad255 100644
--- a/src/oracles/UniswapV3Oracle.sol
+++ b/src/oracles/UniswapV3Oracle.sol
@@ -5,7 +5,7 @@ import {Owned} from "solmate/auth/Owned.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {IOracle} from "../interfaces/IOracle.sol";
-
+import {ERC20} from "solmate/tokens/ERC20.sol";
import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
import {TickMath} from "v3-core/libraries/TickMath.sol";
import {FullMath} from "v3-core/libraries/FullMath.sol";
@@ -69,6 +69,7 @@ contract UniswapV3Oracle is IOracle, Owned {
/// -----------------------------------------------------------------------
constructor(IUniswapV3Pool uniswapPool_, address token, address owner_, uint32 secs_, uint32 ago_, uint128 minPrice_) Owned(owner_) {
+ if (ERC20(uniswapPool_.token0()).decimals() != 18 || ERC20(uniswapPool_.token1()).decimals() != 18) revert UniswapOracle__InvalidParams(); //|| ERC20(uniswapPool_.token1()).decimals() != 18
if (uniswapPool_.token0() != token && uniswapPool_.token1() != token) revert UniswapOracle__InvalidParams();
if (secs_ < MIN_SECS) revert UniswapOracle__InvalidWindow();
uniswapPool = uniswapPool_;
diff --git a/test/ItMode_OptionsCompounder.t.sol b/test/ItMode_OptionsCompounder.t.sol
index a4584ea..ea91da9 100644
--- a/test/ItMode_OptionsCompounder.t.sol
+++ b/test/ItMode_OptionsCompounder.t.sol
@@ -34,12 +34,6 @@ contract ItModeOptionsCompounder is Common {
paymentToken = IERC20(MODE_MODE);
underlyingToken = IERC20(MODE_WETH);
addressProvider = MODE_ADDRESS_PROVIDER;
- // wantToken = IERC20(OP_OP);
- // paymentUnderlyingBpt = OP_OATHV2_ETH_BPT;
- // paymentWantBpt = OP_WETH_OP_USDC_BPT;
- // balancerVault = OP_BEETX_VAULT;
- // swapRouter = ISwapRouter(OP_BEETX_VAULT);
- // univ3Factory = IUniswapV3Factory(OP_UNIV3_FACTORY);
veloRouter = IVeloRouter(MODE_VELO_ROUTER);
veloFactory = MODE_VELO_FACTORY;
@@ -54,13 +48,7 @@ contract ItModeOptionsCompounder is Common {
/* Setup roles */
address[] memory strategists = new address[](1);
- // address[] memory multisigRoles = new address[](3);
- // address[] memory keepers = new address[](1);
strategists[0] = strategist;
- // multisigRoles[0] = management1;
- // multisigRoles[1] = management2;
- // multisigRoles[2] = management3;
- // keepers[0] = keeper;
/* Variables */
@@ -108,13 +96,9 @@ contract ItModeOptionsCompounder is Common {
optionsTokenProxy.setExerciseContract(address(exerciser), true);
/* Strategy deployment */
- // strategy = new ReaperStrategyGranary();
- // tmpProxy = new ERC1967Proxy(address(strategy), "");
- // strategy = ReaperStrategyGranary(address(tmpProxy));
optionsCompounder = new OptionsCompounder();
tmpProxy = new ERC1967Proxy(address(optionsCompounder), "");
optionsCompounder = OptionsCompounder(address(tmpProxy));
- // MockedLendingPool addressProviderAndLendingPoolMock = new MockedLendingPool(address(optionsCompounder));
console.log("Initializing...");
optionsCompounder.initialize(address(optionsTokenProxy), address(addressProvider), address(reaperSwapper), swapProps, oracle);
@@ -168,12 +152,10 @@ contract ItModeOptionsCompounder is Common {
SwapProps memory swapProps = SwapProps(address(reaperSwapper), address(swapRouter), ExchangeType.UniV3, 200);
/* Hacker tries to perform harvest */
vm.startPrank(hacker);
- // vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
- // optionsCompounder.harvestOTokens(amount, address(exerciser), NON_ZERO_PROFIT);
/* Hacker tries to manipulate contract configuration */
vm.expectRevert("Ownable: caller is not the owner");
- optionsCompounder.setOptionToken(randomOption);
+ optionsCompounder.setOptionsToken(randomOption);
vm.expectRevert("Ownable: caller is not the owner");
optionsCompounder.setSwapProps(swapProps);
@@ -187,7 +169,7 @@ contract ItModeOptionsCompounder is Common {
/* Admin tries to set different option token */
vm.startPrank(owner);
- optionsCompounder.setOptionToken(randomOption);
+ optionsCompounder.setOptionsToken(randomOption);
vm.stopPrank();
assertEq(address(optionsCompounder.getOptionTokenAddress()), randomOption);
}
@@ -207,7 +189,6 @@ contract ItModeOptionsCompounder is Common {
exerciser.setMultiplier(9999);
vm.stopPrank();
/* Increase TWAP price to make flashloan not profitable */
- // underlyingPaymentMock.setTwapValue(initTwap + ((initTwap * 10) / 100));
/* Notice: additional protection is in exerciser: Exercise__SlippageTooHigh */
vm.expectRevert(bytes4(keccak256("OptionsCompounder__FlashloanNotProfitableEnough()")));
@@ -239,9 +220,7 @@ contract ItModeOptionsCompounder is Common {
/* Notice: additional protection is in exerciser: Exercise__SlippageTooHigh */
vm.expectRevert(bytes4(keccak256("OptionsCompounder__FlashloanNotProfitableEnough()")));
/* Already approved in fixture_prepareOptionToken */
- // vm.startPrank(strategy);
optionsCompounder.harvestOTokens(amount, address(exerciser), minAmountOfPayment);
- // vm.stopPrank();
}
function test_callExecuteOperationWithoutFlashloanTrigger(uint256 amount, address executor) public {
diff --git a/test/OptionsToken.t.sol b/test/OptionsToken.t.sol
index e6ccdfb..d09b8b7 100644
--- a/test/OptionsToken.t.sol
+++ b/test/OptionsToken.t.sol
@@ -28,6 +28,7 @@ contract OptionsTokenTest is Test {
uint256 constant ORACLE_MIN_PRICE_DENOM = 10000;
uint256 constant MAX_SUPPLY = 1e27; // the max supply of the options token & the underlying token
uint256 constant INSTANT_EXIT_FEE = 500;
+ uint256 constant BPS_DENOM = 10_000;
address owner;
address tokenAdmin;
@@ -125,7 +126,7 @@ contract OptionsTokenTest is Test {
assertEqDecimal(optionsToken.balanceOf(address(this)), amount, 18);
}
- function test_discountExerciseHappyPath(uint256 amount) public {
+ function test_redeemPositiveScenario(uint256 amount) public {
amount = bound(amount, 100, MAX_SUPPLY);
address recipient = makeAddr("recipient");
@@ -155,7 +156,7 @@ contract OptionsTokenTest is Test {
assertEqDecimal(expectedPaymentAmount, paymentAmount, 18, "exercise returned wrong value");
}
- function test_instantExitExerciseHappyPath(uint256 amount) public {
+ function test_zapPositiveScenario(uint256 amount) public {
amount = bound(amount, 1e16, 1e22);
address recipient = makeAddr("recipient");
@@ -465,4 +466,106 @@ contract OptionsTokenTest is Test {
vm.prank(owner);
exerciser.setMinAmountToTriggerSwap(1e16);
}
+
+ function test_zapWhenExerciseUnderfunded(uint256 amount) public {
+ amount = bound(amount, 1e16, 1e22);
+ address recipient = makeAddr("recipient");
+
+ uint256 remainingAmount = 4e15;
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), amount);
+
+ // mint payment tokens
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE.mulDivUp(PRICE_MULTIPLIER, ORACLE_MIN_PRICE_DENOM));
+ uint256 discountedUnderlying = amount.mulDivUp(PRICE_MULTIPLIER, 10_000);
+ uint256 expectedUnderlyingAmount = discountedUnderlying - discountedUnderlying.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+ console.log("discountedUnderlying:", discountedUnderlying);
+ console.log("expectedUnderlyingAmount:", expectedUnderlyingAmount);
+ uint256 calcPaymentAmount = exerciser.getPaymentAmount(amount);
+ uint256 totalFee = calcPaymentAmount.mulDivUp(INSTANT_EXIT_FEE, 10_000);
+ uint256 fee1 = totalFee.mulDivDown(feeBPS_[0], 10_000);
+ uint256 fee2 = totalFee - fee1;
+ console.log("expected paymentFee1: ", fee1);
+ console.log("expected paymentFee2: ", fee2);
+
+ // Simulate sitiation when exerciser has less underlying amount than expected from exercise action
+ vm.prank(address(exerciser));
+ // IERC20(underlyingToken).transfer(address(this), 1e27 - (discountedUnderlying - 1));
+ IERC20(underlyingToken).transfer(address(this), 1e27 - remainingAmount);
+ console.log("Balance of exerciser:", IERC20(underlyingToken).balanceOf(address(exerciser)));
+
+ // exercise options tokens
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, recipient, address(exerciser), abi.encode(params));
+
+ // verify options tokens were transferred
+ assertEqDecimal(optionsToken.balanceOf(address(this)), 0, 18, "user still has options tokens");
+ assertEqDecimal(optionsToken.totalSupply(), 0, 18, "option tokens not burned");
+
+ // verify payment tokens were transferred
+ assertEq(paymentToken.balanceOf(address(this)), expectedPaymentAmount, "user lost payment tokens during instant exit");
+
+ assertEq(paymentToken.balanceOf(feeRecipients_[0]), 0, "fee recipient 1 didn't receive payment tokens");
+ assertEq(paymentToken.balanceOf(feeRecipients_[1]), 0, "fee recipient 2 didn't receive payment tokens");
+ assertEqDecimal(paymentAmount, 0, 18, "exercise returned wrong value");
+ assertEq(IERC20(underlyingToken).balanceOf(recipient), remainingAmount, "Recipient got wrong amount of underlying token");
+ }
+
+ function test_modeZapRedeemWithDifferentMultipliers(uint256 multiplier) public {
+ multiplier = bound(multiplier, BPS_DENOM / 10, BPS_DENOM - 1);
+ // multiplier = 8000;
+ uint256 amount = 1000e18;
+
+ address recipient = makeAddr("recipient");
+
+ // mint options tokens
+ vm.prank(tokenAdmin);
+ optionsToken.mint(address(this), 2 * amount);
+
+ vm.prank(owner);
+ exerciser.setMultiplier(multiplier);
+ uint256 expectedPaymentAmount = amount.mulWadUp(ORACLE_INIT_TWAP_VALUE) * 4;
+ deal(address(paymentToken), address(this), expectedPaymentAmount);
+
+ uint256 underlyingBalance =
+ IERC20(underlyingToken).balanceOf(address(this)) + paymentToken.balanceOf(address(this)).divWadUp(oracle.getPrice());
+ console.log("Price: ", oracle.getPrice());
+ console.log("Balance before: ", underlyingBalance);
+ console.log("Underlying amount before: ", IERC20(underlyingToken).balanceOf(address(this)));
+
+ // exercise options tokens -> redeem
+ DiscountExerciseParams memory params =
+ DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: false});
+ (uint256 paymentAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ uint256 underlyingBalanceAfterRedeem =
+ IERC20(underlyingToken).balanceOf(address(this)) + paymentToken.balanceOf(address(this)).divWadUp(oracle.getPrice());
+ console.log("Price: ", oracle.getPrice());
+ console.log("Underlying amount after redeem: ", IERC20(underlyingToken).balanceOf(address(this)));
+ console.log("Balance after redeem: ", underlyingBalanceAfterRedeem);
+
+ assertGt(underlyingBalanceAfterRedeem, underlyingBalance, "Redeem not profitable");
+ uint256 redeemProfit = underlyingBalanceAfterRedeem - underlyingBalance;
+
+ // exercise options tokens -> zap
+ params = DiscountExerciseParams({maxPaymentAmount: expectedPaymentAmount, deadline: type(uint256).max, isInstantExit: true});
+ (paymentAmount,,,) = optionsToken.exercise(amount, address(this), address(exerciser), abi.encode(params));
+
+ uint256 underlyingBalanceAfterZap =
+ IERC20(underlyingToken).balanceOf(address(this)) + paymentToken.balanceOf(address(this)).divWadUp(oracle.getPrice());
+ console.log("Price: ", oracle.getPrice());
+ console.log("Underlying amount after zap: ", IERC20(underlyingToken).balanceOf(address(this)));
+ console.log("Balance after zap: ", underlyingBalanceAfterZap);
+
+ assertGt(underlyingBalanceAfterZap, underlyingBalanceAfterRedeem, "Zap not profitable");
+ uint256 zapProfit = underlyingBalanceAfterZap - underlyingBalanceAfterRedeem;
+
+ assertGt(redeemProfit, zapProfit, "Profits from zap is greater than profits from redeem");
+
+ assertEq(redeemProfit - redeemProfit.mulDivUp(INSTANT_EXIT_FEE, BPS_DENOM), zapProfit, "Zap profit is different than redeem profit minus fee");
+ }
}
diff --git a/test/UniswapV3Oracle.t.sol b/test/UniswapV3Oracle.t.sol
index 794f103..afec76f 100644
--- a/test/UniswapV3Oracle.t.sol
+++ b/test/UniswapV3Oracle.t.sol
@@ -47,9 +47,11 @@ contract UniswapOracleTest is Test {
Params _default;
function setUp() public {
+ opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
mockV3Pool = new MockUniswapPool();
mockV3Pool.setCumulatives(sampleCumulatives);
mockV3Pool.setToken0(OP_ADDRESS);
+ mockV3Pool.setToken1(WETH_ADDRESS);
_default = Params(IUniswapV3Pool(WETH_OP_POOL_ADDRESS), OP_ADDRESS, address(this), 30 minutes, 0, 1000);
swapRouter = ISwapRouter(SWAP_ROUTER_ADDRESS);
@@ -59,33 +61,15 @@ contract UniswapOracleTest is Test {
/// Mock tests
/// ----------------------------------------------------------------------
- function test_PriceToken0() public {
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- mockV3Pool,
- OP_ADDRESS,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ function test_PriceTokens() public {
+ UniswapV3Oracle oracle0 = new UniswapV3Oracle(mockV3Pool, OP_ADDRESS, _default.owner, _default.secs, _default.ago, _default.minPrice);
+ UniswapV3Oracle oracle1 = new UniswapV3Oracle(mockV3Pool, WETH_ADDRESS, _default.owner, _default.secs, _default.ago, _default.minPrice);
- uint256 price = oracle.getPrice();
- assertEq(price, expectedPriceToken0);
- }
-
- function test_PriceToken1() public {
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- mockV3Pool,
- address(0),
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
-
- uint256 price = oracle.getPrice();
- uint256 expectedPriceToken1 = price = FixedPointMathLib.divWadUp(1e18, price);
- assertEq(price, expectedPriceToken1);
+ uint256 price0 = oracle0.getPrice();
+ uint256 price1 = oracle1.getPrice();
+ assertEq(price0, expectedPriceToken0);
+ uint256 expectedPriceToken1 = FixedPointMathLib.divWadDown(1e18, price0);
+ assertEq(price1, expectedPriceToken1); //precision
}
/// ----------------------------------------------------------------------
@@ -93,16 +77,7 @@ contract UniswapOracleTest is Test {
/// ----------------------------------------------------------------------
function test_priceWithinAcceptableRange() public {
- opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
-
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ UniswapV3Oracle oracle = new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, _default.minPrice);
uint256 oraclePrice = oracle.getPrice();
@@ -112,16 +87,7 @@ contract UniswapOracleTest is Test {
}
function test_revertMinPrice() public {
- opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
-
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ UniswapV3Oracle oracle = new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, _default.minPrice);
skip(_default.secs);
@@ -143,14 +109,8 @@ contract UniswapOracleTest is Test {
swapRouter.exactInputSingle(paramsIn);
// deploy a new oracle with a minPrice that is too high
- UniswapV3Oracle oracleMinPrice = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- uint128(price)
- );
+ UniswapV3Oracle oracleMinPrice =
+ new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, uint128(price));
skip(_default.secs);
@@ -159,16 +119,7 @@ contract UniswapOracleTest is Test {
}
function test_singleBlockManipulation() public {
- opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
-
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ UniswapV3Oracle oracle = new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, _default.minPrice);
address manipulator = makeAddr("manipulator");
deal(OP_ADDRESS, manipulator, 1000000 ether);
@@ -200,16 +151,8 @@ contract UniswapOracleTest is Test {
function test_priceManipulation(uint256 skipTime) public {
skipTime = bound(skipTime, 1, _default.secs);
- opFork = vm.createSelectFork(OPTIMISM_RPC_URL, FORK_BLOCK);
- UniswapV3Oracle oracle = new UniswapV3Oracle(
- _default.pool,
- _default.token,
- _default.owner,
- _default.secs,
- _default.ago,
- _default.minPrice
- );
+ UniswapV3Oracle oracle = new UniswapV3Oracle(_default.pool, _default.token, _default.owner, _default.secs, _default.ago, _default.minPrice);
address manipulator = makeAddr("manipulator");
deal(OP_ADDRESS, manipulator, 1000000 ether);
diff --git a/test/mocks/MockUniswapPool.sol b/test/mocks/MockUniswapPool.sol
index 42cd0ba..9ef5cd4 100644
--- a/test/mocks/MockUniswapPool.sol
+++ b/test/mocks/MockUniswapPool.sol
@@ -6,6 +6,7 @@ import {IUniswapV3Pool} from "v3-core/interfaces/IUniswapV3Pool.sol";
contract MockUniswapPool is IUniswapV3Pool {
int56[2] cumulatives;
address public token0;
+ address public token1;
function setCumulatives(int56[2] memory value) external {
cumulatives = value;
@@ -15,6 +16,10 @@ contract MockUniswapPool is IUniswapV3Pool {
token0 = value;
}
+ function setToken1(address value) external {
+ token1 = value;
+ }
+
function observe(uint32[] calldata secondsAgos)
external
view
@@ -39,8 +44,6 @@ contract MockUniswapPool is IUniswapV3Pool {
function factory() external view override returns (address) {}
- function token1() external view override returns (address) {}
-
function fee() external view override returns (uint24) {}
function tickSpacing() external view override returns (int24) {}
From 7b1d4596ded1b3ae4c93978aeae18954c703a185 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Tue, 9 Jul 2024 20:38:27 +0200
Subject: [PATCH 59/64] Deployment, readme and static analysis updates
---
.env.example | 17 -
README.md | 1599 ++++++++++++++++++++++++-
scripts/00_deploySwapper.ts | 65 +
scripts/01_deployOptionsTokenInfra.ts | 136 +++
scripts/config.json | 15 +-
scripts/deploy.ts | 138 ---
src/OptionsCompounder.sol | 2 +-
src/interfaces/IOptionsCompounder.sol | 2 -
8 files changed, 1801 insertions(+), 173 deletions(-)
create mode 100644 scripts/00_deploySwapper.ts
create mode 100644 scripts/01_deployOptionsTokenInfra.ts
delete mode 100644 scripts/deploy.ts
diff --git a/.env.example b/.env.example
index 93fc12e..eed0a9a 100644
--- a/.env.example
+++ b/.env.example
@@ -8,21 +8,4 @@ PRIVATE_KEY=XXX
ETHERSCAN_KEY=XXX
-# Deploy configs
-VERSION="1.0.0"
-OWNER=XXX
-ORACLE_SOURCE=XXX # 20-80 WETH-LIT pool
-ORACLE_SECS=XXX
-ORACLE_AGO=XXX
-ORACLE_MIN_PRICE=XXX # 18 decimals
-
-OT_NAME="LIT Call Option Token"
-OT_SYMBOL="oLIT"
-OT_PAYMENT_TOKEN=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 # WETH
-OT_UNDERLYING_TOKEN=0x4d2d32d8652058Bf98c772953E1Df5c5c85D9F45 # OATH
-OT_TOKEN_ADMIN=XXX
-
-MULTIPLIER=5000 # 4 decimals
-FEE_RECIPIENTS=0xXXX,0xXXX
-FEE_BPS=5000,5000
diff --git a/README.md b/README.md
index 1b4b719..1a91fd8 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
-# OptionsToken
+# Description
+## OptionsToken
An options token representing the right to exercise any one of the whitelisted exercise contracts, allowing the user to receive different forms of discounted assets in return for the appropriate payment. The option does not expire. The options token receives user input and a specified exercise contract address, passing through to the exercise contract to execute the option. We fork https://github.com/timeless-fi/options-token, which is a simple implementation of an option for discounted tokens at an adjusted oracle rate. Here, we divorce the exercise functionality from the token contract, and allow an admin to whitelist and fund exercise contracts as the desired. We also implement more potential oracle types, and make several other minor changes.
@@ -6,19 +7,48 @@ We want to ensure there are no attacks on pricing in DiscountExercise, atomicall
Given the nature of this token, it is fine for the admin to have some centralized permissions (admin can mint tokens, admin is the one who funds exercise contracts, etc). The team is responsible for refilling the exercise contracts. We limit the amount of funds we leave in an exercise contract at any given time to limit risk.
-# Flow of an Option Token Exercise (Ex. Discount Exercise)
+### Flow of an Option Token Exercise (Ex. Discount Exercise)
The user will always interact with the OptionsToken itself, and never with any exercise contract directly.
-1. The user approves OptionsToken the amount of WETH they wish to spend
+#### ZAP
+1. User calls exercise on the OptionsToken, specifying their desired exercise contract and encoding exercise parameters
+2. OptionsToken validates the exercise contract.
+3. DiscountExercise decodes the parameters for the exercise function on the chosen exercise contract, and calls the specified function. In the case of zapping in DiscountExercise, the parameters are maxPaymentAmount, deadline, and isInstantExit set to true.
+4. OptionsTokens are burnt.
+5. A penalty fee in the form of underlying tokens (available in the contract) is calculated, then conditionally swapped to the desired token and distributed to the fee recipients.
+ a. Swapping and distribution occur only when the fee amount exceeds a specified trigger to avoid swapping small amounts.
+ b. The transaction reverts if the minimal desired amount of desired tokens is not obtained.
+6. The underlying tokens available in the DiscountExercise contract are sent to the user. The amount of underlying tokens is discounted by the multiplier and reduced by the penalty fee.
+
+#### REDEEM
+1. The user approves OptionsToken the amount of Payment Token they wish to spend
2. User calls exercise on the OptionsToken, specifying their desired exercise contract and encoding exercise parameters
-3. OptionsToken validates the exercise contract, decodes the parameters for the exercise function on the exercise contract of choice, and calls said function. In the case of DiscountExercise, the params are maxPaymentAmount and deadline.
+3. OptionsToken validates the exercise contract, decodes the parameters for the exercise function on the exercise contract of choice, and calls said function. In the case of DiscountExercise, the params are maxPaymentAmount, deadline and isInstantExit set to false.
4. oTokens are burnt, WETH is sent to the treasury, and underlyingTokens, discounted by the multiplier, are sent to the user exercising
a. Can be priced using balancer, thena, univ3 twap oracles
b. Reverts above maxPaymentAmount or past deadline
+## OptionsCompounder
+
+The Compounder platform facilitates the utilization of flash loans to exercise the option, enabling the acquisition of the underlying token at a discounted rate via payment token.
+
+### Flow of an Options Compounder (Ex. Discount Exercise) - strategy usage
+
+1. Admin configures swap paths, oracles, initializer args, etc
+2. Strategy has an oToken balance
+3. Keeper calls harvestOTokens
+4. Calculate Payment Amount from Discount Exercise given oToken balance
+5. Flashloan the necessary amount of funds to exercise in paymentToken
+6. Callback from flashloan is called
+ a. oTokens are exercised using paymentToken that was flash loaned
+ b. Underlying token is received by the strategy
+ c. Calculate minAmountOut by directly querying the same oracle consumed by the DiscountExercise we interact with
+ d. Swap entire amount into payment token to repay flashloan
+ e. Assess profitability in units of paymentToken, swap profits to want of the strategy if not same token as paymentToken
+ f. Emit event that reflects the oTokens compounded
-## Installation
+# Installation
To install with [DappTools](https://github.com/dapphub/dapptools):
@@ -48,15 +78,35 @@ forge install
forge build
```
-### Testing
+# Testing
+
+## Dynamic
```
forge test
```
-### Checklist
+`--report lcov` - coverage which can be turned on in code using "Coverage Gutters"
+
+## Static
+
+`slither . --include-path src/`
+
+`--checklist` - report in md
-#### Internal Audit Checklist
+`--print inheritance-graph` - generate inheritance graph in xdot
+
+`xdot inheritance-graph.dot` - open inheritance graph
+
+# Deployment
+
+Inside `./scripts` there is "config.json" where can be defined deployment configurations.
+You can choose which contract to deploy by adding/removing string in CONTRACTS_TO_DEPLOY. If some contracts are removed, there must be defined the address for already existing contract on the chain (example: SWAPPER, OPTIONS_COMPOUNDER).
+There are 2 deployment scripts. One is for swapper and paths updates and second for all optionsToken infra (swapper address must be passed here).
+
+# Checklist
+
+## Internal Audit Checklist
- [x] All functionality that touches funds can be paused
- [ ] Pause function called by 2/7 Guardian
@@ -65,24 +115,1545 @@ forge test
- [x] Re-entrancy
- [x] Flashloans
- [x] Access Control
-- [x] Unchecked External Calls
-- [ ] Account abstraction/multicall issues
-- [x] USE SLITHER
+- [x] (N/A) Unchecked External Calls
+- [x] (N/A) Account abstraction/multicall issues
+- [x] Static analysis -> Slither
+ - [x] [Discount-Exercise](#discount-exercise-slither)
+ - [x] [Options-Compounder](#options-compounder-slither)
+ - [x] [Options-Token](#options-token-slither)
+ - [x] [Thena-Oracle](#thena-oracle-slither)
+ - [x] [Base-Exercise](#base-exercise-slither)
-#### Pre-deployment Checklist
+## Pre-deployment Checklist
- [x] Contracts pass all tests
- [x] Contracts deployed to testnet
+ - [x] [DiscountExercise](https://explorer.mode.network/address/0xeE89a9e5022f967Fc2DDb0dEbfFb72bFc4FB4692?tab=contract)
+ - [x] [ReaperSwapper](https://explorer.mode.network/address/0xd57957A73634B860f0E8c1907371BD4f3e42C2C3?tab=contract)
+ - [x] [VeloOracle](https://explorer.mode.network/address/0x52B2732b29B4d6444e9930D7C328c082dA033d66?tab=contract)
+ - [x] [OptionsToken](https://explorer.mode.network/address/0x8013e0c13D9262094D0A2cFC8DF2Aa11cE4D8203?tab=contract)
+ - [x] [OptionsCompounder](https://explorer.mode.network/address/0x80c1FccB0c01A1EEafB422719A6A1048Fe92033f?=contract)
- [x] Does this deployment have access to funds, either directly or indirectly (zappers, leveragers, etc.)?
Minimum security if Yes:
- [x] Internal Audit (not the author, minimum 1x Junior review + minimum 1x Senior review)
- [x] External Audit (impact scope)
+ - [x] [OptionsToken zapping feature scope](https://docs.google.com/document/d/1HrmXSEKuBK5U9Ix8ZSkAYf2VEYwxZ17piOjhjY4XPzs/edit?usp=drive_link)
+ - [x] [OptionsToken zapping feature audit](https://drive.google.com/file/d/1kbYnVN1HJrpllkMXXb4mmwLeU361YASG/view?usp=drive_link)
+ - [x] [OptionsCompounder integration scope](https://docs.google.com/document/d/1eKcyiVvmux2wv2P92qLQLSYIgbD-qETurHObyhOLh8Y/edit?usp=drive_link)
+ - [x] [OptionsCompounder integration audit](https://drive.google.com/file/d/1GR0Jnxo9Txa6sJ8aM_mP4xBfaBJ9UNG2/view)
Action items in support of deployment:
- [ ] Minimum two people present for deployment
- [x] All developers who worked on and reviewed the contract should be included in the readme
- Developers involved: Eidolon (reviewer), Zokunei (reviewer), Goober (reviewer), Beirao (reviewer), xRave110 (change owner)
-- [ ] Documentation of deployment procedure if non-standard (i.e. if multiple scripts are necessary)
\ No newline at end of file
+ - Developers involved: xRave110 (change owner), Eidolon (reviewer), Zokunei (reviewer), Goober (reviewer), Beirao (reviewer)
+- [ ] Documentation of deployment procedure if non-standard (i.e. if multiple scripts are necessary)
+
+
+## Discount Exercise Slither
+
+Summary
+ - [reentrancy-no-eth](#reentrancy-no-eth) (1 results) (Medium)
+ - [unused-return](#unused-return) (2 results) (Medium)
+ - [reentrancy-benign](#reentrancy-benign) (1 results) (Low)
+ - [reentrancy-events](#reentrancy-events) (4 results) (Low)
+ - [timestamp](#timestamp) (2 results) (Low)
+ - [pragma](#pragma) (1 results) (Informational)
+ - [solc-version](#solc-version) (1 results) (Informational)
+ - [naming-convention](#naming-convention) (3 results) (Informational)
+ - [unused-import](#unused-import) (2 results) (Informational)
+## reentrancy-no-eth
+Impact: Medium
+Confidence: Medium
+ - [ ] ID-0
+Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249):
+ External calls:
+ - [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L228)
+ - [amountOut = _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L230-L232)
+ - [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L72)
+ - [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L74)
+ - [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L76)
+ - [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L78)
+ State variables written after the call(s):
+ - [feeAmount = 0](src/exercise/DiscountExercise.sol#L238)
+ [DiscountExercise.feeAmount](src/exercise/DiscountExercise.sol#L74) can be used in cross function reentrancies:
+ - [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249)
+
+src/exercise/DiscountExercise.sol#L211-L249
+
+Justification: External call is happening to well known dexes which are verified against any reentrancy attacks but fix may be implemented using additional temporary variable.
+
+## unused-return
+Impact: Medium
+Confidence: Medium
+ - [ ] ID-1
+[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249) ignores return value by [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L228)
+
+src/exercise/DiscountExercise.sol#L211-L249
+
+
+ - [ ] ID-2
+[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249) ignores return value by [underlyingToken.approve(swapProps.swapper,0)](src/exercise/DiscountExercise.sol#L239)
+
+src/exercise/DiscountExercise.sol#L211-L249
+
+Justification: It is just potential DOS which is very unlikely.
+
+## reentrancy-benign
+Impact: Low
+Confidence: Medium
+ - [ ] ID-3
+Reentrancy in [DiscountExercise._pay(address,uint256)](src/exercise/DiscountExercise.sol#L269-L278):
+ External calls:
+ - [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L272)
+ - [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L275)
+ State variables written after the call(s):
+ - [credit[to] += remainingAmount](src/exercise/DiscountExercise.sol#L277)
+
+src/exercise/DiscountExercise.sol#L269-L278
+
+Justification: Tokens are set by the addresses with special access role who knows that onReceiveErc20 hook might lead to the potential reentrancy attack.
+
+## reentrancy-events
+Impact: Low
+Confidence: Medium
+ - [ ] ID-4
+Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249):
+ External calls:
+ - [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L228)
+ - [amountOut = _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L230-L232)
+ - [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L72)
+ - [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L74)
+ - [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L76)
+ - [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L78)
+ - [underlyingToken.approve(swapProps.swapper,0)](src/exercise/DiscountExercise.sol#L239)
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L90)
+ - [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L93)
+ - [_pay(recipient,underlyingAmount)](src/exercise/DiscountExercise.sol#L246)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L272)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L275)
+ External calls sending eth:
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [_pay(recipient,underlyingAmount)](src/exercise/DiscountExercise.sol#L246)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ Event emitted after the call(s):
+ - [Exercised(from,recipient,underlyingAmount,paymentAmount)](src/exercise/DiscountExercise.sol#L248)
+
+src/exercise/DiscountExercise.sol#L211-L249
+
+
+ - [ ] ID-5
+Reentrancy in [DiscountExercise.claim(address)](src/exercise/DiscountExercise.sol#L134-L140):
+ External calls:
+ - [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L138)
+ Event emitted after the call(s):
+ - [Claimed(amount)](src/exercise/DiscountExercise.sol#L139)
+
+src/exercise/DiscountExercise.sol#L134-L140
+
+
+ - [ ] ID-6
+Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249):
+ External calls:
+ - [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L228)
+ - [amountOut = _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L230-L232)
+ - [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L72)
+ - [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L74)
+ - [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L76)
+ - [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L78)
+ - [underlyingToken.approve(swapProps.swapper,0)](src/exercise/DiscountExercise.sol#L239)
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L90)
+ - [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L93)
+ External calls sending eth:
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ Event emitted after the call(s):
+ - [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L94)
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+
+src/exercise/DiscountExercise.sol#L211-L249
+
+
+ - [ ] ID-7
+Reentrancy in [DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L252-L267):
+ External calls:
+ - [distributeFeesFrom(paymentAmount,paymentToken,from)](src/exercise/DiscountExercise.sol#L262)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L77)
+ - [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L80)
+ - [_pay(recipient,amount)](src/exercise/DiscountExercise.sol#L264)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L272)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L275)
+ External calls sending eth:
+ - [distributeFeesFrom(paymentAmount,paymentToken,from)](src/exercise/DiscountExercise.sol#L262)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [_pay(recipient,amount)](src/exercise/DiscountExercise.sol#L264)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ Event emitted after the call(s):
+ - [Exercised(from,recipient,amount,paymentAmount)](src/exercise/DiscountExercise.sol#L266)
+
+src/exercise/DiscountExercise.sol#L252-L267
+
+
+## timestamp
+Impact: Low
+Confidence: Medium
+ - [ ] ID-8
+[DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L252-L267) uses timestamp for comparisons
+ Dangerous comparisons:
+ - [block.timestamp > params.deadline](src/exercise/DiscountExercise.sol#L257)
+
+src/exercise/DiscountExercise.sol#L252-L267
+
+
+ - [ ] ID-9
+[DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249) uses timestamp for comparisons
+ Dangerous comparisons:
+ - [block.timestamp > params.deadline](src/exercise/DiscountExercise.sol#L215)
+
+src/exercise/DiscountExercise.sol#L211-L249
+
+
+## pragma
+Impact: Informational
+Confidence: High
+ - [ ] ID-10
+11 different versions of Solidity are used:
+ - Version constraint ^0.8.0 is used by:
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)
+ -[^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)
+ -[^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)
+ -[^0.8.0](src/OptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)
+ -[^0.8.0](src/interfaces/IFlashLoanReceiver.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPool.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPoolAddressesProvider.sol#L2)
+ -[^0.8.0](src/interfaces/IOptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](src/libraries/DataTypes.sol#L2)
+ - Version constraint ^0.8.2 is used by:
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)
+ - Version constraint ^0.8.1 is used by:
+ -[^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)
+ -[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)
+ - Version constraint >=0.8.0 is used by:
+ -[>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)
+ -[>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)
+ -[>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)
+ - Version constraint >=0.5.0 is used by:
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)
+ -[>=0.5.0](src/interfaces/IAlgebraPool.sol#L2)
+ - Version constraint >=0.7.5 is used by:
+ -[>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)
+ - Version constraint >=0.6.2 is used by:
+ -[>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)
+ - Version constraint >=0.6.0 is used by:
+ -[>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)
+ - Version constraint ^0.8.13 is used by:
+ -[^0.8.13](src/OptionsToken.sol#L2)
+ -[^0.8.13](src/exercise/BaseExercise.sol#L2)
+ -[^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ -[^0.8.13](src/helpers/SwapHelper.sol#L3)
+ -[^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ -[^0.8.13](src/interfaces/IExercise.sol#L2)
+ -[^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ -[^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ -[^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ -[^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ -[^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+ - Version constraint >=0.7.0<0.9.0 is used by:
+ -[>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)
+ -[>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)
+ -[>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)
+ - Version constraint >=0.5 is used by:
+ -[>=0.5](src/interfaces/IThenaPair.sol#L1)
+
+lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4
+
+
+## solc-version
+Impact: Informational
+Confidence: High
+ - [ ] ID-11
+Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
+ - VerbatimInvalidDeduplication
+ - FullInlinerNonExpressionSplitArgumentEvaluationOrder
+ - MissingSideEffectsOnSelectorAccess
+ - StorageWriteRemovalBeforeConditionalTermination
+ - AbiReencodingHeadOverflowWithStaticArrayCleanup
+ - DirtyBytesArrayToStorage
+ - InlineAssemblyMemorySideEffects
+ - DataLocationChangeInInternalOverride
+ - NestedCalldataArrayAbiReencodingSizeValidation.
+It is used by:
+ - [^0.8.13](src/OptionsToken.sol#L2)
+ - [^0.8.13](src/exercise/BaseExercise.sol#L2)
+ - [^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ - [^0.8.13](src/helpers/SwapHelper.sol#L3)
+ - [^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ - [^0.8.13](src/interfaces/IExercise.sol#L2)
+ - [^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ - [^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ - [^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ - [^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ - [^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+
+src/OptionsToken.sol#L2
+
+
+## naming-convention
+Impact: Informational
+Confidence: High
+ - [ ] ID-12
+Parameter [DiscountExercise.setSwapProps(SwapProps)._swapProps](src/exercise/DiscountExercise.sol#L143) is not in mixedCase
+
+src/exercise/DiscountExercise.sol#L143
+
+
+ - [ ] ID-13
+Parameter [DiscountExercise.setMinAmountToTriggerSwap(uint256)._minAmountToTriggerSwap](src/exercise/DiscountExercise.sol#L193) is not in mixedCase
+
+src/exercise/DiscountExercise.sol#L193
+
+
+ - [ ] ID-14
+Parameter [DiscountExercise.setInstantExitFee(uint256)._instantExitFee](src/exercise/DiscountExercise.sol#L179) is not in mixedCase
+
+src/exercise/DiscountExercise.sol#L179
+
+
+## unused-import
+Impact: Informational
+Confidence: High
+ - [ ] ID-15
+The following unused import(s) in src/interfaces/IOptionsCompounder.sol should be removed:
+ -import {IOptionsToken} from "./IOptionsToken.sol"; (src/interfaces/IOptionsCompounder.sol#5)
+
+ - [ ] ID-16
+The following unused import(s) in src/OptionsCompounder.sol should be removed:
+ -import {ReaperAccessControl} from "vault-v2/mixins/ReaperAccessControl.sol"; (src/OptionsCompounder.sol#11)
+
+INFO:Slither:. analyzed (100 contracts with 94 detectors), 17 result(s) found
+
+## Options Compounder Slither
+
+Summary
+ - [arbitrary-send-erc20](#arbitrary-send-erc20) (1 results) (High)
+ - [reentrancy-eth](#reentrancy-eth) (1 results) (High)
+ - [incorrect-equality](#incorrect-equality) (1 results) (Medium)
+ - [unused-return](#unused-return) (6 results) (Medium)
+ - [missing-zero-check](#missing-zero-check) (1 results) (Low)
+ - [reentrancy-benign](#reentrancy-benign) (1 results) (Low)
+ - [reentrancy-events](#reentrancy-events) (1 results) (Low)
+ - [timestamp](#timestamp) (1 results) (Low)
+ - [boolean-equal](#boolean-equal) (3 results) (Informational)
+ - [pragma](#pragma) (1 results) (Informational)
+ - [solc-version](#solc-version) (1 results) (Informational)
+ - [missing-inheritance](#missing-inheritance) (1 results) (Informational)
+ - [naming-convention](#naming-convention) (13 results) (Informational)
+## arbitrary-send-erc20
+Impact: High
+Confidence: High
+ - [ ] ID-0
+[OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320) uses arbitrary from in transferFrom: [IERC20(address(optionsToken)).safeTransferFrom(flashloanParams.sender,address(this),flashloanParams.optionsAmount)](src/OptionsCompounder.sol#L258)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+## reentrancy-eth
+Impact: High
+Confidence: Medium
+ - [ ] ID-1
+Reentrancy in [OptionsCompounder.executeOperation(address[],uint256[],uint256[],address,bytes)](src/OptionsCompounder.sol#L214-L230):
+ External calls:
+ - [_exerciseOptionAndReturnDebt(assets[0],amounts[0],premiums[0],params)](src/OptionsCompounder.sol#L227)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L72)
+ - [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L74)
+ - [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L76)
+ - [IERC20(address(optionsToken)).safeTransferFrom(flashloanParams.sender,address(this),flashloanParams.optionsAmount)](src/OptionsCompounder.sol#L258)
+ - [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L78)
+ - [IERC20(asset).approve(flashloanParams.exerciserContract,amount)](src/OptionsCompounder.sol#L265)
+ - [optionsToken.exercise(flashloanParams.optionsAmount,address(this),flashloanParams.exerciserContract,exerciseParams)](src/OptionsCompounder.sol#L267)
+ - [IERC20(asset).approve(flashloanParams.exerciserContract,0)](src/OptionsCompounder.sol#L270)
+ - [underlyingToken.approve(swapper,balanceOfUnderlyingToken)](src/OptionsCompounder.sol#L280)
+ - [underlyingToken.approve(swapper,0)](src/OptionsCompounder.sol#L292)
+ - [IERC20(asset).approve(address(lendingPool),totalAmountToPay)](src/OptionsCompounder.sol#L315)
+ - [IERC20(asset).safeTransfer(flashloanParams.sender,gainInPaymentToken)](src/OptionsCompounder.sol#L316)
+ External calls sending eth:
+ - [_exerciseOptionAndReturnDebt(assets[0],amounts[0],premiums[0],params)](src/OptionsCompounder.sol#L227)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ State variables written after the call(s):
+ - [flashloanFinished = true](src/OptionsCompounder.sol#L228)
+ [OptionsCompounder.flashloanFinished](src/OptionsCompounder.sol#L48) can be used in cross function reentrancies:
+ - [OptionsCompounder._harvestOTokens(uint256,address,uint256)](src/OptionsCompounder.sol#L164-L202)
+ - [OptionsCompounder.executeOperation(address[],uint256[],uint256[],address,bytes)](src/OptionsCompounder.sol#L214-L230)
+ - [OptionsCompounder.initialize(address,address,address,SwapProps,IOracle)](src/OptionsCompounder.sol#L74-L87)
+
+src/OptionsCompounder.sol#L214-L230
+
+
+## incorrect-equality
+Impact: Medium
+Confidence: High
+ - [ ] ID-2
+[OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320) uses a dangerous strict equality:
+ - [swapAmountOut == 0](src/OptionsCompounder.sol#L287)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+## unused-return
+Impact: Medium
+Confidence: Medium
+ - [ ] ID-3
+[OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320) ignores return value by [IERC20(asset).approve(flashloanParams.exerciserContract,0)](src/OptionsCompounder.sol#L270)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+ - [ ] ID-4
+[OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320) ignores return value by [IERC20(asset).approve(address(lendingPool),totalAmountToPay)](src/OptionsCompounder.sol#L315)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+ - [ ] ID-5
+[OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320) ignores return value by [underlyingToken.approve(swapper,balanceOfUnderlyingToken)](src/OptionsCompounder.sol#L280)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+ - [ ] ID-6
+[OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320) ignores return value by [underlyingToken.approve(swapper,0)](src/OptionsCompounder.sol#L292)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+ - [ ] ID-7
+[OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320) ignores return value by [IERC20(asset).approve(flashloanParams.exerciserContract,amount)](src/OptionsCompounder.sol#L265)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+ - [ ] ID-8
+[OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320) ignores return value by [optionsToken.exercise(flashloanParams.optionsAmount,address(this),flashloanParams.exerciserContract,exerciseParams)](src/OptionsCompounder.sol#L267)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+## missing-zero-check
+Impact: Low
+Confidence: Medium
+ - [ ] ID-9
+[OptionsCompounder.initiateUpgradeCooldown(address)._nextImplementation](src/OptionsCompounder.sol#L326) lacks a zero-check on :
+ - [nextImplementation = _nextImplementation](src/OptionsCompounder.sol#L328)
+
+src/OptionsCompounder.sol#L326
+
+
+## reentrancy-benign
+Impact: Low
+Confidence: Medium
+ - [ ] ID-10
+Reentrancy in [OptionsCompounder._harvestOTokens(uint256,address,uint256)](src/OptionsCompounder.sol#L164-L202):
+ External calls:
+ - [optionsToken.isExerciseContract(exerciseContract) == false](src/OptionsCompounder.sol#L166)
+ State variables written after the call(s):
+ - [flashloanFinished = false](src/OptionsCompounder.sol#L192)
+
+src/OptionsCompounder.sol#L164-L202
+
+
+## reentrancy-events
+Impact: Low
+Confidence: Medium
+ - [ ] ID-11
+Reentrancy in [OptionsCompounder._exerciseOptionAndReturnDebt(address,uint256,uint256,bytes)](src/OptionsCompounder.sol#L241-L320):
+ External calls:
+ - [IERC20(address(optionsToken)).safeTransferFrom(flashloanParams.sender,address(this),flashloanParams.optionsAmount)](src/OptionsCompounder.sol#L258)
+ - [IERC20(asset).approve(flashloanParams.exerciserContract,amount)](src/OptionsCompounder.sol#L265)
+ - [optionsToken.exercise(flashloanParams.optionsAmount,address(this),flashloanParams.exerciserContract,exerciseParams)](src/OptionsCompounder.sol#L267)
+ - [IERC20(asset).approve(flashloanParams.exerciserContract,0)](src/OptionsCompounder.sol#L270)
+ - [underlyingToken.approve(swapper,balanceOfUnderlyingToken)](src/OptionsCompounder.sol#L280)
+ - [swapAmountOut = _generalSwap(swapProps.exchangeTypes,address(underlyingToken),asset,balanceOfUnderlyingToken,minAmountOut,swapProps.exchangeAddress)](src/OptionsCompounder.sol#L283-L285)
+ - [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L72)
+ - [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L74)
+ - [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L76)
+ - [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L78)
+ - [underlyingToken.approve(swapper,0)](src/OptionsCompounder.sol#L292)
+ - [IERC20(asset).approve(address(lendingPool),totalAmountToPay)](src/OptionsCompounder.sol#L315)
+ - [IERC20(asset).safeTransfer(flashloanParams.sender,gainInPaymentToken)](src/OptionsCompounder.sol#L316)
+ Event emitted after the call(s):
+ - [OTokenCompounded(gainInPaymentToken,totalAmountToPay)](src/OptionsCompounder.sol#L318)
+
+src/OptionsCompounder.sol#L241-L320
+
+
+## timestamp
+Impact: Low
+Confidence: Medium
+ - [ ] ID-12
+[OptionsCompounder._authorizeUpgrade(address)](src/OptionsCompounder.sol#L350-L354) uses timestamp for comparisons
+ Dangerous comparisons:
+ - [require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)](src/OptionsCompounder.sol#L351)
+
+src/OptionsCompounder.sol#L350-L354
+
+
+## boolean-equal
+Impact: Informational
+Confidence: High
+ - [ ] ID-13
+[OptionsCompounder._harvestOTokens(uint256,address,uint256)](src/OptionsCompounder.sol#L164-L202) compares to a boolean constant:
+ -[optionsToken.isExerciseContract(exerciseContract) == false](src/OptionsCompounder.sol#L166)
+
+src/OptionsCompounder.sol#L164-L202
+
+
+ - [ ] ID-14
+[OptionsCompounder._harvestOTokens(uint256,address,uint256)](src/OptionsCompounder.sol#L164-L202) compares to a boolean constant:
+ -[flashloanFinished == false](src/OptionsCompounder.sol#L170)
+
+src/OptionsCompounder.sol#L164-L202
+
+
+ - [ ] ID-15
+[OptionsCompounder.executeOperation(address[],uint256[],uint256[],address,bytes)](src/OptionsCompounder.sol#L214-L230) compares to a boolean constant:
+ -[flashloanFinished != false || msg.sender != address(lendingPool)](src/OptionsCompounder.sol#L219)
+
+src/OptionsCompounder.sol#L214-L230
+
+
+## pragma
+Impact: Informational
+Confidence: High
+ - [ ] ID-16
+11 different versions of Solidity are used:
+ - Version constraint ^0.8.0 is used by:
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)
+ -[^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)
+ -[^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)
+ -[^0.8.0](src/OptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)
+ -[^0.8.0](src/interfaces/IFlashLoanReceiver.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPool.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPoolAddressesProvider.sol#L2)
+ -[^0.8.0](src/interfaces/IOptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](src/libraries/DataTypes.sol#L2)
+ - Version constraint ^0.8.2 is used by:
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)
+ - Version constraint ^0.8.1 is used by:
+ -[^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)
+ -[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)
+ - Version constraint >=0.8.0 is used by:
+ -[>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)
+ -[>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)
+ -[>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)
+ - Version constraint >=0.5.0 is used by:
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)
+ -[>=0.5.0](src/interfaces/IAlgebraPool.sol#L2)
+ - Version constraint >=0.7.5 is used by:
+ -[>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)
+ - Version constraint >=0.6.2 is used by:
+ -[>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)
+ - Version constraint >=0.6.0 is used by:
+ -[>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)
+ - Version constraint ^0.8.13 is used by:
+ -[^0.8.13](src/OptionsToken.sol#L2)
+ -[^0.8.13](src/exercise/BaseExercise.sol#L2)
+ -[^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ -[^0.8.13](src/helpers/SwapHelper.sol#L3)
+ -[^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ -[^0.8.13](src/interfaces/IExercise.sol#L2)
+ -[^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ -[^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ -[^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ -[^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ -[^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+ - Version constraint >=0.7.0<0.9.0 is used by:
+ -[>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)
+ -[>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)
+ -[>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)
+ - Version constraint >=0.5 is used by:
+ -[>=0.5](src/interfaces/IThenaPair.sol#L1)
+
+lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4
+
+
+## solc-version
+Impact: Informational
+Confidence: High
+ - [ ] ID-17
+Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
+ - FullInlinerNonExpressionSplitArgumentEvaluationOrder
+ - MissingSideEffectsOnSelectorAccess
+ - AbiReencodingHeadOverflowWithStaticArrayCleanup
+ - DirtyBytesArrayToStorage
+ - DataLocationChangeInInternalOverride
+ - NestedCalldataArrayAbiReencodingSizeValidation
+ - SignedImmutables
+ - ABIDecodeTwoDimensionalArrayMemory
+ - KeccakCaching.
+It is used by:
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)
+ - [^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)
+ - [^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)
+ - [^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)
+ - [^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)
+ - [^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)
+ - [^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)
+ - [^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)
+ - [^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)
+ - [^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)
+ - [^0.8.0](src/OptionsCompounder.sol#L3)
+ - [^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)
+ - [^0.8.0](src/interfaces/IFlashLoanReceiver.sol#L2)
+ - [^0.8.0](src/interfaces/ILendingPool.sol#L2)
+ - [^0.8.0](src/interfaces/ILendingPoolAddressesProvider.sol#L2)
+ - [^0.8.0](src/interfaces/IOptionsCompounder.sol#L3)
+ - [^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)
+ - [^0.8.0](src/libraries/DataTypes.sol#L2)
+
+lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4
+
+
+## missing-inheritance
+Impact: Informational
+Confidence: High
+ - [ ] ID-18
+[OptionsCompounder](src/OptionsCompounder.sol#L25-L370) should inherit from [IOptionsCompounder](src/interfaces/IOptionsCompounder.sol#L20-L24)
+
+src/OptionsCompounder.sol#L25-L370
+
+
+## naming-convention
+Impact: Informational
+Confidence: High
+ - [ ] ID-19
+Parameter [OptionsCompounder.initialize(address,address,address,SwapProps,IOracle)._optionsToken](src/OptionsCompounder.sol#L74) is not in mixedCase
+
+src/OptionsCompounder.sol#L74
+
+
+ - [ ] ID-20
+Parameter [OptionsCompounder.initialize(address,address,address,SwapProps,IOracle)._swapper](src/OptionsCompounder.sol#L74) is not in mixedCase
+
+src/OptionsCompounder.sol#L74
+
+
+ - [ ] ID-21
+Parameter [OptionsCompounder.initialize(address,address,address,SwapProps,IOracle)._oracle](src/OptionsCompounder.sol#L74) is not in mixedCase
+
+src/OptionsCompounder.sol#L74
+
+
+ - [ ] ID-22
+Parameter [OptionsCompounder.initialize(address,address,address,SwapProps,IOracle)._swapProps](src/OptionsCompounder.sol#L74) is not in mixedCase
+
+src/OptionsCompounder.sol#L74
+
+
+ - [ ] ID-23
+Parameter [OptionsCompounder.setSwapProps(SwapProps)._swapProps](src/OptionsCompounder.sol#L108) is not in mixedCase
+
+src/OptionsCompounder.sol#L108
+
+
+ - [ ] ID-24
+Parameter [OptionsCompounder.setOracle(IOracle)._oracle](src/OptionsCompounder.sol#L112) is not in mixedCase
+
+src/OptionsCompounder.sol#L112
+
+
+ - [ ] ID-25
+Function [OptionsCompounder.ADDRESSES_PROVIDER()](src/OptionsCompounder.sol#L363-L365) is not in mixedCase
+
+src/OptionsCompounder.sol#L363-L365
+
+
+ - [ ] ID-26
+Parameter [OptionsCompounder.initialize(address,address,address,SwapProps,IOracle)._addressProvider](src/OptionsCompounder.sol#L74) is not in mixedCase
+
+src/OptionsCompounder.sol#L74
+
+
+ - [ ] ID-27
+Parameter [OptionsCompounder.initiateUpgradeCooldown(address)._nextImplementation](src/OptionsCompounder.sol#L326) is not in mixedCase
+
+src/OptionsCompounder.sol#L326
+
+
+ - [ ] ID-28
+Parameter [OptionsCompounder.setOptionsToken(address)._optionsToken](src/OptionsCompounder.sol#L97) is not in mixedCase
+
+src/OptionsCompounder.sol#L97
+
+
+ - [ ] ID-29
+Parameter [OptionsCompounder.setSwapper(address)._swapper](src/OptionsCompounder.sol#L123) is not in mixedCase
+
+src/OptionsCompounder.sol#L123
+
+
+ - [ ] ID-30
+Function [OptionsCompounder.LENDING_POOL()](src/OptionsCompounder.sol#L367-L369) is not in mixedCase
+
+src/OptionsCompounder.sol#L367-L369
+
+
+ - [ ] ID-31
+Parameter [OptionsCompounder.setAddressProvider(address)._addressProvider](src/OptionsCompounder.sol#L134) is not in mixedCase
+
+src/OptionsCompounder.sol#L134
+
+## Options Token Slither
+
+Summary
+ - [missing-zero-check](#missing-zero-check) (2 results) (Low)
+ - [reentrancy-events](#reentrancy-events) (1 results) (Low)
+ - [timestamp](#timestamp) (1 results) (Low)
+ - [pragma](#pragma) (1 results) (Informational)
+ - [solc-version](#solc-version) (1 results) (Informational)
+ - [naming-convention](#naming-convention) (3 results) (Informational)
+## missing-zero-check
+Impact: Low
+Confidence: Medium
+ - [ ] ID-0
+[OptionsToken.initialize(string,string,address).tokenAdmin_](src/OptionsToken.sol#L60) lacks a zero-check on :
+ - [tokenAdmin = tokenAdmin_](src/OptionsToken.sol#L65)
+
+src/OptionsToken.sol#L60
+
+
+ - [ ] ID-1
+[OptionsToken.initiateUpgradeCooldown(address)._nextImplementation](src/OptionsToken.sol#L178) lacks a zero-check on :
+ - [nextImplementation = _nextImplementation](src/OptionsToken.sol#L180)
+
+src/OptionsToken.sol#L178
+
+
+## reentrancy-events
+Impact: Low
+Confidence: Medium
+ - [ ] ID-2
+Reentrancy in [OptionsToken._exercise(uint256,address,address,bytes)](src/OptionsToken.sol#L144-L168):
+ External calls:
+ - [(paymentAmount,data0,data1,data2) = IExercise(option).exercise(msg.sender,amount,recipient,params)](src/OptionsToken.sol#L164)
+ Event emitted after the call(s):
+ - [Exercise(msg.sender,recipient,amount,data0,data1,data2)](src/OptionsToken.sol#L167)
+
+src/OptionsToken.sol#L144-L168
+
+
+## timestamp
+Impact: Low
+Confidence: Medium
+ - [ ] ID-3
+[OptionsToken._authorizeUpgrade(address)](src/OptionsToken.sol#L202-L206) uses timestamp for comparisons
+ Dangerous comparisons:
+ - [require(bool,string)(upgradeProposalTime + UPGRADE_TIMELOCK < block.timestamp,Upgrade cooldown not initiated or still ongoing)](src/OptionsToken.sol#L203)
+
+src/OptionsToken.sol#L202-L206
+
+
+## pragma
+Impact: Informational
+Confidence: High
+ - [ ] ID-4
+11 different versions of Solidity are used:
+ - Version constraint ^0.8.0 is used by:
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)
+ -[^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)
+ -[^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)
+ -[^0.8.0](src/OptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)
+ -[^0.8.0](src/interfaces/IFlashLoanReceiver.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPool.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPoolAddressesProvider.sol#L2)
+ -[^0.8.0](src/interfaces/IOptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](src/libraries/DataTypes.sol#L2)
+ - Version constraint ^0.8.2 is used by:
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)
+ - Version constraint ^0.8.1 is used by:
+ -[^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)
+ -[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)
+ - Version constraint >=0.8.0 is used by:
+ -[>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)
+ -[>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)
+ -[>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)
+ - Version constraint >=0.5.0 is used by:
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)
+ -[>=0.5.0](src/interfaces/IAlgebraPool.sol#L2)
+ - Version constraint >=0.7.5 is used by:
+ -[>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)
+ - Version constraint >=0.6.2 is used by:
+ -[>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)
+ - Version constraint >=0.6.0 is used by:
+ -[>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)
+ - Version constraint ^0.8.13 is used by:
+ -[^0.8.13](src/OptionsToken.sol#L2)
+ -[^0.8.13](src/exercise/BaseExercise.sol#L2)
+ -[^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ -[^0.8.13](src/helpers/SwapHelper.sol#L3)
+ -[^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ -[^0.8.13](src/interfaces/IExercise.sol#L2)
+ -[^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ -[^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ -[^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ -[^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ -[^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+ - Version constraint >=0.7.0<0.9.0 is used by:
+ -[>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)
+ -[>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)
+ -[>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)
+ - Version constraint >=0.5 is used by:
+ -[>=0.5](src/interfaces/IThenaPair.sol#L1)
+
+lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4
+
+
+## solc-version
+Impact: Informational
+Confidence: High
+ - [ ] ID-5
+Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
+ - VerbatimInvalidDeduplication
+ - FullInlinerNonExpressionSplitArgumentEvaluationOrder
+ - MissingSideEffectsOnSelectorAccess
+ - StorageWriteRemovalBeforeConditionalTermination
+ - AbiReencodingHeadOverflowWithStaticArrayCleanup
+ - DirtyBytesArrayToStorage
+ - InlineAssemblyMemorySideEffects
+ - DataLocationChangeInInternalOverride
+ - NestedCalldataArrayAbiReencodingSizeValidation.
+It is used by:
+ - [^0.8.13](src/OptionsToken.sol#L2)
+ - [^0.8.13](src/exercise/BaseExercise.sol#L2)
+ - [^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ - [^0.8.13](src/helpers/SwapHelper.sol#L3)
+ - [^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ - [^0.8.13](src/interfaces/IExercise.sol#L2)
+ - [^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ - [^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ - [^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ - [^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ - [^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+
+src/OptionsToken.sol#L2
+
+
+## naming-convention
+Impact: Informational
+Confidence: High
+ - [ ] ID-6
+Parameter [OptionsToken.initiateUpgradeCooldown(address)._nextImplementation](src/OptionsToken.sol#L178) is not in mixedCase
+
+src/OptionsToken.sol#L178
+
+
+ - [ ] ID-7
+Parameter [OptionsToken.setExerciseContract(address,bool)._isExercise](src/OptionsToken.sol#L125) is not in mixedCase
+
+src/OptionsToken.sol#L125
+
+
+ - [ ] ID-8
+Parameter [OptionsToken.setExerciseContract(address,bool)._address](src/OptionsToken.sol#L125) is not in mixedCase
+
+src/OptionsToken.sol#L125
+
+## Thena Oracle Slither
+
+Summary
+ - [pragma](#pragma) (1 results) (Informational)
+ - [solc-version](#solc-version) (1 results) (Informational)
+ - [immutable-states](#immutable-states) (1 results) (Optimization)
+## pragma
+Impact: Informational
+Confidence: High
+ - [ ] ID-0
+11 different versions of Solidity are used:
+ - Version constraint ^0.8.0 is used by:
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)
+ -[^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)
+ -[^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)
+ -[^0.8.0](src/OptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)
+ -[^0.8.0](src/interfaces/IFlashLoanReceiver.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPool.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPoolAddressesProvider.sol#L2)
+ -[^0.8.0](src/interfaces/IOptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](src/libraries/DataTypes.sol#L2)
+ - Version constraint ^0.8.2 is used by:
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)
+ - Version constraint ^0.8.1 is used by:
+ -[^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)
+ -[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)
+ - Version constraint >=0.8.0 is used by:
+ -[>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)
+ -[>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)
+ -[>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)
+ - Version constraint >=0.5.0 is used by:
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)
+ -[>=0.5.0](src/interfaces/IAlgebraPool.sol#L2)
+ - Version constraint >=0.7.5 is used by:
+ -[>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)
+ - Version constraint >=0.6.2 is used by:
+ -[>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)
+ - Version constraint >=0.6.0 is used by:
+ -[>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)
+ - Version constraint ^0.8.13 is used by:
+ -[^0.8.13](src/OptionsToken.sol#L2)
+ -[^0.8.13](src/exercise/BaseExercise.sol#L2)
+ -[^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ -[^0.8.13](src/helpers/SwapHelper.sol#L3)
+ -[^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ -[^0.8.13](src/interfaces/IExercise.sol#L2)
+ -[^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ -[^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ -[^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ -[^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ -[^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+ - Version constraint >=0.7.0<0.9.0 is used by:
+ -[>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)
+ -[>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)
+ -[>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)
+ - Version constraint >=0.5 is used by:
+ -[>=0.5](src/interfaces/IThenaPair.sol#L1)
+
+lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4
+
+
+## solc-version
+Impact: Informational
+Confidence: High
+ - [ ] ID-1
+Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
+ - VerbatimInvalidDeduplication
+ - FullInlinerNonExpressionSplitArgumentEvaluationOrder
+ - MissingSideEffectsOnSelectorAccess
+ - StorageWriteRemovalBeforeConditionalTermination
+ - AbiReencodingHeadOverflowWithStaticArrayCleanup
+ - DirtyBytesArrayToStorage
+ - InlineAssemblyMemorySideEffects
+ - DataLocationChangeInInternalOverride
+ - NestedCalldataArrayAbiReencodingSizeValidation.
+It is used by:
+ - [^0.8.13](src/OptionsToken.sol#L2)
+ - [^0.8.13](src/exercise/BaseExercise.sol#L2)
+ - [^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ - [^0.8.13](src/helpers/SwapHelper.sol#L3)
+ - [^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ - [^0.8.13](src/interfaces/IExercise.sol#L2)
+ - [^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ - [^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ - [^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ - [^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ - [^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+
+src/OptionsToken.sol#L2
+
+
+## immutable-states
+Impact: Optimization
+Confidence: High
+ - [ ] ID-2
+[ThenaOracle.isToken0](src/oracles/ThenaOracle.sol#L60) should be immutable
+
+src/oracles/ThenaOracle.sol#L60
+
+## Base Exercise Slither
+
+Summary
+ - [arbitrary-send-erc20](#arbitrary-send-erc20) (2 results) (High)
+ - [reentrancy-events](#reentrancy-events) (5 results) (Low)
+ - [pragma](#pragma) (1 results) (Informational)
+ - [solc-version](#solc-version) (1 results) (Informational)
+ - [naming-convention](#naming-convention) (2 results) (Informational)
+## arbitrary-send-erc20
+Impact: High
+Confidence: High
+ - [ ] ID-0
+[BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L73-L82) uses arbitrary from in transferFrom: [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L77)
+
+src/exercise/BaseExercise.sol#L73-L82
+
+
+ - [ ] ID-1
+[BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L73-L82) uses arbitrary from in transferFrom: [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L80)
+
+src/exercise/BaseExercise.sol#L73-L82
+
+
+## reentrancy-events
+Impact: Low
+Confidence: Medium
+ - [ ] ID-2
+Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249):
+ External calls:
+ - [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L228)
+ - [amountOut = _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L230-L232)
+ - [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L72)
+ - [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L74)
+ - [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L76)
+ - [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L78)
+ - [underlyingToken.approve(swapProps.swapper,0)](src/exercise/DiscountExercise.sol#L239)
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L90)
+ - [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L93)
+ - [_pay(recipient,underlyingAmount)](src/exercise/DiscountExercise.sol#L246)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L272)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L275)
+ External calls sending eth:
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [_pay(recipient,underlyingAmount)](src/exercise/DiscountExercise.sol#L246)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ Event emitted after the call(s):
+ - [Exercised(from,recipient,underlyingAmount,paymentAmount)](src/exercise/DiscountExercise.sol#L248)
+
+src/exercise/DiscountExercise.sol#L211-L249
+
+
+ - [ ] ID-3
+Reentrancy in [BaseExercise.distributeFees(uint256,IERC20)](src/exercise/BaseExercise.sol#L86-L95):
+ External calls:
+ - [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L90)
+ - [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L93)
+ Event emitted after the call(s):
+ - [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L94)
+
+src/exercise/BaseExercise.sol#L86-L95
+
+
+ - [ ] ID-4
+Reentrancy in [DiscountExercise._zap(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L211-L249):
+ External calls:
+ - [underlyingToken.approve(swapProps.swapper,feeAmount)](src/exercise/DiscountExercise.sol#L228)
+ - [amountOut = _generalSwap(swapProps.exchangeTypes,address(underlyingToken),address(paymentToken),feeAmount,minAmountOut,swapProps.exchangeAddress)](src/exercise/DiscountExercise.sol#L230-L232)
+ - [_swapper.swapUniV2(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L72)
+ - [_swapper.swapBal(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L74)
+ - [_swapper.swapVelo(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L76)
+ - [_swapper.swapUniV3(tokenIn,tokenOut,amount,minAmountOutData,exchangeAddress)](src/helpers/SwapHelper.sol#L78)
+ - [underlyingToken.approve(swapProps.swapper,0)](src/exercise/DiscountExercise.sol#L239)
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [token.safeTransfer(feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L90)
+ - [token.safeTransfer(feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L93)
+ External calls sending eth:
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ Event emitted after the call(s):
+ - [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L94)
+ - [distributeFees(paymentToken.balanceOf(address(this)),paymentToken)](src/exercise/DiscountExercise.sol#L242)
+
+src/exercise/DiscountExercise.sol#L211-L249
+
+
+ - [ ] ID-5
+Reentrancy in [DiscountExercise._redeem(address,uint256,address,DiscountExerciseParams)](src/exercise/DiscountExercise.sol#L252-L267):
+ External calls:
+ - [distributeFeesFrom(paymentAmount,paymentToken,from)](src/exercise/DiscountExercise.sol#L262)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L77)
+ - [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L80)
+ - [_pay(recipient,amount)](src/exercise/DiscountExercise.sol#L264)
+ - [returndata = address(token).functionCall(data,SafeERC20: low-level call failed)](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L110)
+ - [underlyingToken.safeTransfer(to,balance)](src/exercise/DiscountExercise.sol#L272)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [underlyingToken.safeTransfer(to,amount)](src/exercise/DiscountExercise.sol#L275)
+ External calls sending eth:
+ - [distributeFeesFrom(paymentAmount,paymentToken,from)](src/exercise/DiscountExercise.sol#L262)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ - [_pay(recipient,amount)](src/exercise/DiscountExercise.sol#L264)
+ - [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)
+ Event emitted after the call(s):
+ - [Exercised(from,recipient,amount,paymentAmount)](src/exercise/DiscountExercise.sol#L266)
+
+src/exercise/DiscountExercise.sol#L252-L267
+
+
+ - [ ] ID-6
+Reentrancy in [BaseExercise.distributeFeesFrom(uint256,IERC20,address)](src/exercise/BaseExercise.sol#L73-L82):
+ External calls:
+ - [token.safeTransferFrom(from,feeRecipients[i],feeAmount)](src/exercise/BaseExercise.sol#L77)
+ - [token.safeTransferFrom(from,feeRecipients[feeRecipients.length - 1],remaining)](src/exercise/BaseExercise.sol#L80)
+ Event emitted after the call(s):
+ - [DistributeFees(feeRecipients,feeBPS,totalAmount)](src/exercise/BaseExercise.sol#L81)
+
+src/exercise/BaseExercise.sol#L73-L82
+
+
+## pragma
+Impact: Informational
+Confidence: High
+ - [ ] ID-7
+11 different versions of Solidity are used:
+ - Version constraint ^0.8.0 is used by:
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol#L5)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/security/Pausable.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#L4)
+ -[^0.8.0](lib/openzeppelin-contracts/contracts/utils/Context.sol#L4)
+ -[^0.8.0](lib/v3-core/contracts/libraries/FullMath.sol#L2)
+ -[^0.8.0](lib/v3-core/contracts/libraries/TickMath.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/ReaperSwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/AggregatorV3Interface.sol#L4)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAsset.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IAuthorizer.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBasePool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBaseWeightedPool.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IBeetVault.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IPoolSwapStructs.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISignaturesValidator.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapErrors.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapper.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/ITemporarilyPausable.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IUniswapV2Router01.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloPair.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloRouter.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/interfaces/IVeloV1AndV2Factory.sol#L2)
+ -[^0.8.0](lib/vault-v2/src/libraries/Babylonian.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/libraries/ReaperMathUtils.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/BalMixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/ReaperAccessControl.sol#L5)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV2Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/UniV3Mixin.sol#L3)
+ -[^0.8.0](lib/vault-v2/src/mixins/VeloSolidMixin.sol#L3)
+ -[^0.8.0](src/OptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/IBalancerTwapOracle.sol#L15)
+ -[^0.8.0](src/interfaces/IFlashLoanReceiver.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPool.sol#L2)
+ -[^0.8.0](src/interfaces/ILendingPoolAddressesProvider.sol#L2)
+ -[^0.8.0](src/interfaces/IOptionsCompounder.sol#L3)
+ -[^0.8.0](src/interfaces/ISwapperSwaps.sol#L3)
+ -[^0.8.0](src/libraries/DataTypes.sol#L2)
+ - Version constraint ^0.8.2 is used by:
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)
+ -[^0.8.2](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)
+ - Version constraint ^0.8.1 is used by:
+ -[^0.8.1](lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol#L4)
+ -[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)
+ - Version constraint >=0.8.0 is used by:
+ -[>=0.8.0](lib/solmate/src/auth/Owned.sol#L2)
+ -[>=0.8.0](lib/solmate/src/tokens/ERC20.sol#L2)
+ -[>=0.8.0](lib/solmate/src/utils/FixedPointMathLib.sol#L2)
+ - Version constraint >=0.5.0 is used by:
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol#L2)
+ -[>=0.5.0](lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IPeripheryImmutableState.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3Factory.sol#L2)
+ -[>=0.5.0](lib/vault-v2/src/interfaces/IUniswapV3SwapCallback.sol#L2)
+ -[>=0.5.0](src/interfaces/IAlgebraPool.sol#L2)
+ - Version constraint >=0.7.5 is used by:
+ -[>=0.7.5](lib/vault-v2/src/interfaces/ISwapRouter.sol#L2)
+ - Version constraint >=0.6.2 is used by:
+ -[>=0.6.2](lib/vault-v2/src/interfaces/IUniswapV2Router02.sol#L2)
+ - Version constraint >=0.6.0 is used by:
+ -[>=0.6.0](lib/vault-v2/src/libraries/TransferHelper.sol#L2)
+ - Version constraint ^0.8.13 is used by:
+ -[^0.8.13](src/OptionsToken.sol#L2)
+ -[^0.8.13](src/exercise/BaseExercise.sol#L2)
+ -[^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ -[^0.8.13](src/helpers/SwapHelper.sol#L3)
+ -[^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ -[^0.8.13](src/interfaces/IExercise.sol#L2)
+ -[^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ -[^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ -[^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ -[^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ -[^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+ - Version constraint >=0.7.0<0.9.0 is used by:
+ -[>=0.7.0<0.9.0](src/interfaces/IBalancerVault.sol#L17)
+ -[>=0.7.0<0.9.0](src/interfaces/IERC20Mintable.sol#L3)
+ -[>=0.7.0<0.9.0](src/interfaces/IOracle.sol#L3)
+ - Version constraint >=0.5 is used by:
+ -[>=0.5](src/interfaces/IThenaPair.sol#L1)
+
+lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol#L4
+
+
+## solc-version
+Impact: Informational
+Confidence: High
+ - [ ] ID-8
+Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
+ - VerbatimInvalidDeduplication
+ - FullInlinerNonExpressionSplitArgumentEvaluationOrder
+ - MissingSideEffectsOnSelectorAccess
+ - StorageWriteRemovalBeforeConditionalTermination
+ - AbiReencodingHeadOverflowWithStaticArrayCleanup
+ - DirtyBytesArrayToStorage
+ - InlineAssemblyMemorySideEffects
+ - DataLocationChangeInInternalOverride
+ - NestedCalldataArrayAbiReencodingSizeValidation.
+It is used by:
+ - [^0.8.13](src/OptionsToken.sol#L2)
+ - [^0.8.13](src/exercise/BaseExercise.sol#L2)
+ - [^0.8.13](src/exercise/DiscountExercise.sol#L2)
+ - [^0.8.13](src/helpers/SwapHelper.sol#L3)
+ - [^0.8.13](src/interfaces/IBalancer2TokensPool.sol#L2)
+ - [^0.8.13](src/interfaces/IExercise.sol#L2)
+ - [^0.8.13](src/interfaces/IOptionsToken.sol#L2)
+ - [^0.8.13](src/oracles/AlgebraOracle.sol#L2)
+ - [^0.8.13](src/oracles/BalancerOracle.sol#L2)
+ - [^0.8.13](src/oracles/ThenaOracle.sol#L2)
+ - [^0.8.13](src/oracles/UniswapV3Oracle.sol#L2)
+
+src/OptionsToken.sol#L2
+
+
+## naming-convention
+Impact: Informational
+Confidence: High
+ - [ ] ID-9
+Parameter [BaseExercise.setFees(address[],uint256[])._feeRecipients](src/exercise/BaseExercise.sol#L55) is not in mixedCase
+
+src/exercise/BaseExercise.sol#L55
+
+
+ - [ ] ID-10
+Parameter [BaseExercise.setFees(address[],uint256[])._feeBPS](src/exercise/BaseExercise.sol#L55) is not in mixedCase
+
+src/exercise/BaseExercise.sol#L55
\ No newline at end of file
diff --git a/scripts/00_deploySwapper.ts b/scripts/00_deploySwapper.ts
new file mode 100644
index 0000000..60c015a
--- /dev/null
+++ b/scripts/00_deploySwapper.ts
@@ -0,0 +1,65 @@
+import { ethers, upgrades } from "hardhat";
+import config from './config.json';
+
+async function main() {
+ const contractsToDeploy = config.CONTRACTS_TO_DEPLOY;
+ const paymentToken = config.OT_PAYMENT_TOKEN;
+ const underlyingToken = config.OT_UNDERLYING_TOKEN;
+ const veloRouter = config.VELO_ROUTER;
+ const path1 = [{
+ from: paymentToken,
+ to: underlyingToken,
+ stable: false,
+ }];
+
+ const path2 = [{
+ from: underlyingToken,
+ to: paymentToken,
+ stable: false,
+ }];
+
+ const strategists: string[] = [
+ "0x1E71AEE6081f62053123140aacC7a06021D77348", // bongo
+ "0x81876677843D00a7D792E1617459aC2E93202576", // degenicus
+ "0x4C3490dF15edFa178333445ce568EC6D99b5d71c", // eidolon
+ "0xb26cd6633db6b0c9ae919049c1437271ae496d15", // zokunei
+ "0x60BC5E0440C867eEb4CbcE84bB1123fad2b262B1", // goober
+ ];
+ const multisigRoles: string[] = [
+ "0x90c75c11735A7eeeD06E993fC7aF6838d86A1Ba7", // super admin
+ "0xC17DfA7Eb4300871D5f022c107E07F98c750472e", // admin
+ "0x30d65Ae22BBbe44208Dd8964DDE31Def0Fc1B9ee", // guardian
+ ];
+
+ // ReaperSwapper
+ let swapper;
+ if(contractsToDeploy.includes("Swapper")){
+ const Swapper = await ethers.getContractFactory("ReaperSwapper");
+ const initializerArguments = [
+ strategists,
+ multisigRoles[2],
+ multisigRoles[0],
+ ];
+ swapper = await upgrades.deployProxy(
+ Swapper,
+ initializerArguments,
+ { kind: "uups", timeout: 0 },
+ );
+
+ await swapper.waitForDeployment();
+ console.log("Swapper deployed to:", await swapper.getAddress());
+ }
+ else {
+ swapper = await ethers.getContractAt("ReaperSwapper", config.SWAPPER);
+ }
+
+ await swapper.updateVeloSwapPath(paymentToken, underlyingToken, veloRouter, path1);
+ await swapper.updateVeloSwapPath(underlyingToken, paymentToken, veloRouter, path2);
+}
+
+// We recommend this pattern to be able to use async/await everywhere
+// and properly handle errors.
+main().catch((error) => {
+ console.error(error);
+ process.exitCode = 1;
+ });
\ No newline at end of file
diff --git a/scripts/01_deployOptionsTokenInfra.ts b/scripts/01_deployOptionsTokenInfra.ts
new file mode 100644
index 0000000..3f860fd
--- /dev/null
+++ b/scripts/01_deployOptionsTokenInfra.ts
@@ -0,0 +1,136 @@
+import { ethers, upgrades } from "hardhat";
+import { getImplementationAddress } from '@openzeppelin/upgrades-core';
+import config from './config.json';
+
+
+
+async function main() {
+ const swapper = await ethers.getContractAt("ReaperSwapper", config.SWAPPER);
+ const contractsToDeploy = config.CONTRACTS_TO_DEPLOY;
+ const thenaPair = config.ORACLE_SOURCE;
+ const targetToken = config.OT_UNDERLYING_TOKEN;
+ const owner = config.OWNER;
+ const secs = config.ORACLE_SECS;
+ const minPrice = config.ORACLE_MIN_PRICE;
+
+ const veloRouter = config.VELO_ROUTER;
+ const addressProvider = config.ADDRESS_PROVIDER;
+
+ //Oracle
+ let oracle;
+ if(contractsToDeploy.includes("ThenaOracle")){
+ oracle = await ethers.deployContract(
+ "ThenaOracle",
+ [thenaPair, targetToken, owner, secs, minPrice]
+ );
+ await oracle.waitForDeployment();
+ console.log(`Oracle deployed to: ${await oracle.getAddress()}`);
+ }
+ else{
+ oracle = await ethers.getContractAt("ThenaOracle", config.ORACLE);
+ }
+
+ // OptionsToken
+ let optionsToken;
+ if(contractsToDeploy.includes("OptionsToken")){
+ const tokenName = config.OT_NAME;
+ const symbol = config.OT_SYMBOL;
+ const tokenAdmin = config.OT_TOKEN_ADMIN;
+ const OptionsToken = await ethers.getContractFactory("OptionsToken");
+ optionsToken = await upgrades.deployProxy(
+ OptionsToken,
+ [tokenName, symbol, tokenAdmin],
+ { kind: "uups", initializer: "initialize" }
+ );
+
+ await optionsToken.waitForDeployment();
+ console.log(`OptionsToken deployed to: ${await optionsToken.getAddress()}`);
+ console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsToken.getAddress())}`);
+ }
+ else{
+ optionsToken = await ethers.getContractAt("OptionsToken", config.OPTIONS_TOKEN);
+ }
+
+ const swapProps = {
+ swapper: await swapper.getAddress(),
+ exchangeAddress: veloRouter,
+ exchangeTypes: 2, /* VeloSolid */
+ maxSwapSlippage: 500 /* 5% */
+ };
+
+ // Exercise
+ let exercise;
+ if(contractsToDeploy.includes("DiscountExercise")){
+ const paymentToken = config.OT_PAYMENT_TOKEN;
+ const multiplier = config.MULTIPLIER;
+ const feeRecipients = String(config.FEE_RECIPIENTS).split(",");
+ const feeBps = String(config.FEE_BPS).split(",");
+ const instantExitFee = config.INSTANT_EXIT_FEE;
+ const minAmountToTriggerSwap = config.MIN_AMOUNT_TO_TRIGGER_SWAP;
+
+ exercise = await ethers.deployContract(
+ "DiscountExercise",
+ [
+ await optionsToken.getAddress(),
+ owner,
+ paymentToken,
+ targetToken,
+ await oracle.getAddress(),
+ multiplier,
+ instantExitFee,
+ minAmountToTriggerSwap,
+ feeRecipients,
+ feeBps,
+ swapProps
+ ]
+ );
+ await exercise.waitForDeployment();
+ console.log(`Exercise deployed to: ${await exercise.getAddress()}`);
+
+ // Set exercise
+ const exerciseAddress = await exercise.getAddress();
+ await optionsToken.setExerciseContract(exerciseAddress, true);
+ console.log(`Exercise set to: ${exerciseAddress}`);
+ }
+ else{
+ exercise = await ethers.getContractAt("DiscountExercise", config.DISCOUNT_EXERCISE);
+ }
+
+
+ // OptionsCompounder
+ let optionsCompounder;
+
+ if(contractsToDeploy.includes("OptionsCompounder")){
+ const OptionsCompounder = await ethers.getContractFactory("OptionsCompounder");
+
+ // console.log("Proxy deployment: ", [optionsToken, addressProvider, swapper, swapProps, oracle]);
+ console.log("Proxy deployment: ", [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress()]);
+
+ optionsCompounder = await upgrades.deployProxy(
+ OptionsCompounder,
+ [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress()],
+ { kind: "uups", initializer: "initialize" }
+ );
+
+ // const optionsCompounder = await upgrades.deployProxy(
+ // OptionsCompounder,
+ // [optionsToken, addressProvider, swapper, swapProps, oracle],
+ // { kind: "uups", initializer: "initialize" }
+ // );
+
+ await optionsCompounder.waitForDeployment();
+ console.log(`OptionsCompounder deployed to: ${await optionsCompounder.getAddress()}`);
+ console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsCompounder.getAddress())}`);
+ }
+ else{
+ optionsCompounder = await ethers.getContractAt("OptionsCompounder", config.OPTIONS_COMPOUNDER);
+ }
+
+}
+
+// We recommend this pattern to be able to use async/await everywhere
+// and properly handle errors.
+main().catch((error) => {
+ console.error(error);
+ process.exitCode = 1;
+});
diff --git a/scripts/config.json b/scripts/config.json
index 3bbd012..79b6994 100644
--- a/scripts/config.json
+++ b/scripts/config.json
@@ -9,6 +9,8 @@
"OT_PAYMENT_TOKEN": "0xDfc7C877a950e49D2610114102175A06C2e3167a",
"OT_UNDERLYING_TOKEN": "0x4200000000000000000000000000000000000006",
"OT_TOKEN_ADMIN": "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
+ "VELO_ROUTER": "0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45",
+ "ADDRESS_PROVIDER": "0xEDc83309549e36f3c7FD8c2C5C54B4c8e5FA00FC",
"MULTIPLIER": 5000,
"FEE_RECIPIENTS": [
"0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
@@ -19,5 +21,16 @@
9000
],
"INSTANT_EXIT_FEE": 1000,
- "MIN_AMOUNT_TO_TRIGGER_SWAP": 1e15
+ "MIN_AMOUNT_TO_TRIGGER_SWAP": 1e15,
+ "CONTRACTS_TO_DEPLOY": [
+ "OptionsToken",
+ "DiscountExercise",
+ "OptionsCompounder",
+ "ThenaOracle"
+ ],
+ "SWAPPER": "0xd57957A73634B860f0E8c1907371BD4f3e42C2C3",
+ "DISCOUNT_EXERCISE": "undefined",
+ "OPTIONS_TOKEN": "undefined",
+ "OPTIONS_COMPOUNDER": "undefined",
+ "ORACLE": "undefined"
}
\ No newline at end of file
diff --git a/scripts/deploy.ts b/scripts/deploy.ts
deleted file mode 100644
index e111007..0000000
--- a/scripts/deploy.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-import { ethers, upgrades } from "hardhat";
-import { getImplementationAddress } from '@openzeppelin/upgrades-core';
-import config from './config.json';
-
-async function main() {
- const thenaPair = config.ORACLE_SOURCE;
- const targetToken = config.OT_UNDERLYING_TOKEN;
- const owner = config.OWNER;
- const secs = config.ORACLE_SECS;
- const minPrice = config.ORACLE_MIN_PRICE;
-
- const strategists: string[] = [
- "0x1E71AEE6081f62053123140aacC7a06021D77348", // bongo
- "0x81876677843D00a7D792E1617459aC2E93202576", // degenicus
- "0x4C3490dF15edFa178333445ce568EC6D99b5d71c", // eidolon
- "0xb26cd6633db6b0c9ae919049c1437271ae496d15", // zokunei
- "0x60BC5E0440C867eEb4CbcE84bB1123fad2b262B1", // goober
- ];
- const multisigRoles: string[] = [
- "0x90c75c11735A7eeeD06E993fC7aF6838d86A1Ba7", // super admin
- "0xC17DfA7Eb4300871D5f022c107E07F98c750472e", // admin
- "0x30d65Ae22BBbe44208Dd8964DDE31Def0Fc1B9ee", // guardian
- ];
-
- const veloRouter = "0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45";
- const addressProvider = "0xEDc83309549e36f3c7FD8c2C5C54B4c8e5FA00FC";
-
- // ReaperSwapper
- const Swapper = await ethers.getContractFactory("ReaperSwapper");
- const initializerArguments = [
- strategists,
- multisigRoles[2],
- multisigRoles[0],
- ];
- const swapper = await upgrades.deployProxy(
- Swapper,
- initializerArguments,
- { kind: "uups", timeout: 0 },
- );
-
- await swapper.waitForDeployment();
- console.log("Swapper deployed to:", await swapper.getAddress());
-
- //Oracle
- const oracle = await ethers.deployContract(
- "ThenaOracle",
- [thenaPair, targetToken, owner, secs, minPrice]
- );
- await oracle.waitForDeployment();
- console.log(`Oracle deployed to: ${await oracle.getAddress()}`);
-
- // OptionsToken
- const tokenName = config.OT_NAME;
- const symbol = config.OT_SYMBOL;
- const tokenAdmin = config.OT_TOKEN_ADMIN;
- const OptionsToken = await ethers.getContractFactory("OptionsToken");
- const optionsToken = await upgrades.deployProxy(
- OptionsToken,
- [tokenName, symbol, tokenAdmin],
- { kind: "uups", initializer: "initialize" }
- );
-
- await optionsToken.waitForDeployment();
- console.log(`OptionsToken deployed to: ${await optionsToken.getAddress()}`);
- console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsToken.getAddress())}`);
-
- // Exercise
- const paymentToken = config.OT_PAYMENT_TOKEN;
- const multiplier = config.MULTIPLIER;
- const feeRecipients = String(config.FEE_RECIPIENTS).split(",");
- const feeBps = String(config.FEE_BPS).split(",");
- const instantExitFee = config.INSTANT_EXIT_FEE;
- const minAmountToTriggerSwap = config.MIN_AMOUNT_TO_TRIGGER_SWAP;
-
- const swapProps = {
- swapper: await swapper.getAddress(),
- exchangeAddress: veloRouter,
- exchangeTypes: 2, /* VeloSolid */
- maxSwapSlippage: 500 /* 5% */
- };
-
- const exercise = await ethers.deployContract(
- "DiscountExercise",
- [
- await optionsToken.getAddress(),
- owner,
- paymentToken,
- targetToken,
- await oracle.getAddress(),
- multiplier,
- instantExitFee,
- minAmountToTriggerSwap,
- feeRecipients,
- feeBps,
- swapProps
- ]
- );
- await exercise.waitForDeployment();
- console.log(`Exercise deployed to: ${await exercise.getAddress()}`);
-
- // Set exercise
- const exerciseAddress = await exercise.getAddress();
- await optionsToken.setExerciseContract(exerciseAddress, true);
- console.log(`Exercise set to: ${exerciseAddress}`);
-
- //OptionsCompounder
- // const swapper = "0xe9A46021305B67Dbd6b35a4277FF0207E29320C2";
- // const oracle = "0xd36917a9e3a3bAE753b9503B251640703500aAFE";//await ethers.getContractAt("IOracle", "0xd36917a9e3a3bAE753b9503B251640703500aAFE");
- // const optionsToken = "0xe3F95Bc8Fd7b54C4D7a464A44b47E0e7d17F3940";
-
- const OptionsCompounder = await ethers.getContractFactory("OptionsCompounder");
-
- // console.log("Proxy deployment: ", [optionsToken, addressProvider, swapper, swapProps, oracle]);
- console.log("Proxy deployment: ", [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress()]);
-
- const optionsCompounder = await upgrades.deployProxy(
- OptionsCompounder,
- [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress()],
- { kind: "uups", initializer: "initialize" }
- );
-
- // const optionsCompounder = await upgrades.deployProxy(
- // OptionsCompounder,
- // [optionsToken, addressProvider, swapper, swapProps, oracle],
- // { kind: "uups", initializer: "initialize" }
- // );
-
- await optionsCompounder.waitForDeployment();
- console.log(`OptionsCompounder deployed to: ${await optionsCompounder.getAddress()}`);
- console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsCompounder.getAddress())}`);
-}
-
-// We recommend this pattern to be able to use async/await everywhere
-// and properly handle errors.
-main().catch((error) => {
- console.error(error);
- process.exitCode = 1;
-});
diff --git a/src/OptionsCompounder.sol b/src/OptionsCompounder.sol
index 27efa81..2c7bfc9 100644
--- a/src/OptionsCompounder.sol
+++ b/src/OptionsCompounder.sol
@@ -7,8 +7,8 @@ import {IFlashLoanReceiver} from "./interfaces/IFlashLoanReceiver.sol";
import {ILendingPoolAddressesProvider} from "./interfaces/ILendingPoolAddressesProvider.sol";
import {ILendingPool} from "./interfaces/ILendingPool.sol";
import {IOracle} from "./interfaces/IOracle.sol";
+import {IOptionsToken} from "./interfaces/IOptionsToken.sol";
import {DiscountExerciseParams, DiscountExercise} from "./exercise/DiscountExercise.sol";
-import {ReaperAccessControl} from "vault-v2/mixins/ReaperAccessControl.sol";
import {IERC20} from "oz/token/ERC20/IERC20.sol";
import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
import {OwnableUpgradeable} from "oz-upgradeable/access/OwnableUpgradeable.sol";
diff --git a/src/interfaces/IOptionsCompounder.sol b/src/interfaces/IOptionsCompounder.sol
index 916f3a9..492492b 100644
--- a/src/interfaces/IOptionsCompounder.sol
+++ b/src/interfaces/IOptionsCompounder.sol
@@ -2,8 +2,6 @@
pragma solidity ^0.8.0;
-import {IOptionsToken} from "./IOptionsToken.sol";
-
/* Errors */
error OptionsCompounder__NotExerciseContract();
error OptionsCompounder__TooMuchAssetsLoaned();
From 671ce4d75e3016614e8272ea033fc7000003d2e0 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Wed, 10 Jul 2024 11:10:39 +0200
Subject: [PATCH 60/64] Readme updates
---
README.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 1a91fd8..72888e1 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,18 @@
+# **Table of content**
+- [Description](#description)
+ - [OptionsToken](#optionstoken)
+ - [OptionsCompounder](#optionscompounder)
+- [Installation](#installation)
+ - [Local Development](#local-development)
+- [Testing](#testing)
+ - [Dynamic](#dynamic)
+ - [Static](#static)
+- [Deployment](#deployment)
+- [Checklist](#checklist)
+- [Frontend integration](#frontend-integration)
+
+
+
# Description
## OptionsToken
@@ -1656,4 +1671,58 @@ src/exercise/BaseExercise.sol#L55
- [ ] ID-10
Parameter [BaseExercise.setFees(address[],uint256[])._feeBPS](src/exercise/BaseExercise.sol#L55) is not in mixedCase
-src/exercise/BaseExercise.sol#L55
\ No newline at end of file
+src/exercise/BaseExercise.sol#L55
+
+# Frontend Integration
+
+Frontend shall allow to go through 3 different scenarios:
+- Pay [PaymentTokens](#paymenttoken) to [**redeem**](#redeem-flow) [UnderlyingTokens](#underlyingtoken) from OptionsTokens
+- [**Zap**](#zap-flow) OptionsTokens into the [UnderlyingTokens](#underlyingtoken)
+- [**Claim**](#claim-flow---optional) not exercised [UnderlyingTokens](#underlyingtoken) (due to lack of funds in exercise contract) -> this is probably optional frontend feature
+
+## Redeem flow
+ - Standard ERC20 approve action on [PaymentToken](#paymenttoken)
+ - Note: `getPaymentAmount(uint256 amount)` interface may be usefull to get correct amount of PaymentToken needed.
+ - Exercise optionsToken with following parameters:
+ - amount of options tokens to spend (defined by user)
+ - recipient of the [UnderlyingTokens](#underlyingtoken) transferred during exercise (user address)
+ - option of the exercise -> it is DiscountExercise contract address
+ - encoded params:
+ - maxPaymentAmount - calculated maximal payment amount (amount * price * multiplier). Price can be get from oracle contract using interface `getPrice()`. Multiplier can be get from DiscountExercise contract using interface `multiplier()`
+ - deadline - current block timestamp
+ - isInstantExit - determines whether it is redeem (false) or zap (true) action. **Shall be hardcoded to false.**
+ - Events emitted:
+ - `Exercise(address indexed sender, address indexed recipient, uint256 amount, address data0, uint256 data1, uint256 data2)` - from OptionsToken contract. data0, data1, data2 - are not used in this case.
+ - `Exercised(from, recipient, underlyingAmount, paymentAmount)` from DiscountExercise contract
+ - Note: Amount of [UnderlyingTokens](#underlyingtoken) to receive from redeeming is the same amount that is specified for optionsTokens.
+
+## Zap flow
+ - Call `exercise(uint256 amount, address recipient, address option, bytes calldata params)` from optionsToken contract with following parameters:
+ - amount of options tokens to spend (defined by user)
+ - recipient of the [UnderlyingTokens](#underlyingtoken) transferred during exercise (user address)
+ - option of the exercise -> it is DiscountExercise contract address
+ - encoded params:
+ - maxPaymentAmount - calculated maximal payment amount (amount * price * multiplier). Price can be get from oracle contract using interface `getPrice()`. Multiplier can be get from DiscountExercise contract using interface `multiplier()`
+ - deadline - current block timestamp
+ - isInstantExit - determines whether it is redeem (false) or zap (true) action. **Shall be hardcoded to true.**
+ - Events emitted:
+ - `Exercise(address indexed sender, address indexed recipient, uint256 amount, address data0, uint256 data1, uint256 data2)` - from OptionsToken contract. data0, data1, data2 - are not used in this case.
+ - `Exercised(from, recipient, underlyingAmount, paymentAmount)` from DiscountExercise contract
+ - Note: Amount of [UnderlyingTokens](#underlyingtoken) to receive from zapping is: amountOfOTokens * (1 - multiplier) * (1 - instantExitFee). Everything is denominated in BPS (10 000). InstantExitFee can be get by calling `instantExitFee()`.
+ - Note: `getPaymentAmount(uint256 amount)` interface may be usefull to get correct amount of PaymentToken needed.
+ - Note: Usually swap action happens here so standard events for swapping are here, but contract handles all actions like approvals etc
+
+## Claim flow - optional
+- Call `claim(address to)` with address of recipient of the [UnderlyingTokens](#underlyingtoken) transferred during claiming process
+- `Claimed(amount)` event is emitted
+
+## Changelog
+Main change between version 1.0.0 deployed on Harbor is the zap feature which requires additional variable in `params` argument (`isInstantExit`) of the `exercise(uint256 amount, address recipient, address option, bytes calldata params)` interface.
+Now frontend shall allow to obtain [UnderlyingTokens](#underlyingtoken) in two ways (redeem and zap).
+
+## Legend
+### PaymentToken
+Token used to pay for exercising options token. Ironclad -> MODE, Harbor -> WBNB
+### UnderlyingToken
+Token which can be obtained from exercising. Ironclad -> ICL, Harbor -> HBR
+
From 364e3ff486895e740478c8cb93bdcf9a110bc6f2 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Thu, 11 Jul 2024 13:28:52 +0200
Subject: [PATCH 61/64] Added access control only for strategies in
OptionsCompounder
---
README.md | 30 +++----
scripts/config.json | 13 ++-
src/OptionsCompounder.sol | 82 +++++++++++++++--
test/ItMode_OptionsCompounder.t.sol | 131 +++++++++++++++++++++++++---
4 files changed, 214 insertions(+), 42 deletions(-)
diff --git a/README.md b/README.md
index 72888e1..e008f01 100644
--- a/README.md
+++ b/README.md
@@ -32,8 +32,8 @@ The user will always interact with the OptionsToken itself, and never with any e
3. DiscountExercise decodes the parameters for the exercise function on the chosen exercise contract, and calls the specified function. In the case of zapping in DiscountExercise, the parameters are maxPaymentAmount, deadline, and isInstantExit set to true.
4. OptionsTokens are burnt.
5. A penalty fee in the form of underlying tokens (available in the contract) is calculated, then conditionally swapped to the desired token and distributed to the fee recipients.
- a. Swapping and distribution occur only when the fee amount exceeds a specified trigger to avoid swapping small amounts.
- b. The transaction reverts if the minimal desired amount of desired tokens is not obtained.
+ - Swapping and distribution occur only when the fee amount exceeds a specified trigger to avoid swapping small amounts.
+ - The transaction reverts if the minimal desired amount of desired tokens is not obtained.
6. The underlying tokens available in the DiscountExercise contract are sent to the user. The amount of underlying tokens is discounted by the multiplier and reduced by the penalty fee.
#### REDEEM
@@ -41,8 +41,8 @@ The user will always interact with the OptionsToken itself, and never with any e
2. User calls exercise on the OptionsToken, specifying their desired exercise contract and encoding exercise parameters
3. OptionsToken validates the exercise contract, decodes the parameters for the exercise function on the exercise contract of choice, and calls said function. In the case of DiscountExercise, the params are maxPaymentAmount, deadline and isInstantExit set to false.
4. oTokens are burnt, WETH is sent to the treasury, and underlyingTokens, discounted by the multiplier, are sent to the user exercising
- a. Can be priced using balancer, thena, univ3 twap oracles
- b. Reverts above maxPaymentAmount or past deadline
+ - Can be priced using balancer, thena, univ3 twap oracles
+ - Reverts above maxPaymentAmount or past deadline
## OptionsCompounder
@@ -56,12 +56,12 @@ The Compounder platform facilitates the utilization of flash loans to exercise t
4. Calculate Payment Amount from Discount Exercise given oToken balance
5. Flashloan the necessary amount of funds to exercise in paymentToken
6. Callback from flashloan is called
- a. oTokens are exercised using paymentToken that was flash loaned
- b. Underlying token is received by the strategy
- c. Calculate minAmountOut by directly querying the same oracle consumed by the DiscountExercise we interact with
- d. Swap entire amount into payment token to repay flashloan
- e. Assess profitability in units of paymentToken, swap profits to want of the strategy if not same token as paymentToken
- f. Emit event that reflects the oTokens compounded
+ - oTokens are exercised using paymentToken that was flash loaned
+ - Underlying token is received by the strategy
+ - Calculate minAmountOut by directly querying the same oracle consumed by the DiscountExercise we interact with
+ - Swap entire amount into payment token to repay flashloan
+ - Assess profitability in units of paymentToken, swap profits to want of the strategy if not same token as paymentToken
+ - Emit event that reflects the oTokens compounded
# Installation
@@ -143,11 +143,11 @@ There are 2 deployment scripts. One is for swapper and paths updates and second
- [x] Contracts pass all tests
- [x] Contracts deployed to testnet
- - [x] [DiscountExercise](https://explorer.mode.network/address/0xeE89a9e5022f967Fc2DDb0dEbfFb72bFc4FB4692?tab=contract)
- - [x] [ReaperSwapper](https://explorer.mode.network/address/0xd57957A73634B860f0E8c1907371BD4f3e42C2C3?tab=contract)
- - [x] [VeloOracle](https://explorer.mode.network/address/0x52B2732b29B4d6444e9930D7C328c082dA033d66?tab=contract)
- - [x] [OptionsToken](https://explorer.mode.network/address/0x8013e0c13D9262094D0A2cFC8DF2Aa11cE4D8203?tab=contract)
- - [x] [OptionsCompounder](https://explorer.mode.network/address/0x80c1FccB0c01A1EEafB422719A6A1048Fe92033f?=contract)
+ - [x] [DiscountExercise](https://explorer.mode.network/address/0xcb727532e24dFe22E74D3892b998f5e915676Da8?tab=contract)
+ - [x] [ReaperSwapper](https://explorer.mode.network/address/0x63D170618A8Ed1987F3CA6391b5e2F6a4554Cf53?tab=contract)
+ - [x] [VeloOracle](https://explorer.mode.network/address/0xDaA2c821428f62e1B08009a69CE824253CCEE5f9?tab=contract)
+ - [x] [OptionsToken](https://explorer.mode.network/address/0x3B6eA0fA8A487c90007ce120a83920fd52b06f6D?tab=contract)
+ - [ ] [OptionsCompounder](https://explorer.mode.network/address/0x80c1FccB0c01A1EEafB422719A6A1048Fe92033f?=contract)
- [x] Does this deployment have access to funds, either directly or indirectly (zappers, leveragers, etc.)?
Minimum security if Yes:
diff --git a/scripts/config.json b/scripts/config.json
index 79b6994..d2acad7 100644
--- a/scripts/config.json
+++ b/scripts/config.json
@@ -1,34 +1,31 @@
{
- "VERSION": "1.0.0",
+ "VERSION": "1.1.0",
"OWNER": "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
- "ORACLE_SOURCE": "0x0fba984c97539B3fb49ACDA6973288D0EFA903DB",
+ "ORACLE_SOURCE": "0x1349e6986084b65708D68A72C8EfCBD7Cf4D3FB2",
"ORACLE_SECS": 1800,
"ORACLE_MIN_PRICE": 10000000,
"OT_NAME": "ICL Call Option Token",
"OT_SYMBOL": "oICL",
"OT_PAYMENT_TOKEN": "0xDfc7C877a950e49D2610114102175A06C2e3167a",
- "OT_UNDERLYING_TOKEN": "0x4200000000000000000000000000000000000006",
+ "OT_UNDERLYING_TOKEN": "0x95177295a394f2b9b04545fff58f4af0673e839d",
"OT_TOKEN_ADMIN": "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
"VELO_ROUTER": "0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45",
"ADDRESS_PROVIDER": "0xEDc83309549e36f3c7FD8c2C5C54B4c8e5FA00FC",
"MULTIPLIER": 5000,
"FEE_RECIPIENTS": [
- "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
"0xd93E25A8B1D645b15f8c736E1419b4819Ff9e6EF"
],
"FEE_BPS": [
- 1000,
- 9000
+ 10000
],
"INSTANT_EXIT_FEE": 1000,
"MIN_AMOUNT_TO_TRIGGER_SWAP": 1e15,
"CONTRACTS_TO_DEPLOY": [
"OptionsToken",
"DiscountExercise",
- "OptionsCompounder",
"ThenaOracle"
],
- "SWAPPER": "0xd57957A73634B860f0E8c1907371BD4f3e42C2C3",
+ "SWAPPER": "0x63D170618A8Ed1987F3CA6391b5e2F6a4554Cf53",
"DISCOUNT_EXERCISE": "undefined",
"OPTIONS_TOKEN": "undefined",
"OPTIONS_COMPOUNDER": "undefined",
diff --git a/src/OptionsCompounder.sol b/src/OptionsCompounder.sol
index 2c7bfc9..cbfd400 100644
--- a/src/OptionsCompounder.sol
+++ b/src/OptionsCompounder.sol
@@ -35,6 +35,14 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
uint256 minPaymentAmount;
}
+ /* Modifier */
+ modifier onlyStrat(address _strat) {
+ if (!_isStratAvailable(_strat)) {
+ revert OptionsCompounder__OnlyStratAllowed();
+ }
+ _;
+ }
+
/* Constants */
uint8 constant MAX_NR_OF_FLASHLOAN_ASSETS = 1;
@@ -51,6 +59,7 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
uint256 public upgradeProposalTime;
address public nextImplementation;
+ address[] private strats;
/* Events */
event OTokenCompounded(uint256 indexed gainInPayment, uint256 indexed returned);
@@ -69,17 +78,23 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
* @param _addressProvider - address lending pool address provider - necessary for flashloan operations
* @param _swapProps - swap properites for all swaps in the contract
* @param _oracle - oracles used in all swaps in the contract
+ * @param _strats - list of strategies used to call harvestOTokens()
*
*/
- function initialize(address _optionsToken, address _addressProvider, address _swapper, SwapProps memory _swapProps, IOracle _oracle)
- public
- initializer
- {
+ function initialize(
+ address _optionsToken,
+ address _addressProvider,
+ address _swapper,
+ SwapProps memory _swapProps,
+ IOracle _oracle,
+ address[] memory _strats
+ ) public initializer {
__Ownable_init();
_setOptionsToken(_optionsToken);
_setSwapProps(_swapProps);
_setOracle(_oracle);
_setSwapper(_swapper);
+ _setStrats(_strats);
flashloanFinished = true;
_setAddressProvider(_addressProvider);
__UUPSUpgradeable_init();
@@ -143,6 +158,43 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
lendingPool = ILendingPool(addressProvider.getLendingPool());
}
+ function setStrats(address[] memory _strats) external onlyOwner {
+ _setStrats(_strats);
+ }
+
+ function _setStrats(address[] memory _strats) internal {
+ _deleteStrats();
+ for (uint256 idx = 0; idx < _strats.length; idx++) {
+ _addStrat(_strats[idx]);
+ }
+ }
+
+ function addStrat(address _strat) external onlyOwner {
+ _addStrat(_strat);
+ }
+
+ /**
+ * @dev Function will be used sporadically with number of strategies less than 10, so no need to add any gas optimization
+ */
+ function _addStrat(address _strat) internal {
+ if (_strat == address(0)) {
+ revert OptionsCompounder__ParamHasAddressZero();
+ }
+ if (!_isStratAvailable(_strat)) {
+ strats.push(_strat);
+ }
+ }
+
+ function deleteStrats() external onlyOwner {
+ _deleteStrats();
+ }
+
+ function _deleteStrats() internal {
+ if (strats.length != 0) {
+ delete strats;
+ }
+ }
+
/**
* @notice Function initiates flashloan to get assets for exercising options.
* @dev Can be executed only by keeper role. Reentrance protected.
@@ -150,7 +202,7 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
* @param exerciseContract - address of exercise contract (DiscountContract)
* @param minWantAmount - minimal amount of want when the flashloan is considered as profitable
*/
- function harvestOTokens(uint256 amount, address exerciseContract, uint256 minWantAmount) external {
+ function harvestOTokens(uint256 amount, address exerciseContract, uint256 minWantAmount) external onlyStrat(msg.sender) {
_harvestOTokens(amount, exerciseContract, minWantAmount);
}
@@ -356,6 +408,26 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
/**
* Getters **********************************
*/
+ function isStratAvailable(address strat) external view returns (bool) {
+ return _isStratAvailable(strat);
+ }
+
+ function _isStratAvailable(address strat) internal view returns (bool) {
+ bool isStrat = false;
+ address[] memory _strats = strats;
+ for (uint256 idx = 0; idx < _strats.length; idx++) {
+ if (strat == _strats[idx]) {
+ isStrat = true;
+ break;
+ }
+ }
+ return isStrat;
+ }
+
+ function getStrats() external view returns (address[] memory) {
+ return strats;
+ }
+
function getOptionTokenAddress() external view returns (address) {
return address(optionsToken);
}
diff --git a/test/ItMode_OptionsCompounder.t.sol b/test/ItMode_OptionsCompounder.t.sol
index ea91da9..d5df370 100644
--- a/test/ItMode_OptionsCompounder.t.sol
+++ b/test/ItMode_OptionsCompounder.t.sol
@@ -27,6 +27,8 @@ contract ItModeOptionsCompounder is Common {
// ReaperStrategyGranary strategy;
IOracle oracle;
+ address[] strategies;
+
function setUp() public {
/* Common assignments */
ExchangeType exchangeType = ExchangeType.VeloSolid;
@@ -96,11 +98,12 @@ contract ItModeOptionsCompounder is Common {
optionsTokenProxy.setExerciseContract(address(exerciser), true);
/* Strategy deployment */
+ strategies.push(makeAddr("strategy"));
optionsCompounder = new OptionsCompounder();
tmpProxy = new ERC1967Proxy(address(optionsCompounder), "");
optionsCompounder = OptionsCompounder(address(tmpProxy));
console.log("Initializing...");
- optionsCompounder.initialize(address(optionsTokenProxy), address(addressProvider), address(reaperSwapper), swapProps, oracle);
+ optionsCompounder.initialize(address(optionsTokenProxy), address(addressProvider), address(reaperSwapper), swapProps, oracle, strategies);
vm.stopPrank();
@@ -127,18 +130,19 @@ contract ItModeOptionsCompounder is Common {
/* Prepare option tokens - distribute them to the specified strategy
and approve for spending */
- fixture_prepareOptionToken(amount, address(optionsCompounder), address(this), optionsTokenProxy, tokenAdmin);
+ fixture_prepareOptionToken(amount, address(optionsCompounder), strategies[0], optionsTokenProxy, tokenAdmin);
/* Check balances before compounding */
- uint256 paymentTokenBalance = paymentToken.balanceOf(address(optionsCompounder));
+ uint256 paymentTokenBalance = paymentToken.balanceOf(strategies[0]);
// vm.startPrank(address(strategy));
/* already approved in fixture_prepareOptionToken */
+ vm.prank(strategies[0]);
optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
// vm.stopPrank();
/* Assertions */
- assertGt(paymentToken.balanceOf(address(this)), paymentTokenBalance + minAmount, "Gain not greater than 0");
+ assertGt(paymentToken.balanceOf(strategies[0]), paymentTokenBalance + minAmount, "Gain not greater than 0");
assertEq(optionsTokenProxy.balanceOf(address(optionsCompounder)), 0, "Options token balance in compounder is 0");
assertEq(paymentToken.balanceOf(address(optionsCompounder)), 0, "Payment token balance in compounder is 0");
}
@@ -149,7 +153,12 @@ contract ItModeOptionsCompounder is Common {
vm.assume(randomOption != address(0));
vm.assume(hacker != owner);
address addressProvider = makeAddr("AddressProvider");
+ address[] memory strats = new address[](2);
+ strats[0] = makeAddr("strat1");
+ strats[1] = makeAddr("strat2");
+
SwapProps memory swapProps = SwapProps(address(reaperSwapper), address(swapRouter), ExchangeType.UniV3, 200);
+
/* Hacker tries to perform harvest */
vm.startPrank(hacker);
@@ -165,6 +174,103 @@ contract ItModeOptionsCompounder is Common {
vm.expectRevert("Ownable: caller is not the owner");
optionsCompounder.setAddressProvider(addressProvider);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.setStrats(strats);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.addStrat(strats[0]);
+
+ vm.expectRevert("Ownable: caller is not the owner");
+ optionsCompounder.deleteStrats();
+
+ vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
+ optionsCompounder.harvestOTokens(amount, address(exerciser), 1);
+
+ vm.stopPrank();
+
+ /* Admin tries to set different option token */
+ vm.startPrank(owner);
+ optionsCompounder.setOptionsToken(randomOption);
+ vm.stopPrank();
+ assertEq(address(optionsCompounder.getOptionTokenAddress()), randomOption);
+ }
+
+ function test_stratsSettings(address randomOption, uint256 amount) public {
+ /* Test vectors definition */
+ amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)) / 10);
+ vm.assume(randomOption != address(0));
+ address[] memory strats = new address[](2);
+ uint256 minAmount = 5;
+ strats[0] = makeAddr("strat1");
+ strats[1] = makeAddr("strat2");
+
+ fixture_prepareOptionToken(3 * amount, address(optionsCompounder), strats[0], optionsTokenProxy, tokenAdmin);
+ fixture_prepareOptionToken(3 * amount, address(optionsCompounder), strats[1], optionsTokenProxy, tokenAdmin);
+
+ vm.startPrank(strats[0]);
+ vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
+ vm.stopPrank();
+
+ address[] memory strategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < strategies.length; idx++) {
+ console.log("Strat: %s %s", idx, strategies[idx]);
+ }
+
+ vm.prank(owner);
+ optionsCompounder.setStrats(strats);
+
+ strategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < strategies.length; idx++) {
+ console.log("Strat: %s %s", idx, strategies[idx]);
+ }
+
+ assertEq(strategies.length, 2);
+
+ vm.prank(strats[0]);
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
+
+ vm.prank(strats[1]);
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
+
+ vm.prank(owner);
+ optionsCompounder.addStrat(strats[1]);
+
+ strategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < strategies.length; idx++) {
+ console.log("Strat: %s %s", idx, strategies[idx]);
+ }
+ assertEq(strategies.length, 2);
+
+ vm.prank(owner);
+ optionsCompounder.deleteStrats();
+
+ strategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < strategies.length; idx++) {
+ console.log("Strat: %s %s", idx, strategies[idx]);
+ }
+ assertEq(strategies.length, 0);
+
+ vm.startPrank(strats[0]);
+ vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
+ vm.startPrank(strats[1]);
+ vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
+ vm.stopPrank();
+
+ vm.prank(owner);
+ optionsCompounder.addStrat(strats[1]);
+
+ strategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < strategies.length; idx++) {
+ console.log("Strat: %s %s", idx, strategies[idx]);
+ }
+ assertEq(strategies.length, 1);
+
+ vm.startPrank(strats[1]);
+ optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
vm.stopPrank();
/* Admin tries to set different option token */
@@ -175,13 +281,12 @@ contract ItModeOptionsCompounder is Common {
}
function test_flashloanNegativeScenario_highTwapValueAndMultiplier(uint256 amount) public {
- address strategy = makeAddr("Strategy");
/* Test vectors definition */
amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
/* Prepare option tokens - distribute them to the specified strategy
and approve for spending */
- fixture_prepareOptionToken(amount, address(optionsCompounder), strategy, optionsTokenProxy, tokenAdmin);
+ fixture_prepareOptionToken(amount, address(optionsCompounder), strategies[0], optionsTokenProxy, tokenAdmin);
/* Decrease option discount in order to make redemption not profitable */
/* Notice: Multiplier must be higher than denom because of oracle inaccuracy (initTwap) or just change initTwap */
@@ -190,17 +295,15 @@ contract ItModeOptionsCompounder is Common {
vm.stopPrank();
/* Increase TWAP price to make flashloan not profitable */
+ vm.startPrank(strategies[0]);
/* Notice: additional protection is in exerciser: Exercise__SlippageTooHigh */
vm.expectRevert(bytes4(keccak256("OptionsCompounder__FlashloanNotProfitableEnough()")));
-
- vm.startPrank(strategy);
/* Already approved in fixture_prepareOptionToken */
optionsCompounder.harvestOTokens(amount, address(exerciser), NON_ZERO_PROFIT);
vm.stopPrank();
}
function test_flashloanNegativeScenario_tooHighMinAmounOfWantExpected(uint256 amount, uint256 minAmountOfPayment) public {
- address strategy = makeAddr("Strategy");
/* Test vectors definition */
amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
/* Decrease option discount in order to make redemption not profitable */
@@ -215,16 +318,17 @@ contract ItModeOptionsCompounder is Common {
/* Prepare option tokens - distribute them to the specified strategy
and approve for spending */
- fixture_prepareOptionToken(amount, address(optionsCompounder), address(this), optionsTokenProxy, tokenAdmin);
+ fixture_prepareOptionToken(amount, address(optionsCompounder), strategies[0], optionsTokenProxy, tokenAdmin);
+ vm.startPrank(strategies[0]);
/* Notice: additional protection is in exerciser: Exercise__SlippageTooHigh */
vm.expectRevert(bytes4(keccak256("OptionsCompounder__FlashloanNotProfitableEnough()")));
/* Already approved in fixture_prepareOptionToken */
optionsCompounder.harvestOTokens(amount, address(exerciser), minAmountOfPayment);
+ vm.stopPrank();
}
function test_callExecuteOperationWithoutFlashloanTrigger(uint256 amount, address executor) public {
- address strategy = makeAddr("Strategy");
/* Test vectors definition */
amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
@@ -244,7 +348,6 @@ contract ItModeOptionsCompounder is Common {
}
function test_harvestCallWithWrongExerciseContract(uint256 amount, address fuzzedExerciser) public {
- address strategy = makeAddr("Strategy");
/* Test vectors definition */
amount = bound(amount, maxUnderlyingAmount / 10, underlyingToken.balanceOf(address(exerciser)));
@@ -252,10 +355,10 @@ contract ItModeOptionsCompounder is Common {
/* Prepare option tokens - distribute them to the specified strategy
and approve for spending */
- fixture_prepareOptionToken(amount, address(optionsCompounder), strategy, optionsTokenProxy, tokenAdmin);
+ fixture_prepareOptionToken(amount, address(optionsCompounder), strategies[0], optionsTokenProxy, tokenAdmin);
- vm.startPrank(strategy);
/* Assertion */
+ vm.startPrank(strategies[0]);
vm.expectRevert(bytes4(keccak256("OptionsCompounder__NotExerciseContract()")));
optionsCompounder.harvestOTokens(amount, fuzzedExerciser, NON_ZERO_PROFIT);
vm.stopPrank();
From 201bbdecb566ca846523eda0d34a461127c74c30 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Fri, 12 Jul 2024 15:01:40 +0200
Subject: [PATCH 62/64] Updates after internal review
---
src/OptionsCompounder.sol | 14 ++------
src/interfaces/IOptionsCompounder.sol | 2 --
test/ItMode_OptionsCompounder.t.sol | 48 +++++++++++++--------------
3 files changed, 26 insertions(+), 38 deletions(-)
diff --git a/src/OptionsCompounder.sol b/src/OptionsCompounder.sol
index cbfd400..51592aa 100644
--- a/src/OptionsCompounder.sol
+++ b/src/OptionsCompounder.sol
@@ -36,8 +36,8 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
}
/* Modifier */
- modifier onlyStrat(address _strat) {
- if (!_isStratAvailable(_strat)) {
+ modifier onlyStrat() {
+ if (!_isStratAvailable(msg.sender)) {
revert OptionsCompounder__OnlyStratAllowed();
}
_;
@@ -185,10 +185,6 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
}
}
- function deleteStrats() external onlyOwner {
- _deleteStrats();
- }
-
function _deleteStrats() internal {
if (strats.length != 0) {
delete strats;
@@ -202,7 +198,7 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
* @param exerciseContract - address of exercise contract (DiscountContract)
* @param minWantAmount - minimal amount of want when the flashloan is considered as profitable
*/
- function harvestOTokens(uint256 amount, address exerciseContract, uint256 minWantAmount) external onlyStrat(msg.sender) {
+ function harvestOTokens(uint256 amount, address exerciseContract, uint256 minWantAmount) external onlyStrat {
_harvestOTokens(amount, exerciseContract, minWantAmount);
}
@@ -428,10 +424,6 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
return strats;
}
- function getOptionTokenAddress() external view returns (address) {
- return address(optionsToken);
- }
-
function ADDRESSES_PROVIDER() external view returns (ILendingPoolAddressesProvider) {
return addressProvider;
}
diff --git a/src/interfaces/IOptionsCompounder.sol b/src/interfaces/IOptionsCompounder.sol
index 492492b..1685df4 100644
--- a/src/interfaces/IOptionsCompounder.sol
+++ b/src/interfaces/IOptionsCompounder.sol
@@ -19,6 +19,4 @@ error OptionsCompounder__AmountOutIsZero();
interface IOptionsCompounder {
function harvestOTokens(uint256 amount, address exerciseContract, uint256 minWantAmount) external;
-
- function getOptionTokenAddress() external returns (address);
}
diff --git a/test/ItMode_OptionsCompounder.t.sol b/test/ItMode_OptionsCompounder.t.sol
index d5df370..d86339a 100644
--- a/test/ItMode_OptionsCompounder.t.sol
+++ b/test/ItMode_OptionsCompounder.t.sol
@@ -181,9 +181,6 @@ contract ItModeOptionsCompounder is Common {
vm.expectRevert("Ownable: caller is not the owner");
optionsCompounder.addStrat(strats[0]);
- vm.expectRevert("Ownable: caller is not the owner");
- optionsCompounder.deleteStrats();
-
vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
optionsCompounder.harvestOTokens(amount, address(exerciser), 1);
@@ -193,7 +190,7 @@ contract ItModeOptionsCompounder is Common {
vm.startPrank(owner);
optionsCompounder.setOptionsToken(randomOption);
vm.stopPrank();
- assertEq(address(optionsCompounder.getOptionTokenAddress()), randomOption);
+ assertEq(address(optionsCompounder.optionsToken()), randomOption);
}
function test_stratsSettings(address randomOption, uint256 amount) public {
@@ -213,20 +210,20 @@ contract ItModeOptionsCompounder is Common {
optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
vm.stopPrank();
- address[] memory strategies = optionsCompounder.getStrats();
- for (uint256 idx = 0; idx < strategies.length; idx++) {
- console.log("Strat: %s %s", idx, strategies[idx]);
+ address[] memory receivedStrategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < receivedStrategies.length; idx++) {
+ console.log("Strat: %s %s", idx, receivedStrategies[idx]);
}
vm.prank(owner);
optionsCompounder.setStrats(strats);
- strategies = optionsCompounder.getStrats();
- for (uint256 idx = 0; idx < strategies.length; idx++) {
- console.log("Strat: %s %s", idx, strategies[idx]);
+ receivedStrategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < receivedStrategies.length; idx++) {
+ console.log("Strat: %s %s", idx, receivedStrategies[idx]);
}
- assertEq(strategies.length, 2);
+ assertEq(receivedStrategies.length, 2);
vm.prank(strats[0]);
optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
@@ -237,20 +234,21 @@ contract ItModeOptionsCompounder is Common {
vm.prank(owner);
optionsCompounder.addStrat(strats[1]);
- strategies = optionsCompounder.getStrats();
- for (uint256 idx = 0; idx < strategies.length; idx++) {
- console.log("Strat: %s %s", idx, strategies[idx]);
+ receivedStrategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < receivedStrategies.length; idx++) {
+ console.log("Strat: %s %s", idx, receivedStrategies[idx]);
}
- assertEq(strategies.length, 2);
+ assertEq(receivedStrategies.length, 2);
+ address[] memory tmpStrats;
vm.prank(owner);
- optionsCompounder.deleteStrats();
+ optionsCompounder.setStrats(tmpStrats);
- strategies = optionsCompounder.getStrats();
- for (uint256 idx = 0; idx < strategies.length; idx++) {
- console.log("Strat: %s %s", idx, strategies[idx]);
+ receivedStrategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < receivedStrategies.length; idx++) {
+ console.log("Strat: %s %s", idx, receivedStrategies[idx]);
}
- assertEq(strategies.length, 0);
+ assertEq(receivedStrategies.length, 0);
vm.startPrank(strats[0]);
vm.expectRevert(bytes4(keccak256("OptionsCompounder__OnlyStratAllowed()")));
@@ -263,11 +261,11 @@ contract ItModeOptionsCompounder is Common {
vm.prank(owner);
optionsCompounder.addStrat(strats[1]);
- strategies = optionsCompounder.getStrats();
- for (uint256 idx = 0; idx < strategies.length; idx++) {
- console.log("Strat: %s %s", idx, strategies[idx]);
+ receivedStrategies = optionsCompounder.getStrats();
+ for (uint256 idx = 0; idx < receivedStrategies.length; idx++) {
+ console.log("Strat: %s %s", idx, receivedStrategies[idx]);
}
- assertEq(strategies.length, 1);
+ assertEq(receivedStrategies.length, 1);
vm.startPrank(strats[1]);
optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
@@ -277,7 +275,7 @@ contract ItModeOptionsCompounder is Common {
vm.startPrank(owner);
optionsCompounder.setOptionsToken(randomOption);
vm.stopPrank();
- assertEq(address(optionsCompounder.getOptionTokenAddress()), randomOption);
+ assertEq(address(optionsCompounder.optionsToken()), randomOption);
}
function test_flashloanNegativeScenario_highTwapValueAndMultiplier(uint256 amount) public {
From 94675e8a4fa314a4117b6e75fa25236e373d3e02 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Wed, 17 Jul 2024 11:13:34 +0200
Subject: [PATCH 63/64] Upgrading deployment scripts
---
README.md | 80 ++++++++-
package-lock.json | 135 ++++++++++++++-
package.json | 3 +-
scripts/01_deployOptionsTokenInfra.ts | 37 +++-
scripts/config.json | 17 +-
test/ItBsc_OptionsCompounder.t copy.solNOT | 187 ---------------------
6 files changed, 252 insertions(+), 207 deletions(-)
delete mode 100644 test/ItBsc_OptionsCompounder.t copy.solNOT
diff --git a/README.md b/README.md
index ea6b868..205bca8 100644
--- a/README.md
+++ b/README.md
@@ -116,9 +116,85 @@ forge test
# Deployment
Inside `./scripts` there is "config.json" where can be defined deployment configurations.
-You can choose which contract to deploy by adding/removing string in CONTRACTS_TO_DEPLOY. If some contracts are removed, there must be defined the address for already existing contract on the chain (example: SWAPPER, OPTIONS_COMPOUNDER).
+You can choose which contract to deploy by adding/removing string in CONTRACTS_TO_DEPLOY. If some contracts are removed from CONTRACTS_TO_DEPLOY, there must be defined the address for already existing contract on the chain (example: SWAPPER, OPTIONS_COMPOUNDER).
There are 2 deployment scripts. One is for swapper and paths updates and second for all optionsToken infra (swapper address must be passed here).
+## Examples of config.json
+### All contracts to deploy
+```
+{
+ "VERSION": "1.1.0",
+ "OWNER": ,
+ "ORACLE_SOURCE": ,
+ "ORACLE_SECS": 1800,
+ "ORACLE_MIN_PRICE": 10000000,
+ "OT_NAME": "ICL Call Option Token",
+ "OT_SYMBOL": "oICL",
+ "OT_PAYMENT_TOKEN": "0xDfc7C877a950e49D2610114102175A06C2e3167a",
+ "OT_UNDERLYING_TOKEN": "0x95177295a394f2b9b04545fff58f4af0673e839d",
+ "OT_TOKEN_ADMIN": "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
+ "VELO_ROUTER": "0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45",
+ "ADDRESS_PROVIDER": "0xEDc83309549e36f3c7FD8c2C5C54B4c8e5FA00FC",
+ "MULTIPLIER": 5000,
+ "FEE_RECIPIENTS": [
+
+ ],
+ "FEE_BPS": [
+ 10000
+ ],
+ "STRATS": [
+
+ ],
+ "INSTANT_EXIT_FEE": 1000,
+ "MIN_AMOUNT_TO_TRIGGER_SWAP": 1e15,
+ "CONTRACTS_TO_DEPLOY": [],
+ "SWAPPER": "0x63D170618A8Ed1987F3CA6391b5e2F6a4554Cf53",
+ "DISCOUNT_EXERCISE": "0xcb727532e24dFe22E74D3892b998f5e915676Da8",
+ "OPTIONS_TOKEN": "0x3B6eA0fA8A487c90007ce120a83920fd52b06f6D",
+ "OPTIONS_COMPOUNDER": "0xf6cf2065C35595c12B532e54ACDe5A4597e32e6e",
+ "ORACLE": "0xDaA2c821428f62e1B08009a69CE824253CCEE5f9"
+}
+```
+### Only configure options compounder (no deployments)
+```
+{
+ "VERSION": "1.1.0",
+ "OWNER": ,
+ "ORACLE_SOURCE": ,
+ "ORACLE_SECS": 1800,
+ "ORACLE_MIN_PRICE": 10000000,
+ "OT_NAME": "ICL Call Option Token",
+ "OT_SYMBOL": "oICL",
+ "OT_PAYMENT_TOKEN": "0xDfc7C877a950e49D2610114102175A06C2e3167a",
+ "OT_UNDERLYING_TOKEN": "0x95177295a394f2b9b04545fff58f4af0673e839d",
+ "OT_TOKEN_ADMIN": "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5",
+ "VELO_ROUTER": "0x3a63171DD9BebF4D07BC782FECC7eb0b890C2A45",
+ "ADDRESS_PROVIDER": "0xEDc83309549e36f3c7FD8c2C5C54B4c8e5FA00FC",
+ "MULTIPLIER": 5000,
+ "FEE_RECIPIENTS": [
+
+ ],
+ "FEE_BPS": [
+ 10000
+ ],
+ "STRATS": [
+
+ ],
+ "INSTANT_EXIT_FEE": 1000,
+ "MIN_AMOUNT_TO_TRIGGER_SWAP": 1e15,
+ "CONTRACTS_TO_DEPLOY": [
+ "OptionsToken",
+ "DiscountExercise",
+ "ThenaOracle"
+ ],
+ "SWAPPER": "0x63D170618A8Ed1987F3CA6391b5e2F6a4554Cf53",
+ "DISCOUNT_EXERCISE": "undefined",
+ "OPTIONS_TOKEN": "undefined",
+ "OPTIONS_COMPOUNDER": "undefined",
+ "ORACLE": "undefined"
+}
+```
+
# Checklist
## Internal Audit Checklist
@@ -148,7 +224,7 @@ There are 2 deployment scripts. One is for swapper and paths updates and second
- [x] [ReaperSwapper](https://explorer.mode.network/address/0x63D170618A8Ed1987F3CA6391b5e2F6a4554Cf53?tab=contract)
- [x] [VeloOracle](https://explorer.mode.network/address/0xDaA2c821428f62e1B08009a69CE824253CCEE5f9?tab=contract)
- [x] [OptionsToken](https://explorer.mode.network/address/0x3B6eA0fA8A487c90007ce120a83920fd52b06f6D?tab=contract)
- - [ ] [OptionsCompounder](https://explorer.mode.network/address/0x80c1FccB0c01A1EEafB422719A6A1048Fe92033f?=contract)
+ - [ ] [OptionsCompounder](https://explorer.mode.network/address/0xf6cf2065C35595c12B532e54ACDe5A4597e32e6e?tab=contract)
- [x] Unchecked External Calls
- [ ] Account abstraction/multicall issues
- [x] USE SLITHER
diff --git a/package-lock.json b/package-lock.json
index 6d88e8c..7265a9d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,8 @@
"@openzeppelin/hardhat-upgrades": "^3.0.1",
"dotenv": "^16.3.1",
"ethers": "^6.9.2",
- "hardhat": "^2.19.4"
+ "hardhat": "^2.19.4",
+ "hardhat-contract-sizer": "^2.10.0"
}
},
"node_modules/@adraffy/ens-normalize": {
@@ -112,6 +113,16 @@
"case": "^1.6.3"
}
},
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
@@ -4511,6 +4522,128 @@
}
}
},
+ "node_modules/hardhat-contract-sizer": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz",
+ "integrity": "sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "cli-table3": "^0.6.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.0.0"
+ }
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/cli-table3": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
+ "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hardhat-contract-sizer/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/hardhat-gas-reporter": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz",
diff --git a/package.json b/package.json
index 58f10dd..51bff4e 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,8 @@
"@openzeppelin/hardhat-upgrades": "^3.0.1",
"dotenv": "^16.3.1",
"ethers": "^6.9.2",
- "hardhat": "^2.19.4"
+ "hardhat": "^2.19.4",
+ "hardhat-contract-sizer": "^2.10.0"
},
"dependencies": {
"@nomicfoundation/hardhat-network-helpers": "^1.0.10"
diff --git a/scripts/01_deployOptionsTokenInfra.ts b/scripts/01_deployOptionsTokenInfra.ts
index 3f860fd..6e2f92e 100644
--- a/scripts/01_deployOptionsTokenInfra.ts
+++ b/scripts/01_deployOptionsTokenInfra.ts
@@ -27,7 +27,12 @@ async function main() {
console.log(`Oracle deployed to: ${await oracle.getAddress()}`);
}
else{
- oracle = await ethers.getContractAt("ThenaOracle", config.ORACLE);
+ try{
+ oracle = await ethers.getContractAt("ThenaOracle", config.ORACLE);
+ }
+ catch(error){
+ console.log("ThenaOracle NOT available due to lack of configuration");
+ }
}
// OptionsToken
@@ -48,7 +53,12 @@ async function main() {
console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsToken.getAddress())}`);
}
else{
- optionsToken = await ethers.getContractAt("OptionsToken", config.OPTIONS_TOKEN);
+ try{
+ optionsToken = await ethers.getContractAt("OptionsToken", config.OPTIONS_TOKEN);
+ }
+ catch(error){
+ console.log("OptionsToken NOT available due to lack of configuration");
+ }
}
const swapProps = {
@@ -93,22 +103,29 @@ async function main() {
console.log(`Exercise set to: ${exerciseAddress}`);
}
else{
- exercise = await ethers.getContractAt("DiscountExercise", config.DISCOUNT_EXERCISE);
+ try{
+ exercise = await ethers.getContractAt("DiscountExercise", config.DISCOUNT_EXERCISE);
+ }
+ catch(error){
+ console.log("DiscountExercise NOT available due to lack of configuration");
+ }
+
}
// OptionsCompounder
let optionsCompounder;
-
+ const strats = String(config.STRATS).split(",");
if(contractsToDeploy.includes("OptionsCompounder")){
+
const OptionsCompounder = await ethers.getContractFactory("OptionsCompounder");
// console.log("Proxy deployment: ", [optionsToken, addressProvider, swapper, swapProps, oracle]);
- console.log("Proxy deployment: ", [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress()]);
+ console.log("Proxy deployment: ", [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress(), strats]);
optionsCompounder = await upgrades.deployProxy(
OptionsCompounder,
- [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress()],
+ [await optionsToken.getAddress(), addressProvider, await swapper.getAddress(), swapProps, await oracle.getAddress(), strats],
{ kind: "uups", initializer: "initialize" }
);
@@ -123,7 +140,13 @@ async function main() {
console.log(`Implementation: ${await getImplementationAddress(ethers.provider, await optionsCompounder.getAddress())}`);
}
else{
- optionsCompounder = await ethers.getContractAt("OptionsCompounder", config.OPTIONS_COMPOUNDER);
+ try{
+ optionsCompounder = await ethers.getContractAt("OptionsCompounder", config.OPTIONS_COMPOUNDER);
+ await optionsCompounder.setStrats(strats);
+ }
+ catch(error){
+ console.log("OptionsCompounder NOT available due to lack of configuration");
+ }
}
}
diff --git a/scripts/config.json b/scripts/config.json
index d2acad7..c6a6bc3 100644
--- a/scripts/config.json
+++ b/scripts/config.json
@@ -18,16 +18,15 @@
"FEE_BPS": [
10000
],
+ "STRATS": [
+ "0xF29dA3595351dBFd0D647857C46F8D63Fc2e68C5"
+ ],
"INSTANT_EXIT_FEE": 1000,
"MIN_AMOUNT_TO_TRIGGER_SWAP": 1e15,
- "CONTRACTS_TO_DEPLOY": [
- "OptionsToken",
- "DiscountExercise",
- "ThenaOracle"
- ],
+ "CONTRACTS_TO_DEPLOY": [],
"SWAPPER": "0x63D170618A8Ed1987F3CA6391b5e2F6a4554Cf53",
- "DISCOUNT_EXERCISE": "undefined",
- "OPTIONS_TOKEN": "undefined",
- "OPTIONS_COMPOUNDER": "undefined",
- "ORACLE": "undefined"
+ "DISCOUNT_EXERCISE": "0xcb727532e24dFe22E74D3892b998f5e915676Da8",
+ "OPTIONS_TOKEN": "0x3B6eA0fA8A487c90007ce120a83920fd52b06f6D",
+ "OPTIONS_COMPOUNDER": "0xf6cf2065C35595c12B532e54ACDe5A4597e32e6e",
+ "ORACLE": "0xDaA2c821428f62e1B08009a69CE824253CCEE5f9"
}
\ No newline at end of file
diff --git a/test/ItBsc_OptionsCompounder.t copy.solNOT b/test/ItBsc_OptionsCompounder.t copy.solNOT
deleted file mode 100644
index ed73482..0000000
--- a/test/ItBsc_OptionsCompounder.t copy.solNOT
+++ /dev/null
@@ -1,187 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.13;
-
-import "./Common.sol";
-
-import {BalancerOracle} from "../src/oracles/BalancerOracle.sol";
-import {MockBalancerTwapOracle} from "../test/mocks/MockBalancerTwapOracle.sol";
-import {CErc20I} from "./strategies/interfaces/CErc20I.sol";
-import {Helper} from "./mocks/HelperFunctions.sol";
-import {FixedPointMathLib} from "solmate/utils/FixedPointMathLib.sol";
-import {IAToken} from "./strategies/interfaces/IAToken.sol";
-import {IThenaRamRouter} from "vault-v2/interfaces/IThenaRamRouter.sol";
-import {ReaperStrategyGranary, Externals} from "./strategies/ReaperStrategyGranary.sol";
-import {OptionsCompounder} from "../src/OptionsCompounder.sol";
-import {MockedLendingPool} from "../test/mocks/MockedStrategy.sol";
-
-contract OptionsTokenTest is Common {
- using FixedPointMathLib for uint256;
-
- /* Variable assignment (depends on chain) */
- uint256 constant FORK_BLOCK = 36349190;
- string MAINNET_URL = vm.envString("BSC_RPC_URL_MAINNET");
-
- /* Contract variables */
- OptionsCompounder optionsCompounder;
- ReaperStrategyGranary strategy;
- Helper helper;
- IOracle oracle;
-
- // string public vaultName = "?_? Vault";
- // string public vaultSymbol = "rf-?_?";
- // uint256 public vaultTvlCap = type(uint256).max;
- // address public treasuryAddress = 0xC17DfA7Eb4300871D5f022c107E07F98c750472e;
-
- // address public optionsTokenAddress =
- // 0x45c19a3068642B98F5AEf1dEdE023443cd1FbFAd;
- // address public discountExerciseAddress =
- // 0x3Fbf4f9cf73162e4e156972540f53Dabe65c2862;
- // address public bscTokenAdmin = 0x6eB1fF8E939aFBF3086329B2b32725b72095512C;
-
- function setUp() public {
- /* Common assignments */
- ExchangeType exchangeType = ExchangeType.ThenaRam;
- nativeToken = IERC20(BSC_WBNB);
- paymentToken = nativeToken;
- underlyingToken = IERC20(BSC_HBR);
- wantToken = IERC20(BSC_USDT);
- thenaRamRouter = IThenaRamRouter(BSC_THENA_ROUTER);
- swapRouter = ISwapRouter(BSC_PANCAKE_ROUTER);
- univ3Factory = IUniswapV3Factory(BSC_PANCAKE_FACTORY);
- addressProvider = BSC_ADDRESS_PROVIDER;
- // gWantAddress = BSC_GUSDT;
- // dataProvider = BSC_DATA_PROVIDER;
- // rewarder = BSC_REWARDER;
-
- /* Setup network */
- uint256 bscFork = vm.createFork(MAINNET_URL, FORK_BLOCK);
- vm.selectFork(bscFork);
-
- /* Setup accounts */
- fixture_setupAccountsAndFees(3000, 7000);
- vm.deal(address(this), AMOUNT * 3);
- vm.deal(owner, AMOUNT * 3);
-
- /* Setup roles */
- address[] memory strategists = new address[](1);
- // address[] memory multisigRoles = new address[](3);
- // address[] memory keepers = new address[](1);
- strategists[0] = strategist;
- // multisigRoles[0] = management1;
- // multisigRoles[1] = management2;
- // multisigRoles[2] = management3;
- // keepers[0] = keeper;
-
- /* Variables */
- SwapProps memory swapProps = fixture_getSwapProps(exchangeType, 200);
-
- /**
- * Contract deployments and configurations ***
- */
- helper = new Helper();
-
- /* Reaper deployment and configuration */
- reaperSwapper = new ReaperSwapper();
- tmpProxy = new ERC1967Proxy(address(reaperSwapper), "");
- reaperSwapper = ReaperSwapper(address(tmpProxy));
- reaperSwapper.initialize(strategists, address(this), address(this));
-
- /* Configure swapper */
- fixture_updateSwapperPaths(exchangeType);
-
- /* Oracle mocks deployment */
- oracle = fixture_getMockedOracle(exchangeType);
-
- /* Option token deployment */
- vm.startPrank(owner);
- optionsToken = new OptionsToken();
- tmpProxy = new ERC1967Proxy(address(optionsToken), "");
- optionsTokenProxy = OptionsToken(address(tmpProxy));
- optionsTokenProxy.initialize("TIT Call Option Token", "oTIT", tokenAdmin);
- /* Exercise contract deployment */
- exerciser = new DiscountExercise(optionsTokenProxy, owner, paymentToken, underlyingToken, oracle, PRICE_MULTIPLIER, treasuries, feeBPS);
- /* Add exerciser to the list of options */
- optionsTokenProxy.setExerciseContract(address(exerciser), true);
-
- /* Strategy deployment */
- strategy = new ReaperStrategyGranary();
- tmpProxy = new ERC1967Proxy(address(strategy), "");
- strategy = ReaperStrategyGranary(address(tmpProxy));
- optionsCompounder = new OptionsCompounder();
- tmpProxy = new ERC1967Proxy(address(optionsCompounder), "");
- optionsCompounder = OptionsCompounder(address(tmpProxy));
- MockedLendingPool addressProviderAndLendingPoolMock = new MockedLendingPool(address(optionsCompounder));
- optionsCompounder.initialize(
- address(optionsTokenProxy), address(addressProviderAndLendingPoolMock), address(reaperSwapper), swapProps, oracle
- );
-
- // ReaperVaultV2 vault = new ReaperVaultV2(
- // address(wantToken),
- // vaultName,
- // vaultSymbol,
- // vaultTvlCap,
- // treasuryAddress,
- // strategists,
- // multisigRoles
- // );
- // Externals memory externals = Externals(
- // address(vault),
- // address(reaperSwapper),
- // addressProvider,
- // dataProvider,
- // rewarder,
- // address(optionsCompounder),
- // address(exerciser)
- // );
- // strategy.initialize(
- // externals,
- // strategists,
- // multisigRoles,
- // keepers,
- // IAToken(gWantAddress),
- // targetLtv,
- // maxLtv
- // );
- vm.stopPrank();
-
- /* Prepare EOA and contracts for tests */
- helper.wrapEth{value: AMOUNT * 2}(address(nativeToken));
-
- MinAmountOutData memory minAmountOutData = MinAmountOutData(MinAmountOutKind.Absolute, 0);
- paymentToken.approve(address(reaperSwapper), AMOUNT);
- reaperSwapper.swapThenaRam(
- address(paymentToken), address(underlyingToken), AMOUNT, minAmountOutData, address(thenaRamRouter), type(uint256).max, false
- );
- uint256 underlyingBalance = underlyingToken.balanceOf(address(this));
- paymentToken.transfer(address(addressProviderAndLendingPoolMock), paymentToken.balanceOf(address(this)));
- underlyingToken.transfer(address(exerciser), underlyingBalance);
-
- /* Set up contracts */
- paymentToken.approve(address(exerciser), type(uint256).max);
- }
-
- function test_bscFlashloanPositiveScenario(uint256 amount) public {
- /* Test vectors definition */
- amount = bound(amount, MIN_OATH_FOR_FUZZING, underlyingToken.balanceOf(address(exerciser)));
- uint256 minAmount = 5;
-
- /* Prepare option tokens - distribute them to the specified strategy
- and approve for spending */
- fixture_prepareOptionToken(amount, address(optionsCompounder), address(this), optionsTokenProxy, tokenAdmin);
-
- /* Check balances before compounding */
- uint256 paymentTokenBalance = paymentToken.balanceOf(address(optionsCompounder));
-
- // vm.startPrank(address(strategy));
- /* already approved in fixture_prepareOptionToken */
- // uint256 _balance = optionsTokenProxy.balanceOf(address(optionsCompounder));
- optionsCompounder.harvestOTokens(amount, address(exerciser), minAmount);
- // vm.stopPrank();
-
- /* Assertions */
- assertGt(paymentToken.balanceOf(address(this)), paymentTokenBalance + minAmount, "Gain not greater than 0");
- assertEq(optionsTokenProxy.balanceOf(address(optionsCompounder)), 0, "Options token balance in compounder is 0");
- assertEq(paymentToken.balanceOf(address(optionsCompounder)), 0, "Payment token balance in compounder is 0");
- }
-}
From a71d00b21b1610499080fe704bc8cdcc4c440b62 Mon Sep 17 00:00:00 2001
From: xRave110
Date: Mon, 29 Jul 2024 10:46:47 +0200
Subject: [PATCH 64/64] OptionsCompounder
---
src/OptionsCompounder.sol | 18 ++----------------
test/ItMode_OptionsCompounder.t.sol | 2 +-
2 files changed, 3 insertions(+), 17 deletions(-)
diff --git a/src/OptionsCompounder.sol b/src/OptionsCompounder.sol
index 51592aa..0ef67c0 100644
--- a/src/OptionsCompounder.sol
+++ b/src/OptionsCompounder.sol
@@ -50,7 +50,6 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
uint256 public constant FUTURE_NEXT_PROPOSAL_TIME = 365 days * 100;
/* Storages */
- address public swapper;
ILendingPoolAddressesProvider private addressProvider;
ILendingPool private lendingPool;
bool private flashloanFinished;
@@ -84,7 +83,6 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
function initialize(
address _optionsToken,
address _addressProvider,
- address _swapper,
SwapProps memory _swapProps,
IOracle _oracle,
address[] memory _strats
@@ -93,7 +91,6 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
_setOptionsToken(_optionsToken);
_setSwapProps(_swapProps);
_setOracle(_oracle);
- _setSwapper(_swapper);
_setStrats(_strats);
flashloanFinished = true;
_setAddressProvider(_addressProvider);
@@ -135,17 +132,6 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
oracle = _oracle;
}
- function setSwapper(address _swapper) external onlyOwner {
- _setSwapper(_swapper);
- }
-
- function _setSwapper(address _swapper) internal {
- if (_swapper == address(0)) {
- revert OptionsCompounder__ParamHasAddressZero();
- }
- swapper = _swapper;
- }
-
function setAddressProvider(address _addressProvider) external onlyOwner {
_setAddressProvider(_addressProvider);
}
@@ -325,7 +311,7 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
minAmountOut = _getMinAmountOutData(balanceOfUnderlyingToken, swapProps.maxSwapSlippage, address(oracle));
/* Approve the underlying token to make swap */
- underlyingToken.approve(swapper, balanceOfUnderlyingToken);
+ underlyingToken.approve(swapProps.swapper, balanceOfUnderlyingToken);
/* Swap underlying token to payment token (asset) */
swapAmountOut = _generalSwap(
@@ -337,7 +323,7 @@ contract OptionsCompounder is IFlashLoanReceiver, OwnableUpgradeable, UUPSUpgrad
}
/* Approve the underlying token to 0 for safety */
- underlyingToken.approve(swapper, 0);
+ underlyingToken.approve(swapProps.swapper, 0);
}
/* Calculate profit and revert if it is not profitable */
diff --git a/test/ItMode_OptionsCompounder.t.sol b/test/ItMode_OptionsCompounder.t.sol
index d86339a..2d67930 100644
--- a/test/ItMode_OptionsCompounder.t.sol
+++ b/test/ItMode_OptionsCompounder.t.sol
@@ -103,7 +103,7 @@ contract ItModeOptionsCompounder is Common {
tmpProxy = new ERC1967Proxy(address(optionsCompounder), "");
optionsCompounder = OptionsCompounder(address(tmpProxy));
console.log("Initializing...");
- optionsCompounder.initialize(address(optionsTokenProxy), address(addressProvider), address(reaperSwapper), swapProps, oracle, strategies);
+ optionsCompounder.initialize(address(optionsTokenProxy), address(addressProvider), swapProps, oracle, strategies);
vm.stopPrank();